Made GSM library consistent with Firelance.

This commit is contained in:
2020-07-04 20:18:20 +01:00
parent 883cc34000
commit b6ce28a121
5 changed files with 36 additions and 13 deletions
+6 -4
View File
@@ -10,7 +10,8 @@ namespace DevConsole
{ {
class Program 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 FirelanceMgr flcMgr = new FirelanceMgr();
public static FirelanceCRUD flcCRUD; public static FirelanceCRUD flcCRUD;
@@ -56,8 +57,9 @@ namespace DevConsole
private static void ConnectToGsmDb() private static void ConnectToGsmDb()
{ {
gsmRO.OpenConnection(@"C:\Users\Dunestorm\Projects\FireLance\GSMParser\games.db", 0); gsmMgr.OpenConnection(@"C:\Users\Dunestorm\Projects\FireLance\GSMParser\games.db", 0);
Console.WriteLine($"GSMParser Connection State: {gsmRO.IsConnectionOpen()}"); gsmRO = new GsmRO(gsmMgr.Database);
Console.WriteLine($"GSMParser Connection State: {gsmMgr.IsConnectionOpen()}");
} }
private static void ConnectToFirelanceManager() private static void ConnectToFirelanceManager()
@@ -88,7 +90,7 @@ namespace DevConsole
ConnectToGsmDb(); ConnectToGsmDb();
break; break;
case "B": case "B":
gsmRO.CloseCurrentConnection(); gsmMgr.CloseCurrentConnection();
break; break;
case "C": case "C":
ConnectToFirelanceManager(); ConnectToFirelanceManager();
+1 -1
View File
@@ -7,7 +7,7 @@ namespace FireLance
{ {
public class FirelanceCRUD : IFlcMongoDBConnecton public class FirelanceCRUD : IFlcMongoDBConnecton
{ {
public IMongoDatabase Database { get; set; } public IMongoDatabase Database { get; private set; }
public FirelanceCRUD(IMongoDatabase db) public FirelanceCRUD(IMongoDatabase db)
{ {
Database = db; Database = db;
+7 -6
View File
@@ -2,12 +2,13 @@
using System; using System;
using System.IO; using System.IO;
using FireLance.Interfaces; using FireLance.Interfaces;
using GSMParser.Inferfaces;
namespace Gsm 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) public void OpenConnection(string dbLocation, int port)
{ {
@@ -16,18 +17,18 @@ namespace Gsm
throw new FileNotFoundException(dbLocation); throw new FileNotFoundException(dbLocation);
} }
DBConnection = new SqliteConnection($"Data Source={dbLocation};Mode=ReadOnly"); Database = new SqliteConnection($"Data Source={dbLocation};Mode=ReadOnly");
DBConnection.Open(); Database.Open();
} }
public void CloseCurrentConnection() public void CloseCurrentConnection()
{ {
DBConnection.Close(); Database.Close();
} }
public bool IsConnectionOpen() public bool IsConnectionOpen()
{ {
return Convert.ToBoolean(DBConnection.State); return Convert.ToBoolean(Database.State);
} }
} }
} }
+10 -2
View File
@@ -1,9 +1,11 @@
using Dapper; using Dapper;
using GSMParser.Inferfaces;
using Microsoft.Data.Sqlite;
using System.Collections.Generic; using System.Collections.Generic;
namespace Gsm namespace Gsm
{ {
public class GsmRO : GsmDB public class GsmRO : IGsmSqliteDBConnection
{ {
public static class Tables public static class Tables
{ {
@@ -19,6 +21,12 @@ namespace Gsm
public static string GameName { get { return "GameName"; } } public static string GameName { get { return "GameName"; } }
} }
public SqliteConnection Database { get; private set; }
public GsmRO(SqliteConnection db)
{
Database = db;
}
public List<T> LoadRecords<T>(string select, string from, string column, string query, bool exactMatch) public List<T> LoadRecords<T>(string select, string from, string column, string query, bool exactMatch)
{ {
string command = $"SELECT \"{select}\",*" + string command = $"SELECT \"{select}\",*" +
@@ -34,7 +42,7 @@ namespace Gsm
command += $"LIKE \"%{query}%\""; command += $"LIKE \"%{query}%\"";
} }
return (List<T>) DBConnection.Query<T>(command, new DynamicParameters()); return (List<T>) Database.Query<T>(command, new DynamicParameters());
} }
} }
} }
@@ -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; }
}
}