diff --git a/DevConsole/Program.cs b/DevConsole/Program.cs index e87034a..b2f60e4 100644 --- a/DevConsole/Program.cs +++ b/DevConsole/Program.cs @@ -3,6 +3,7 @@ using FireLance.Models; using Gsm; using System; using System.Collections.Generic; +using System.ComponentModel; using System.IO; using System.Linq; @@ -44,7 +45,7 @@ namespace DevConsole case "C": CmdFlcActions(); break; - case "G": + case "X": Environment.Exit(0); break; default: @@ -115,29 +116,33 @@ namespace DevConsole case "A": Console.WriteLine("Enter a game ID:"); - PrintGameEntries(gsmRO.LoadRecords( GsmDbStruct.Columns.GameName, + var queryId = gsmRO.LoadRecords( GsmDbStruct.Columns.GameName, GsmDbStruct.Tables.GameEntry, GsmDbStruct.Columns.ID, Console.ReadLine(), - true)); + true); + foreach (var record in queryId) PrintAllValues(record); + break; case "B": Console.WriteLine("Enter a game ID:"); - PrintDirectories(gsmRO.LoadRecords( "*", + var queryDirectoryId = gsmRO.LoadRecords( "*", GsmDbStruct.Tables.Directories, GsmDbStruct.Columns.GameID, Console.ReadLine(), - true)); + true); + foreach (var record in queryDirectoryId) PrintAllValues(record); break; case "C": Console.WriteLine("Enter game title to search:"); - PrintGameEntries(gsmRO.LoadRecords( GsmDbStruct.Columns.GameName, + var queryGameByName = gsmRO.LoadRecords( GsmDbStruct.Columns.GameName, GsmDbStruct.Tables.GameEntry, GsmDbStruct.Columns.GameName, Console.ReadLine(), - false)); + false); + foreach (var record in queryGameByName) PrintAllValues(record); break; case "X": break; @@ -146,7 +151,8 @@ namespace DevConsole private static void CmdFlcActions() { - Console.WriteLine("A. FireLance Import Predefined SaveData Entry"); + Console.WriteLine("A. FireLance Write Predefined SaveData Entry"); + Console.WriteLine("B. FireLance Read Predefined SaveData Entry"); Console.WriteLine("X. <--- Go back\n"); Console.Write(":"); @@ -156,27 +162,50 @@ namespace DevConsole switch (userInput.ToUpper()) { case "A": - var masterGameRecord = new MasterGameRecordModel(); + var writeMasterGameRecord = new MasterGameRecordModel(); List directories = gsmRO.LoadRecords( "*", GsmDbStruct.Tables.Directories, GsmDbStruct.Columns.GameID, "600", true); - List gameEntry = gsmRO.LoadRecords( GsmDbStruct.Columns.GameName, + GameEntryModel gameEntry = gsmRO.LoadRecords( GsmDbStruct.Columns.GameName, GsmDbStruct.Tables.GameEntry, GsmDbStruct.Columns.ID, "600", - true); + true).First(); - List saveDescriptor = new List(); - saveDescriptor.Add(new SaveGameEntriesModel()); + List saveGameEntries = new List(); + saveGameEntries.Add(new SaveGameEntriesModel()); - masterGameRecord.Directories = directories; - masterGameRecord.GameEntry = gameEntry.First(); - masterGameRecord.SaveGameEntries = saveDescriptor; + writeMasterGameRecord.Directories = directories; + writeMasterGameRecord.GameEntry = gameEntry; + writeMasterGameRecord.SaveGameEntries = saveGameEntries; + + fireLanceCRUD.InsertRecord("GameRecords", writeMasterGameRecord); + 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(""); + } + } - fireLanceCRUD.InsertRecord("GameRecords", masterGameRecord); break; case "X": break; @@ -184,32 +213,13 @@ namespace DevConsole } #endregion - private static void PrintGameEntries(List gameEntries) + private static void PrintAllValues(T data) { - foreach (var game in gameEntries) + foreach (PropertyDescriptor item in TypeDescriptor.GetProperties(data)) { - Console.WriteLine($"ID: {game.ID}"); - Console.WriteLine($"GameName: {game.GameName}"); - Console.WriteLine($"BackupWarning: {game.BackupWarning}"); - Console.WriteLine($"RestoreWarning: {game.RestoreWarning}"); - Console.WriteLine($"LastModified: {game.LastModified}\n"); - } - } - - private static void PrintDirectories(List directoryEntries) - { - foreach (var directory in directoryEntries) - { - Console.WriteLine($"GameID: {directory.GameID}"); - Console.WriteLine($"SpecialPath: {directory.SpecialPath}"); - Console.WriteLine($"Path: {directory.Path}"); - Console.WriteLine($"RegHive: {directory.RegHive}"); - Console.WriteLine($"RegPath: {directory.RegPath}"); - Console.WriteLine($"RegValue: {directory.RegValue}"); - Console.WriteLine($"DefinedFiles: {directory.DefinedFiles}"); - Console.WriteLine($"ExcludedFiles: {directory.ExcludedFiles}"); - Console.WriteLine($"Recurse: {directory.Recurse}\n"); + Console.WriteLine($"{item.Name}: {item.GetValue(data)}"); } + Console.WriteLine(""); } } }