FireLance removing save game entry action implemented.

- Refactoring.
- Moved FLC actions into separate functions.
This commit is contained in:
2020-07-04 12:14:07 +01:00
parent 253911f89c
commit a09f580cfe
2 changed files with 83 additions and 44 deletions
+83 -44
View File
@@ -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<DirectoriesModel> directories = gsmRO.LoadRecords<DirectoriesModel>( "*",
GsmRO.Tables.Directories,
GsmRO.Columns.GameID,
"600",
true);
GameEntryModel gameEntry = gsmRO.LoadRecords<GameEntryModel>( GsmRO.Columns.GameName,
GsmRO.Tables.GameEntry,
GsmRO.Columns.ID,
"600",
true).First();
List<SaveGameEntriesModel> saveGameEntries = new List<SaveGameEntriesModel>();
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<MasterGameRecordModel>("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<DirectoriesModel> directories = gsmRO.LoadRecords<DirectoriesModel>("*",
GsmRO.Tables.Directories,
GsmRO.Columns.GameID,
"600",
true);
GameEntryModel gameEntry = gsmRO.LoadRecords<GameEntryModel>(GsmRO.Columns.GameName,
GsmRO.Tables.GameEntry,
GsmRO.Columns.ID,
"600",
true).First();
List<SaveGameEntriesModel> saveGameEntries = new List<SaveGameEntriesModel>();
saveGameEntries.Add(new SaveGameEntriesModel());
masterGameRecord.Directories = directories;
masterGameRecord.GameEntry = gameEntry;
masterGameRecord.SaveGameEntries = saveGameEntries;
fireLanceCRUD.InsertRecord("GameRecords", masterGameRecord);
}
static void FlcReadMasterGameRecordAction()
{
var masterGameRecords = fireLanceCRUD.LoadRecordsFromTable<MasterGameRecordModel>("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<MasterGameRecordModel>("GameRecords").First().Id;
var masterGameRecordToRemove = fireLanceCRUD.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);
}
private static void FlcInsertSaveEntryAction()
{
Guid firstMasterGameRecordGuid = fireLanceCRUD.LoadRecordsFromTable<MasterGameRecordModel>("GameRecords").First().Id;
var masterGameRecordToInsert = fireLanceCRUD.LoadRecordById<MasterGameRecordModel>("GameRecords", firstMasterGameRecordGuid);
masterGameRecordToInsert.SaveGameEntries.Add(new SaveGameEntriesModel());
fireLanceCRUD.UpsertRecordById("GameRecords", firstMasterGameRecordGuid, masterGameRecordToInsert);
}
#endregion
private static void PrintAllValues<T>(T data)