diff --git a/DevConsole/Program.cs b/DevConsole/Program.cs index 296dbbc..3b430b4 100644 --- a/DevConsole/Program.cs +++ b/DevConsole/Program.cs @@ -6,6 +6,7 @@ using System.Collections.Generic; using System.ComponentModel; using System.IO; using System.Linq; +using System.Security.Cryptography.X509Certificates; namespace DevConsole { @@ -151,8 +152,10 @@ namespace DevConsole private static void CmdFlcActions() { - Console.WriteLine("A. FireLance Write Predefined SaveData Entry"); - Console.WriteLine("B. FireLance Read Predefined SaveData Entry"); + 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("X. <--- Go back\n"); Console.Write(":"); @@ -162,55 +165,91 @@ namespace DevConsole switch (userInput.ToUpper()) { case "A": - var writeMasterGameRecord = new MasterGameRecordModel(); - List directories = gsmRO.LoadRecords( "*", - GsmRO.Tables.Directories, - GsmRO.Columns.GameID, - "600", - true); - - GameEntryModel gameEntry = gsmRO.LoadRecords( GsmRO.Columns.GameName, - GsmRO.Tables.GameEntry, - GsmRO.Columns.ID, - "600", - true).First(); - - List saveGameEntries = new List(); - saveGameEntries.Add(new SaveGameEntriesModel()); - - writeMasterGameRecord.Directories = directories; - writeMasterGameRecord.GameEntry = gameEntry; - writeMasterGameRecord.SaveGameEntries = saveGameEntries; - - fireLanceCRUD.InsertRecord("GameRecords", writeMasterGameRecord); + FlcWriteMasterGameRecordAction(); break; case "B": - var readMasterGameRecords = fireLanceCRUD.LoadRecordsFromTable("GameRecords"); - foreach (var record in readMasterGameRecords) - { - Console.WriteLine(record.Id); - Console.WriteLine(""); - PrintAllValues(record.GameEntry); - Console.WriteLine(""); - - foreach (var subRecord in record.Directories) - { - PrintAllValues(subRecord); - Console.WriteLine(""); - } - - foreach (var subRecord in record.SaveGameEntries) - { - PrintAllValues(subRecord); - Console.WriteLine(""); - } - } - + FlcReadMasterGameRecordAction(); + break; + case "C": + FlcInsertSaveEntryAction(); + break; + case "D": + FlcRemoveSaveEntryAction(); break; case "X": break; } } + + #endregion + #region FlcActions + private static void FlcWriteMasterGameRecordAction() + { + var masterGameRecord = new MasterGameRecordModel(); + List directories = gsmRO.LoadRecords("*", + GsmRO.Tables.Directories, + GsmRO.Columns.GameID, + "600", + true); + + GameEntryModel gameEntry = gsmRO.LoadRecords(GsmRO.Columns.GameName, + GsmRO.Tables.GameEntry, + GsmRO.Columns.ID, + "600", + true).First(); + + List saveGameEntries = new List(); + saveGameEntries.Add(new SaveGameEntriesModel()); + + masterGameRecord.Directories = directories; + masterGameRecord.GameEntry = gameEntry; + masterGameRecord.SaveGameEntries = saveGameEntries; + + fireLanceCRUD.InsertRecord("GameRecords", masterGameRecord); + } + + static void FlcReadMasterGameRecordAction() + { + var masterGameRecords = fireLanceCRUD.LoadRecordsFromTable("GameRecords"); + foreach (var record in masterGameRecords) + { + Console.WriteLine(record.Id); + Console.WriteLine(""); + PrintAllValues(record.GameEntry); + Console.WriteLine(""); + + foreach (var subRecord in record.Directories) + { + PrintAllValues(subRecord); + Console.WriteLine(""); + } + + foreach (var subRecord in record.SaveGameEntries) + { + PrintAllValues(subRecord); + Console.WriteLine(""); + } + } + } + + private static void FlcRemoveSaveEntryAction() + { + Guid firstMasterGameRecordGuid = fireLanceCRUD.LoadRecordsFromTable("GameRecords").First().Id; + var masterGameRecordToRemove = fireLanceCRUD.LoadRecordById("GameRecords", firstMasterGameRecordGuid); + Guid firstSaveGameEntryGuid = masterGameRecordToRemove.SaveGameEntries.Select(x => x.Id).First(); + masterGameRecordToRemove.SaveGameEntries.RemoveAll(x => x.Id == firstSaveGameEntryGuid); + + fireLanceCRUD.UpsertRecordById("GameRecords", firstMasterGameRecordGuid, masterGameRecordToRemove); + } + + private static void FlcInsertSaveEntryAction() + { + Guid firstMasterGameRecordGuid = fireLanceCRUD.LoadRecordsFromTable("GameRecords").First().Id; + var masterGameRecordToInsert = fireLanceCRUD.LoadRecordById("GameRecords", firstMasterGameRecordGuid); + masterGameRecordToInsert.SaveGameEntries.Add(new SaveGameEntriesModel()); + + fireLanceCRUD.UpsertRecordById("GameRecords", firstMasterGameRecordGuid, masterGameRecordToInsert); + } #endregion private static void PrintAllValues(T data) diff --git a/FireLance/Models/MasterGameEntryModel.cs b/FireLance/Models/MasterGameRecordModel.cs similarity index 100% rename from FireLance/Models/MasterGameEntryModel.cs rename to FireLance/Models/MasterGameRecordModel.cs