From 91ea94a76c3439b451756839c78043b34aa76635 Mon Sep 17 00:00:00 2001 From: Dunestorm Date: Mon, 6 Jul 2020 14:10:44 +0100 Subject: [PATCH] FirelanceMgr now handles and inits CRUD and GFS --- DevConsole/Program.cs | 32 +++++++++----------- FireLance/FireLanceCRUD.cs | 2 +- FireLance/FireLanceGFS.cs | 5 ++- FireLance/FirelanceMgr.cs | 15 +++++++-- FireLance/Interfaces/IFlcMongoDBConnecton.cs | 2 +- 5 files changed, 31 insertions(+), 25 deletions(-) diff --git a/DevConsole/Program.cs b/DevConsole/Program.cs index 5a53b44..7449e41 100644 --- a/DevConsole/Program.cs +++ b/DevConsole/Program.cs @@ -14,7 +14,6 @@ namespace DevConsole public static GsmMgr gsmMgr = new GsmMgr(); public static GsmRO gsmRO; public static FirelanceMgr flcMgr = new FirelanceMgr(); - public static FirelanceCRUD flcCRUD; static void Main(string[] args) { @@ -66,7 +65,6 @@ namespace DevConsole private static void ConnectToFirelanceManager() { flcMgr.OpenConnection("sr3", 27017); - flcCRUD = new FirelanceCRUD(flcMgr.Database); Console.WriteLine($"FireLance Connection State: {flcMgr.IsConnectionOpen()}"); } @@ -216,12 +214,12 @@ namespace DevConsole masterGameRecord.GameEntry = gameEntry; masterGameRecord.SaveGameEntries = saveGameEntries; - flcCRUD.InsertRecord(Firelance.Collections.GameRecords, masterGameRecord); + flcMgr.CRUD.InsertRecord(Firelance.Collections.GameRecords, masterGameRecord); } static void FlcReadMasterGameRecordAction() { - var masterGameRecords = flcCRUD.LoadRecordsFromTable(Firelance.Collections.GameRecords); + var masterGameRecords = flcMgr.CRUD.LoadRecordsFromTable(Firelance.Collections.GameRecords); foreach (var record in masterGameRecords) { Console.WriteLine(record.Id); @@ -245,45 +243,44 @@ namespace DevConsole private static void FlcRemoveFirstSaveEntryAction() { - Guid firstMasterGameRecordGuid = flcCRUD.LoadRecordsFromTable( + Guid firstMasterGameRecordGuid = flcMgr.CRUD.LoadRecordsFromTable( Firelance.Collections.GameRecords).First().Id; - MasterGameRecordModel masterGameRecordToRemove = flcCRUD.LoadRecordById( + MasterGameRecordModel masterGameRecordToRemove = flcMgr.CRUD.LoadRecordById( Firelance.Collections.GameRecords, firstMasterGameRecordGuid); ObjectId firstSaveGameEntryObjId = masterGameRecordToRemove.SaveGameEntries.Select(x => x.SaveDataID).First(); masterGameRecordToRemove.SaveGameEntries.RemoveAll(x => x.SaveDataID == firstSaveGameEntryObjId); - flcCRUD.UpsertRecordById(Firelance.Collections.GameRecords, + flcMgr.CRUD.UpsertRecordById(Firelance.Collections.GameRecords, firstMasterGameRecordGuid, masterGameRecordToRemove); - var result = new FirelanceGFS(flcMgr.Database).DeleteFile(firstSaveGameEntryObjId); + var result = flcMgr.GFS.DeleteFile(firstSaveGameEntryObjId); } private static void FlcInsertBlankSaveEntryAction() { - Guid firstMasterGameRecordGuid = flcCRUD.LoadRecordsFromTable( + Guid firstMasterGameRecordGuid = flcMgr.CRUD.LoadRecordsFromTable( Firelance.Collections.GameRecords).First().Id; - MasterGameRecordModel masterGameRecordToInsert = flcCRUD.LoadRecordById( + MasterGameRecordModel masterGameRecordToInsert = flcMgr.CRUD.LoadRecordById( Firelance.Collections.GameRecords, firstMasterGameRecordGuid); masterGameRecordToInsert.SaveGameEntries.Add(new SaveGameEntriesModel()); - flcCRUD.UpsertRecordById(Firelance.Collections.GameRecords, + flcMgr.CRUD.UpsertRecordById(Firelance.Collections.GameRecords, firstMasterGameRecordGuid, masterGameRecordToInsert); } private static void FlcUploadToGridFsAction() { - var flcGFS = new FirelanceGFS(flcMgr.Database); - var ulObjId = new ObjectId(flcGFS.UploadFile("TestFile", @"C:\Users\Dunestorm\Downloads\OpenMW-0.46.0-win64.exe").Result); + var ulObjId = new ObjectId(flcMgr.GFS.UploadFile("TestFile", @"C:\Users\Dunestorm\Downloads\OpenMW-0.46.0-win64.exe").Result); - Guid firstMasterGameRecordGuid = flcCRUD.LoadRecordsFromTable( + Guid firstMasterGameRecordGuid = flcMgr.CRUD.LoadRecordsFromTable( Firelance.Collections.GameRecords).First().Id; - var saveGameEntry = flcCRUD.LoadRecordById( + var saveGameEntry = flcMgr.CRUD.LoadRecordById( Firelance.Collections.GameRecords, firstMasterGameRecordGuid); saveGameEntry.SaveGameEntries.Add(new SaveGameEntriesModel() { SaveDataID = ulObjId }); - flcCRUD.UpsertRecordById(Firelance.Collections.GameRecords, + flcMgr.CRUD.UpsertRecordById(Firelance.Collections.GameRecords, firstMasterGameRecordGuid, saveGameEntry); @@ -294,8 +291,7 @@ namespace DevConsole { var objId = "5f00a560b65a2f02d0c7996e"; - var flcGFC = new FirelanceGFS(flcMgr.Database); - var dlResult = flcGFC.DownloadFile(new MongoDB.Bson.ObjectId(objId), @$"D:\Temp\{objId}.exe"); + var dlResult = flcMgr.GFS.DownloadFile(new MongoDB.Bson.ObjectId(objId), @$"D:\Temp\{objId}.exe"); Console.WriteLine($"Download Successful: {dlResult.Result}"); } #endregion diff --git a/FireLance/FireLanceCRUD.cs b/FireLance/FireLanceCRUD.cs index 6ac2339..135b02f 100644 --- a/FireLance/FireLanceCRUD.cs +++ b/FireLance/FireLanceCRUD.cs @@ -8,7 +8,7 @@ namespace Firelance public class FirelanceCRUD : IFlcMongoDBConnecton { public IMongoDatabase Database { get; private set; } - public FirelanceCRUD(IMongoDatabase db) + public void SetDatabaseInstance(IMongoDatabase db) { Database = db; } diff --git a/FireLance/FireLanceGFS.cs b/FireLance/FireLanceGFS.cs index c1a8352..bb73d92 100644 --- a/FireLance/FireLanceGFS.cs +++ b/FireLance/FireLanceGFS.cs @@ -7,11 +7,10 @@ using System.Threading.Tasks; namespace Firelance { - public class FirelanceGFS + public class FirelanceGFS : IFlcMongoDBConnecton { private GridFSBucket gridFSBucket; - - public FirelanceGFS(IMongoDatabase db) + public void SetDatabaseInstance(IMongoDatabase db) { gridFSBucket = new GridFSBucket(db, new GridFSBucketOptions { diff --git a/FireLance/FirelanceMgr.cs b/FireLance/FirelanceMgr.cs index 5c1a78a..440e7c8 100644 --- a/FireLance/FirelanceMgr.cs +++ b/FireLance/FirelanceMgr.cs @@ -5,9 +5,20 @@ using System; namespace Firelance { - public class FirelanceMgr : IFlcBaseDBConnection, IFlcMongoDBConnecton + public class FirelanceMgr : IFlcBaseDBConnection { - public IMongoDatabase Database { get; private set; } + private IMongoDatabase _database; + public IMongoDatabase Database { + get { return _database; } + private set + { + _database = value; + CRUD.SetDatabaseInstance(_database); + GFS.SetDatabaseInstance(_database); + } + } + public FirelanceCRUD CRUD = new FirelanceCRUD(); + public FirelanceGFS GFS = new FirelanceGFS(); public void OpenConnection(string dbLocation, int port) { diff --git a/FireLance/Interfaces/IFlcMongoDBConnecton.cs b/FireLance/Interfaces/IFlcMongoDBConnecton.cs index 578be11..8c612ed 100644 --- a/FireLance/Interfaces/IFlcMongoDBConnecton.cs +++ b/FireLance/Interfaces/IFlcMongoDBConnecton.cs @@ -4,6 +4,6 @@ namespace Firelance { public interface IFlcMongoDBConnecton { - public IMongoDatabase Database { get; } + void SetDatabaseInstance(IMongoDatabase db); } } \ No newline at end of file