diff --git a/DevConsole/Program.cs b/DevConsole/Program.cs index 160f0f8..f408a1f 100644 --- a/DevConsole/Program.cs +++ b/DevConsole/Program.cs @@ -10,7 +10,8 @@ namespace DevConsole { class Program { - public static readonly GsmRO gsmRO = new GsmRO(); + public static GsmMgr gsmMgr = new GsmMgr(); + public static GsmRO gsmRO; public static FirelanceMgr flcMgr = new FirelanceMgr(); public static FirelanceCRUD flcCRUD; @@ -56,8 +57,9 @@ namespace DevConsole private static void ConnectToGsmDb() { - gsmRO.OpenConnection(@"C:\Users\Dunestorm\Projects\FireLance\GSMParser\games.db", 0); - Console.WriteLine($"GSMParser Connection State: {gsmRO.IsConnectionOpen()}"); + gsmMgr.OpenConnection(@"C:\Users\Dunestorm\Projects\FireLance\GSMParser\games.db", 0); + gsmRO = new GsmRO(gsmMgr.Database); + Console.WriteLine($"GSMParser Connection State: {gsmMgr.IsConnectionOpen()}"); } private static void ConnectToFirelanceManager() @@ -88,7 +90,7 @@ namespace DevConsole ConnectToGsmDb(); break; case "B": - gsmRO.CloseCurrentConnection(); + gsmMgr.CloseCurrentConnection(); break; case "C": ConnectToFirelanceManager(); diff --git a/FireLance/FireLanceCRUD.cs b/FireLance/FireLanceCRUD.cs index 4f8023c..f94b617 100644 --- a/FireLance/FireLanceCRUD.cs +++ b/FireLance/FireLanceCRUD.cs @@ -7,7 +7,7 @@ namespace FireLance { public class FirelanceCRUD : IFlcMongoDBConnecton { - public IMongoDatabase Database { get; set; } + public IMongoDatabase Database { get; private set; } public FirelanceCRUD(IMongoDatabase db) { Database = db; diff --git a/GSMParser/GsmDB.cs b/GSMParser/GsmMgr.cs similarity index 56% rename from GSMParser/GsmDB.cs rename to GSMParser/GsmMgr.cs index cb9ee0a..a0b4f69 100644 --- a/GSMParser/GsmDB.cs +++ b/GSMParser/GsmMgr.cs @@ -2,12 +2,13 @@ using System; using System.IO; using FireLance.Interfaces; +using GSMParser.Inferfaces; namespace Gsm { - public abstract class GsmDB : IFlcBaseDBConnection + public class GsmMgr : IFlcBaseDBConnection, IGsmSqliteDBConnection { - internal SqliteConnection DBConnection = new SqliteConnection(); + public SqliteConnection Database { get; private set; } public void OpenConnection(string dbLocation, int port) { @@ -16,18 +17,18 @@ namespace Gsm throw new FileNotFoundException(dbLocation); } - DBConnection = new SqliteConnection($"Data Source={dbLocation};Mode=ReadOnly"); - DBConnection.Open(); + Database = new SqliteConnection($"Data Source={dbLocation};Mode=ReadOnly"); + Database.Open(); } public void CloseCurrentConnection() { - DBConnection.Close(); + Database.Close(); } public bool IsConnectionOpen() { - return Convert.ToBoolean(DBConnection.State); + return Convert.ToBoolean(Database.State); } } } diff --git a/GSMParser/GsmRO.cs b/GSMParser/GsmRO.cs index 5c94d97..5670b90 100644 --- a/GSMParser/GsmRO.cs +++ b/GSMParser/GsmRO.cs @@ -1,9 +1,11 @@ using Dapper; +using GSMParser.Inferfaces; +using Microsoft.Data.Sqlite; using System.Collections.Generic; namespace Gsm { - public class GsmRO : GsmDB + public class GsmRO : IGsmSqliteDBConnection { public static class Tables { @@ -19,6 +21,12 @@ namespace Gsm public static string GameName { get { return "GameName"; } } } + public SqliteConnection Database { get; private set; } + public GsmRO(SqliteConnection db) + { + Database = db; + } + public List LoadRecords(string select, string from, string column, string query, bool exactMatch) { string command = $"SELECT \"{select}\",*" + @@ -34,7 +42,7 @@ namespace Gsm command += $"LIKE \"%{query}%\""; } - return (List) DBConnection.Query(command, new DynamicParameters()); + return (List) Database.Query(command, new DynamicParameters()); } } } diff --git a/GSMParser/Inferfaces/IGsmSqliteDBConnection.cs b/GSMParser/Inferfaces/IGsmSqliteDBConnection.cs new file mode 100644 index 0000000..2945645 --- /dev/null +++ b/GSMParser/Inferfaces/IGsmSqliteDBConnection.cs @@ -0,0 +1,12 @@ +using Microsoft.Data.Sqlite; +using System; +using System.Collections.Generic; +using System.Text; + +namespace GSMParser.Inferfaces +{ + public interface IGsmSqliteDBConnection + { + public SqliteConnection Database { get; } + } +} \ No newline at end of file