Functional GFS implementation.
- Mass refactoring. - Decoupled Firelance CRUD from DB.
This commit is contained in:
+46
-22
@@ -4,21 +4,20 @@ using Gsm;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.ComponentModel;
|
||||
using System.IO;
|
||||
using System.Linq;
|
||||
using System.Security.Cryptography.X509Certificates;
|
||||
|
||||
namespace DevConsole
|
||||
{
|
||||
class Program
|
||||
{
|
||||
public static readonly GsmRO gsmRO = new GsmRO();
|
||||
public static FireLanceCRUD fireLanceCRUD = new FireLanceCRUD();
|
||||
public static FirelanceMgr flcMgr = new FirelanceMgr();
|
||||
public static FirelanceCRUD flcCRUD;
|
||||
|
||||
static void Main(string[] args)
|
||||
{
|
||||
ConnectToGsmDb();
|
||||
ConnectToFlcDb();
|
||||
ConnectToFirelanceManager();
|
||||
Console.WriteLine("");
|
||||
while (true) { CommandsMenu(); }
|
||||
}
|
||||
@@ -61,10 +60,11 @@ namespace DevConsole
|
||||
Console.WriteLine($"GSMParser Connection State: {gsmRO.IsConnectionOpen()}");
|
||||
}
|
||||
|
||||
private static void ConnectToFlcDb()
|
||||
private static void ConnectToFirelanceManager()
|
||||
{
|
||||
fireLanceCRUD.OpenConnection("sr3", 27017);
|
||||
Console.WriteLine($"FireLance Connection State: {fireLanceCRUD.IsConnectionOpen()}");
|
||||
flcMgr.OpenConnection("sr3", 27017);
|
||||
flcCRUD = new FirelanceCRUD(flcMgr.DBInstance);
|
||||
Console.WriteLine($"FireLance Connection State: {flcMgr.IsConnectionOpen()}");
|
||||
}
|
||||
|
||||
#region Command Options
|
||||
@@ -73,7 +73,7 @@ namespace DevConsole
|
||||
Console.WriteLine("[GsmDb]------------");
|
||||
Console.WriteLine("A. Open DB");
|
||||
Console.WriteLine("B. Close DB");
|
||||
Console.WriteLine("[FlcDb]------------");
|
||||
Console.WriteLine("[Firelance]------------");
|
||||
Console.WriteLine("C. Open DB");
|
||||
Console.WriteLine("D. Close DB (Unsupported)");
|
||||
Console.WriteLine("X. <--- Go back\n");
|
||||
@@ -91,10 +91,10 @@ namespace DevConsole
|
||||
gsmRO.CloseCurrentConnection();
|
||||
break;
|
||||
case "C":
|
||||
ConnectToFlcDb();
|
||||
ConnectToFirelanceManager();
|
||||
break;
|
||||
case "D":
|
||||
fireLanceCRUD.CloseCurrentConnection();
|
||||
flcMgr.CloseCurrentConnection();
|
||||
break;
|
||||
case "X":
|
||||
break;
|
||||
@@ -152,10 +152,12 @@ namespace DevConsole
|
||||
|
||||
private static void CmdFlcActions()
|
||||
{
|
||||
Console.WriteLine("A. FireLance Write Predefined MasterGameRecord");
|
||||
Console.WriteLine("B. FireLance Read Predefined MasterGameRecord");
|
||||
Console.WriteLine("C. FireLance Insert Save Entry into existing MasterGameRecord");
|
||||
Console.WriteLine("D. FireLance Remove Save Entry from existing MasterGameRecord");
|
||||
Console.WriteLine("A. Write predefined MasterGameRecord");
|
||||
Console.WriteLine("B. Read predefined MasterGameRecord");
|
||||
Console.WriteLine("C. Insert save entry into existing MasterGameRecord");
|
||||
Console.WriteLine("D. Remove save entry from existing MasterGameRecord");
|
||||
Console.WriteLine("E. Upload save entry using GridFS");
|
||||
Console.WriteLine("F. Download save entry using GridFS");
|
||||
Console.WriteLine("X. <--- Go back\n");
|
||||
Console.Write(":");
|
||||
|
||||
@@ -176,6 +178,12 @@ namespace DevConsole
|
||||
case "D":
|
||||
FlcRemoveSaveEntryAction();
|
||||
break;
|
||||
case "E":
|
||||
FlcUploadToGridFsAction();
|
||||
break;
|
||||
case "F":
|
||||
FlcDownloadToGridFsAction();
|
||||
break;
|
||||
case "X":
|
||||
break;
|
||||
}
|
||||
@@ -205,12 +213,12 @@ namespace DevConsole
|
||||
masterGameRecord.GameEntry = gameEntry;
|
||||
masterGameRecord.SaveGameEntries = saveGameEntries;
|
||||
|
||||
fireLanceCRUD.InsertRecord("GameRecords", masterGameRecord);
|
||||
flcCRUD.InsertRecord("GameRecords", masterGameRecord);
|
||||
}
|
||||
|
||||
static void FlcReadMasterGameRecordAction()
|
||||
{
|
||||
var masterGameRecords = fireLanceCRUD.LoadRecordsFromTable<MasterGameRecordModel>("GameRecords");
|
||||
var masterGameRecords = flcCRUD.LoadRecordsFromTable<MasterGameRecordModel>("GameRecords");
|
||||
foreach (var record in masterGameRecords)
|
||||
{
|
||||
Console.WriteLine(record.Id);
|
||||
@@ -234,21 +242,37 @@ namespace DevConsole
|
||||
|
||||
private static void FlcRemoveSaveEntryAction()
|
||||
{
|
||||
Guid firstMasterGameRecordGuid = fireLanceCRUD.LoadRecordsFromTable<MasterGameRecordModel>("GameRecords").First().Id;
|
||||
var masterGameRecordToRemove = fireLanceCRUD.LoadRecordById<MasterGameRecordModel>("GameRecords", firstMasterGameRecordGuid);
|
||||
Guid firstMasterGameRecordGuid = flcCRUD.LoadRecordsFromTable<MasterGameRecordModel>("GameRecords").First().Id;
|
||||
var masterGameRecordToRemove = flcCRUD.LoadRecordById<MasterGameRecordModel>("GameRecords", firstMasterGameRecordGuid);
|
||||
Guid firstSaveGameEntryGuid = masterGameRecordToRemove.SaveGameEntries.Select(x => x.Id).First();
|
||||
masterGameRecordToRemove.SaveGameEntries.RemoveAll(x => x.Id == firstSaveGameEntryGuid);
|
||||
|
||||
fireLanceCRUD.UpsertRecordById("GameRecords", firstMasterGameRecordGuid, masterGameRecordToRemove);
|
||||
flcCRUD.UpsertRecordById("GameRecords", firstMasterGameRecordGuid, masterGameRecordToRemove);
|
||||
}
|
||||
|
||||
private static void FlcInsertSaveEntryAction()
|
||||
{
|
||||
Guid firstMasterGameRecordGuid = fireLanceCRUD.LoadRecordsFromTable<MasterGameRecordModel>("GameRecords").First().Id;
|
||||
var masterGameRecordToInsert = fireLanceCRUD.LoadRecordById<MasterGameRecordModel>("GameRecords", firstMasterGameRecordGuid);
|
||||
Guid firstMasterGameRecordGuid = flcCRUD.LoadRecordsFromTable<MasterGameRecordModel>("GameRecords").First().Id;
|
||||
var masterGameRecordToInsert = flcCRUD.LoadRecordById<MasterGameRecordModel>("GameRecords", firstMasterGameRecordGuid);
|
||||
masterGameRecordToInsert.SaveGameEntries.Add(new SaveGameEntriesModel());
|
||||
|
||||
fireLanceCRUD.UpsertRecordById("GameRecords", firstMasterGameRecordGuid, masterGameRecordToInsert);
|
||||
flcCRUD.UpsertRecordById("GameRecords", firstMasterGameRecordGuid, masterGameRecordToInsert);
|
||||
}
|
||||
|
||||
private static void FlcUploadToGridFsAction()
|
||||
{
|
||||
var flcGFS = new FirelanceGFS(flcMgr.DBInstance);
|
||||
var ulResult = flcGFS.UploadFile("TestFile", @"C:\Users\Dunestorm\Downloads\OpenMW-0.46.0-win64.exe");
|
||||
Console.WriteLine(ulResult.Result);
|
||||
}
|
||||
|
||||
private static void FlcDownloadToGridFsAction()
|
||||
{
|
||||
var objId = "5f00a560b65a2f02d0c7996e";
|
||||
|
||||
var flcGFC = new FirelanceGFS(flcMgr.DBInstance);
|
||||
var dlResult = flcGFC.DownloadFile(new MongoDB.Bson.ObjectId(objId), @$"D:\Temp\{objId}.exe");
|
||||
Console.WriteLine($"Download Successful: {dlResult.Result}");
|
||||
}
|
||||
#endregion
|
||||
|
||||
|
||||
Reference in New Issue
Block a user