diff --git a/DevConsole/Program.cs b/DevConsole/Program.cs index 5ee6c83..e11a929 100644 --- a/DevConsole/Program.cs +++ b/DevConsole/Program.cs @@ -1,5 +1,6 @@ -using FireLance.Interfaces; -using FireLance.Model; +using FireLance; +using FireLance.Models; +using Gsm; using System; using System.Collections.Generic; @@ -7,8 +8,8 @@ namespace DevConsole { class Program { - public static GSMParser.DatabaseConnection gsmParser = new GSMParser.DatabaseConnection(); - public static FireLance.DatabaseConnection flcParser = new FireLance.DatabaseConnection(); + public static GsmDB gsmParser = new GsmDB(); + public static FireLanceCRUD fireLanceCRUD = new FireLanceCRUD(); static void Main(string[] args) { @@ -122,14 +123,14 @@ namespace DevConsole { case ConsoleKey.A: Console.WriteLine("Connect to database"); - flcParser.OpenConnection("sr3", 27017); + fireLanceCRUD.OpenConnection("sr3", 27017); break; case ConsoleKey.B: - flcParser.CloseCurrentConnection(); + fireLanceCRUD.CloseCurrentConnection(); break; } - Console.WriteLine($"FireLance Connection State: {flcParser.IsConnectionOpen()}\n"); + Console.WriteLine($"FireLance Connection State: {fireLanceCRUD.IsConnectionOpen()}\n"); } private static void OptionF() @@ -139,7 +140,7 @@ namespace DevConsole foreach (var entry in dm) { //entry.Path = guid.ToString(); - flcParser.InsertRecord("SaveData", entry); + fireLanceCRUD.InsertRecord("SaveData", entry); } } #endregion diff --git a/FireLance/DatabaseConnection.cs b/FireLance/FireLanceCRUD.cs similarity index 57% rename from FireLance/DatabaseConnection.cs rename to FireLance/FireLanceCRUD.cs index 64775e6..a011ed3 100644 --- a/FireLance/DatabaseConnection.cs +++ b/FireLance/FireLanceCRUD.cs @@ -6,40 +6,15 @@ using System.Collections.Generic; namespace FireLance { - public class DatabaseConnection : IDatabaseConnection + public class FireLanceCRUD : FireLanceDB, IDatabaseCRUD { - IMongoDatabase db; - - public void CloseCurrentConnection() - { - OpenConnection(string.Empty, 0); - } - - public bool IsConnectionOpen() - { - int connectionCnt = 0; - - try { connectionCnt = db.Client.ListDatabases().ToList().Count; } - catch {} - - return (connectionCnt > 0) ? true : false; - } - - public void OpenConnection(string dbLocation, int port) - { - var client = new MongoClient($"mongodb://{dbLocation}:{port}"); - var settings = new MongoDatabaseSettings { GuidRepresentation = GuidRepresentation.Standard }; - - db = client.GetDatabase(dbLocation, settings); - } - public void InsertRecord(string table, T record) { var collection = db.GetCollection(table); collection.InsertOne(record); } - public void UpsertRecord(string table, Guid id, T record) + public void UpsertRecordById(string table, Guid id, T record) { var collection = db.GetCollection(table); collection.ReplaceOne( @@ -48,7 +23,7 @@ namespace FireLance new ReplaceOptions { IsUpsert = true }); } - public List LoadRecords(string table) + public List LoadRecordsFromTable(string table) { var collection = db.GetCollection(table); return collection.Find(new BsonDocument()).ToList(); diff --git a/FireLance/FireLanceDB.cs b/FireLance/FireLanceDB.cs new file mode 100644 index 0000000..cae7d26 --- /dev/null +++ b/FireLance/FireLanceDB.cs @@ -0,0 +1,34 @@ +using FireLance.Interfaces; +using MongoDB.Bson; +using MongoDB.Driver; + +namespace FireLance +{ + public abstract class FireLanceDB : IDatabaseConnection + { + internal IMongoDatabase db; + + public void CloseCurrentConnection() + { + OpenConnection(string.Empty, 0); + } + + public bool IsConnectionOpen() + { + int connectionCnt = 0; + + try { connectionCnt = db.Client.ListDatabases().ToList().Count; } + catch {} + + return (connectionCnt > 0) ? true : false; + } + + public void OpenConnection(string dbLocation, int port) + { + var client = new MongoClient($"mongodb://{dbLocation}:{port}"); + var settings = new MongoDatabaseSettings { GuidRepresentation = GuidRepresentation.Standard }; + + db = client.GetDatabase(dbLocation, settings); + } + } +} diff --git a/FireLance/Interfaces/IDatabaseCRUD.cs b/FireLance/Interfaces/IDatabaseCRUD.cs new file mode 100644 index 0000000..18a88bf --- /dev/null +++ b/FireLance/Interfaces/IDatabaseCRUD.cs @@ -0,0 +1,18 @@ +using System; +using System.Collections.Generic; + +namespace FireLance +{ + public interface IDatabaseCRUD + { + public void InsertRecord(string table, T record); + + public void UpsertRecordById(string table, Guid id, T record); + + public List LoadRecordsFromTable(string table); + + public T LoadRecordById(string table, Guid id); + + public void DeleteRecordById(string table, Guid id); + } +} \ No newline at end of file diff --git a/FireLance/Models/DirectoriesModel.cs b/FireLance/Models/DirectoriesModel.cs index 12cf202..d6eca39 100644 --- a/FireLance/Models/DirectoriesModel.cs +++ b/FireLance/Models/DirectoriesModel.cs @@ -1,4 +1,4 @@ -namespace FireLance.Model +namespace FireLance.Models { public class DirectoriesModel { diff --git a/FireLance/Models/GameEntryModel.cs b/FireLance/Models/GameEntryModel.cs index 7c2cedb..5e76332 100644 --- a/FireLance/Models/GameEntryModel.cs +++ b/FireLance/Models/GameEntryModel.cs @@ -1,4 +1,4 @@ -namespace FireLance.Model +namespace FireLance.Models { public class GameEntryModel { diff --git a/FireLance/Models/SaveDataModel.cs b/FireLance/Models/SaveDataModel.cs index 4f0b098..10413c3 100644 --- a/FireLance/Models/SaveDataModel.cs +++ b/FireLance/Models/SaveDataModel.cs @@ -1,7 +1,5 @@ -using MongoDB.Bson; -using MongoDB.Bson.Serialization.Attributes; +using MongoDB.Bson.Serialization.Attributes; using System; -using System.Collections.Generic; namespace FireLance.Models { diff --git a/GSMParser/DatabaseConnection.cs b/GSMParser/GsmDB.cs similarity index 93% rename from GSMParser/DatabaseConnection.cs rename to GSMParser/GsmDB.cs index 257ed44..b84d55e 100644 --- a/GSMParser/DatabaseConnection.cs +++ b/GSMParser/GsmDB.cs @@ -4,11 +4,11 @@ using System.Collections.Generic; using System.IO; using Dapper; using FireLance.Interfaces; -using FireLance.Model; +using FireLance.Models; -namespace GSMParser +namespace Gsm { - public class DatabaseConnection : IDatabaseConnection + public class GsmDB : IDatabaseConnection { private SqliteConnection DBConnection = new SqliteConnection();