Refactored GsmDB
This commit is contained in:
+33
-8
@@ -3,12 +3,13 @@ using FireLance.Models;
|
|||||||
using Gsm;
|
using Gsm;
|
||||||
using System;
|
using System;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
|
using System.IO;
|
||||||
|
|
||||||
namespace DevConsole
|
namespace DevConsole
|
||||||
{
|
{
|
||||||
class Program
|
class Program
|
||||||
{
|
{
|
||||||
public static GsmDB gsmParser = new GsmDB();
|
public static readonly GsmRO gsmRO = new GsmRO();
|
||||||
public static FireLanceCRUD fireLanceCRUD = new FireLanceCRUD();
|
public static FireLanceCRUD fireLanceCRUD = new FireLanceCRUD();
|
||||||
|
|
||||||
static void Main(string[] args)
|
static void Main(string[] args)
|
||||||
@@ -73,14 +74,14 @@ namespace DevConsole
|
|||||||
{
|
{
|
||||||
case ConsoleKey.A:
|
case ConsoleKey.A:
|
||||||
Console.WriteLine("Connect to database");
|
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;
|
break;
|
||||||
case ConsoleKey.B:
|
case ConsoleKey.B:
|
||||||
gsmParser.CloseCurrentConnection();
|
gsmRO.CloseCurrentConnection();
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
Console.WriteLine($"GSMParser Connection State: {gsmParser.IsConnectionOpen()}\n");
|
Console.WriteLine($"GSMParser Connection State: {gsmRO.IsConnectionOpen()}\n");
|
||||||
}
|
}
|
||||||
|
|
||||||
private static void OptionB()
|
private static void OptionB()
|
||||||
@@ -89,7 +90,11 @@ namespace DevConsole
|
|||||||
string r = Console.ReadLine();
|
string r = Console.ReadLine();
|
||||||
Console.Write("\n");
|
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()
|
private static void OptionC()
|
||||||
@@ -98,7 +103,11 @@ namespace DevConsole
|
|||||||
string r = Console.ReadLine();
|
string r = Console.ReadLine();
|
||||||
Console.Write("\n");
|
Console.Write("\n");
|
||||||
|
|
||||||
PrintDirectories(gsmParser.QueryDirectoryById(r));
|
PrintDirectories(gsmRO.LoadRecords<DirectoriesModel>("*",
|
||||||
|
GsmStruct.Tables.Directories,
|
||||||
|
GsmStruct.DirectoryColumns.GameID,
|
||||||
|
r,
|
||||||
|
true));
|
||||||
}
|
}
|
||||||
|
|
||||||
private static void OptionD()
|
private static void OptionD()
|
||||||
@@ -107,7 +116,11 @@ namespace DevConsole
|
|||||||
string r = Console.ReadLine();
|
string r = Console.ReadLine();
|
||||||
Console.Write("\n");
|
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()
|
private static void OptionE()
|
||||||
@@ -136,7 +149,11 @@ namespace DevConsole
|
|||||||
private static void OptionF()
|
private static void OptionF()
|
||||||
{
|
{
|
||||||
//Guid guid = Guid.NewGuid();
|
//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)
|
foreach (var entry in dm)
|
||||||
{
|
{
|
||||||
//entry.Path = guid.ToString();
|
//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)
|
private static void PrintDirectories(List<DirectoriesModel> directoryEntries)
|
||||||
{
|
{
|
||||||
foreach (var directory in directoryEntries)
|
foreach (var directory in directoryEntries)
|
||||||
|
|||||||
@@ -1,12 +1,11 @@
|
|||||||
using FireLance.Interfaces;
|
using MongoDB.Bson;
|
||||||
using MongoDB.Bson;
|
|
||||||
using MongoDB.Driver;
|
using MongoDB.Driver;
|
||||||
using System;
|
using System;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
|
|
||||||
namespace FireLance
|
namespace FireLance
|
||||||
{
|
{
|
||||||
public class FireLanceCRUD : FireLanceDB, IDatabaseCRUD
|
public class FireLanceCRUD : FireLanceDB
|
||||||
{
|
{
|
||||||
public void InsertRecord<T>(string table, T record)
|
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 Microsoft.Data.Sqlite;
|
||||||
using System;
|
using System;
|
||||||
using System.Collections.Generic;
|
|
||||||
using System.IO;
|
using System.IO;
|
||||||
using Dapper;
|
|
||||||
using FireLance.Interfaces;
|
using FireLance.Interfaces;
|
||||||
using FireLance.Models;
|
|
||||||
|
|
||||||
namespace Gsm
|
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)
|
public void OpenConnection(string dbLocation, int port)
|
||||||
{
|
{
|
||||||
@@ -32,20 +29,5 @@ namespace Gsm
|
|||||||
{
|
{
|
||||||
return Convert.ToBoolean(DBConnection.State);
|
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