From 99465c51b6d884fd3eb29c9f986ebeda01dd9be5 Mon Sep 17 00:00:00 2001 From: Dunestorm Date: Sun, 5 Jul 2020 16:11:44 +0100 Subject: [PATCH] Uploading save game automatically creates SaveGameEntry. --- DevConsole/Program.cs | 26 ++++++++++++++++++------ FireLance/Models/SaveGameEntriesModel.cs | 8 +++----- 2 files changed, 23 insertions(+), 11 deletions(-) diff --git a/DevConsole/Program.cs b/DevConsole/Program.cs index 546777e..bc447b4 100644 --- a/DevConsole/Program.cs +++ b/DevConsole/Program.cs @@ -1,6 +1,7 @@ using Firelance; using Firelance.Models; using Gsm; +using MongoDB.Bson; using System; using System.Collections.Generic; using System.ComponentModel; @@ -246,21 +247,23 @@ namespace DevConsole { Guid firstMasterGameRecordGuid = flcCRUD.LoadRecordsFromTable( Firelance.Collections.GameRecords).First().Id; - var masterGameRecordToRemove = flcCRUD.LoadRecordById( + MasterGameRecordModel masterGameRecordToRemove = flcCRUD.LoadRecordById( Firelance.Collections.GameRecords, firstMasterGameRecordGuid); - Guid firstSaveGameEntryGuid = masterGameRecordToRemove.SaveGameEntries.Select(x => x.SaveDataID).First(); - masterGameRecordToRemove.SaveGameEntries.RemoveAll(x => x.SaveDataID == firstSaveGameEntryGuid); + ObjectId firstSaveGameEntryObjId = masterGameRecordToRemove.SaveGameEntries.Select(x => x.SaveDataID).First(); + masterGameRecordToRemove.SaveGameEntries.RemoveAll(x => x.SaveDataID == firstSaveGameEntryObjId); flcCRUD.UpsertRecordById(Firelance.Collections.GameRecords, firstMasterGameRecordGuid, masterGameRecordToRemove); + + } private static void FlcInsertSaveEntryAction() { Guid firstMasterGameRecordGuid = flcCRUD.LoadRecordsFromTable( Firelance.Collections.GameRecords).First().Id; - var masterGameRecordToInsert = flcCRUD.LoadRecordById( + MasterGameRecordModel masterGameRecordToInsert = flcCRUD.LoadRecordById( Firelance.Collections.GameRecords, firstMasterGameRecordGuid); masterGameRecordToInsert.SaveGameEntries.Add(new SaveGameEntriesModel()); @@ -272,8 +275,19 @@ namespace DevConsole private static void FlcUploadToGridFsAction() { var flcGFS = new FirelanceGFS(flcMgr.Database); - var ulResult = flcGFS.UploadFile("TestFile", @"C:\Users\Dunestorm\Downloads\OpenMW-0.46.0-win64.exe"); - Console.WriteLine(ulResult.Result); + var ulObjId = new ObjectId(flcGFS.UploadFile("TestFile", @"C:\Users\Dunestorm\Downloads\OpenMW-0.46.0-win64.exe").Result); + + Guid firstMasterGameRecordGuid = flcCRUD.LoadRecordsFromTable( + Firelance.Collections.GameRecords).First().Id; + var saveGameEntry = flcCRUD.LoadRecordById( + Firelance.Collections.GameRecords, firstMasterGameRecordGuid); + saveGameEntry.SaveGameEntries.Add(new SaveGameEntriesModel() { SaveDataID = ulObjId }); + + flcCRUD.UpsertRecordById(Firelance.Collections.GameRecords, + firstMasterGameRecordGuid, + saveGameEntry); + + Console.WriteLine(ulObjId); } private static void FlcDownloadToGridFsAction() diff --git a/FireLance/Models/SaveGameEntriesModel.cs b/FireLance/Models/SaveGameEntriesModel.cs index f71ebac..5ee2b06 100644 --- a/FireLance/Models/SaveGameEntriesModel.cs +++ b/FireLance/Models/SaveGameEntriesModel.cs @@ -1,4 +1,5 @@ -using MongoDB.Bson.Serialization.Attributes; +using MongoDB.Bson; +using MongoDB.Bson.Serialization.Attributes; using System; using System.Collections.Generic; @@ -6,10 +7,7 @@ namespace Firelance.Models { public class SaveGameEntriesModel { - //[BsonId] - //public Guid Id { get; set; } - - public Guid SaveDataID { get; set; } + public ObjectId SaveDataID { get; set; } public Dictionary SaveDirectoryTreeSize { get; set; } public string Description { get; set; } }