Refactored GsmDB
This commit is contained in:
+33
-8
@@ -3,12 +3,13 @@ using FireLance.Models;
|
||||
using Gsm;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.IO;
|
||||
|
||||
namespace DevConsole
|
||||
{
|
||||
class Program
|
||||
{
|
||||
public static GsmDB gsmParser = new GsmDB();
|
||||
public static readonly GsmRO gsmRO = new GsmRO();
|
||||
public static FireLanceCRUD fireLanceCRUD = new FireLanceCRUD();
|
||||
|
||||
static void Main(string[] args)
|
||||
@@ -73,14 +74,14 @@ namespace DevConsole
|
||||
{
|
||||
case ConsoleKey.A:
|
||||
Console.WriteLine("Connect to database");
|
||||
gsmParser.OpenConnection(@"C:\Users\Dunestorm\Projects\FireLance\GSMParser\games.db", 0);
|
||||
gsmRO.OpenConnection(@"C:\Users\Dunestorm\Projects\FireLance\GSMParser\games.db", 0);
|
||||
break;
|
||||
case ConsoleKey.B:
|
||||
gsmParser.CloseCurrentConnection();
|
||||
gsmRO.CloseCurrentConnection();
|
||||
break;
|
||||
}
|
||||
|
||||
Console.WriteLine($"GSMParser Connection State: {gsmParser.IsConnectionOpen()}\n");
|
||||
Console.WriteLine($"GSMParser Connection State: {gsmRO.IsConnectionOpen()}\n");
|
||||
}
|
||||
|
||||
private static void OptionB()
|
||||
@@ -89,7 +90,11 @@ namespace DevConsole
|
||||
string r = Console.ReadLine();
|
||||
Console.Write("\n");
|
||||
|
||||
PrintGameEntries(gsmParser.QueryGameById(r));
|
||||
PrintGameEntries(gsmRO.LoadRecords<GameEntryModel>(GsmStruct.GameEntries.GameName,
|
||||
GsmStruct.Tables.GameEntry,
|
||||
GsmStruct.GameEntries.GameID,
|
||||
r,
|
||||
true));
|
||||
}
|
||||
|
||||
private static void OptionC()
|
||||
@@ -98,7 +103,11 @@ namespace DevConsole
|
||||
string r = Console.ReadLine();
|
||||
Console.Write("\n");
|
||||
|
||||
PrintDirectories(gsmParser.QueryDirectoryById(r));
|
||||
PrintDirectories(gsmRO.LoadRecords<DirectoriesModel>("*",
|
||||
GsmStruct.Tables.Directories,
|
||||
GsmStruct.DirectoryColumns.GameID,
|
||||
r,
|
||||
true));
|
||||
}
|
||||
|
||||
private static void OptionD()
|
||||
@@ -107,7 +116,11 @@ namespace DevConsole
|
||||
string r = Console.ReadLine();
|
||||
Console.Write("\n");
|
||||
|
||||
PrintGameEntries(gsmParser.QueryGameByName(r));
|
||||
PrintGameEntries(gsmRO.LoadRecords<GameEntryModel>(GsmStruct.GameEntries.GameName,
|
||||
GsmStruct.Tables.GameEntry,
|
||||
GsmStruct.GameEntries.GameName,
|
||||
r,
|
||||
false));
|
||||
}
|
||||
|
||||
private static void OptionE()
|
||||
@@ -136,7 +149,11 @@ namespace DevConsole
|
||||
private static void OptionF()
|
||||
{
|
||||
//Guid guid = Guid.NewGuid();
|
||||
List<DirectoriesModel> dm = gsmParser.QueryDirectoryById("600");
|
||||
List<DirectoriesModel> dm = gsmRO.LoadRecords<DirectoriesModel>("*",
|
||||
GsmStruct.Tables.Directories,
|
||||
GsmStruct.DirectoryColumns.GameID,
|
||||
"600",
|
||||
true);
|
||||
foreach (var entry in dm)
|
||||
{
|
||||
//entry.Path = guid.ToString();
|
||||
@@ -156,6 +173,14 @@ namespace DevConsole
|
||||
}
|
||||
}
|
||||
|
||||
private static void PrintGameEntry(GameEntryModel gameEntry)
|
||||
{
|
||||
Console.WriteLine($"GameName: {gameEntry.GameName}");
|
||||
Console.WriteLine($"BackupWarning: {gameEntry.BackupWarning}");
|
||||
Console.WriteLine($"RestoreWarning: {gameEntry.RestoreWarning}");
|
||||
Console.WriteLine($"LastModified: {gameEntry.LastModified}\n");
|
||||
}
|
||||
|
||||
private static void PrintDirectories(List<DirectoriesModel> directoryEntries)
|
||||
{
|
||||
foreach (var directory in directoryEntries)
|
||||
|
||||
@@ -1,12 +1,11 @@
|
||||
using FireLance.Interfaces;
|
||||
using MongoDB.Bson;
|
||||
using MongoDB.Bson;
|
||||
using MongoDB.Driver;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
|
||||
namespace FireLance
|
||||
{
|
||||
public class FireLanceCRUD : FireLanceDB, IDatabaseCRUD
|
||||
public class FireLanceCRUD : FireLanceDB
|
||||
{
|
||||
public void InsertRecord<T>(string table, T record)
|
||||
{
|
||||
|
||||
@@ -1,18 +0,0 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
|
||||
namespace FireLance
|
||||
{
|
||||
public interface IDatabaseCRUD
|
||||
{
|
||||
public void InsertRecord<T>(string table, T record);
|
||||
|
||||
public void UpsertRecordById<T>(string table, Guid id, T record);
|
||||
|
||||
public List<T> LoadRecordsFromTable<T>(string table);
|
||||
|
||||
public T LoadRecordById<T>(string table, Guid id);
|
||||
|
||||
public void DeleteRecordById<T>(string table, Guid id);
|
||||
}
|
||||
}
|
||||
+2
-20
@@ -1,16 +1,13 @@
|
||||
using Microsoft.Data.Sqlite;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.IO;
|
||||
using Dapper;
|
||||
using FireLance.Interfaces;
|
||||
using FireLance.Models;
|
||||
|
||||
namespace Gsm
|
||||
{
|
||||
public class GsmDB : IDatabaseConnection
|
||||
public abstract class GsmDB : IDatabaseConnection
|
||||
{
|
||||
private SqliteConnection DBConnection = new SqliteConnection();
|
||||
internal SqliteConnection DBConnection = new SqliteConnection();
|
||||
|
||||
public void OpenConnection(string dbLocation, int port)
|
||||
{
|
||||
@@ -32,20 +29,5 @@ namespace Gsm
|
||||
{
|
||||
return Convert.ToBoolean(DBConnection.State);
|
||||
}
|
||||
|
||||
public List<GameEntryModel> QueryGameById(string id)
|
||||
{
|
||||
return (List<GameEntryModel>) DBConnection.Query<GameEntryModel>(QueryBuilder.GameEntryByGameId(id), new DynamicParameters());
|
||||
}
|
||||
|
||||
public List<DirectoriesModel> QueryDirectoryById(string id)
|
||||
{
|
||||
return (List<DirectoriesModel>) DBConnection.Query<DirectoriesModel>(QueryBuilder.DirectoryByGameId(id), new DynamicParameters());
|
||||
}
|
||||
|
||||
public List<GameEntryModel> QueryGameByName(string name)
|
||||
{
|
||||
return (List<GameEntryModel>) DBConnection.Query<GameEntryModel>(QueryBuilder.GameEntryByName(name), new DynamicParameters());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,28 @@
|
||||
using Dapper;
|
||||
using FireLance.Models;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
|
||||
namespace Gsm
|
||||
{
|
||||
public class GsmRO : GsmDB
|
||||
{
|
||||
public List<T> LoadRecords<T>(string select, string from, string column, string query, bool exactMatch)
|
||||
{
|
||||
string command = $"SELECT \"{select}\",*" +
|
||||
$"FROM \"main\".\"{from}\"" +
|
||||
$"WHERE \"{column}\"";
|
||||
|
||||
if (exactMatch == true)
|
||||
{
|
||||
command += $"LIKE \"{query}\"";
|
||||
}
|
||||
else
|
||||
{
|
||||
command += $"LIKE \"%{query}%\"";
|
||||
}
|
||||
|
||||
return (List<T>) DBConnection.Query<T>(command, new DynamicParameters());
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,28 @@
|
||||
namespace Gsm
|
||||
{
|
||||
public struct GsmStruct
|
||||
{
|
||||
public static class Tables
|
||||
{
|
||||
public static string Directories { get { return "Directories"; } }
|
||||
public static string GameEntry { get { return "GameEntry"; } }
|
||||
public static string RegistryList { get { return "RegistryList"; } }
|
||||
}
|
||||
|
||||
public static class DirectoryColumns
|
||||
{
|
||||
public static string GameID { get { return "GameID"; } }
|
||||
}
|
||||
|
||||
public static class GameEntries
|
||||
{
|
||||
public static string GameID { get { return "id"; } }
|
||||
public static string GameName { get { return "GameName"; } }
|
||||
}
|
||||
|
||||
public static class RegistryColumns
|
||||
{
|
||||
public static string GameID { get { return "GameID"; } }
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,26 +0,0 @@
|
||||
public static class QueryBuilder
|
||||
{
|
||||
public static string GameEntryByName(string name)
|
||||
{
|
||||
return $"SELECT \"GameName\",*" +
|
||||
$"FROM \"main\".\"GameEntry\"" +
|
||||
$"WHERE \"GameName\"" +
|
||||
$"LIKE \"%{name}%\"";
|
||||
}
|
||||
|
||||
public static string GameEntryByGameId(string id)
|
||||
{
|
||||
return $"SELECT \"GameName\",*" +
|
||||
$"FROM \"main\".\"GameEntry\"" +
|
||||
$"WHERE \"id\"" +
|
||||
$"LIKE \"{id}\"";
|
||||
}
|
||||
|
||||
public static string DirectoryByGameId(string id)
|
||||
{
|
||||
return $"SELECT \"Path\",*" +
|
||||
$"FROM \"main\".\"Directories\"" +
|
||||
$"WHERE \"GameID\"" +
|
||||
$"LIKE \"{id}\"";
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user