Implemented MasterGameEntry readback functionality
- Corrected exit command. - Generic PrintAllValues function using C# Reflection replaces previous hard-coded functions.
This commit is contained in:
+50
-40
@@ -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<GameEntryModel>( GsmDbStruct.Columns.GameName,
|
||||
var queryId = gsmRO.LoadRecords<GameEntryModel>( 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<DirectoriesModel>( "*",
|
||||
var queryDirectoryId = gsmRO.LoadRecords<DirectoriesModel>( "*",
|
||||
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<GameEntryModel>( GsmDbStruct.Columns.GameName,
|
||||
var queryGameByName = gsmRO.LoadRecords<GameEntryModel>( 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<DirectoriesModel> directories = gsmRO.LoadRecords<DirectoriesModel>( "*",
|
||||
GsmDbStruct.Tables.Directories,
|
||||
GsmDbStruct.Columns.GameID,
|
||||
"600",
|
||||
true);
|
||||
|
||||
List<GameEntryModel> gameEntry = gsmRO.LoadRecords<GameEntryModel>( GsmDbStruct.Columns.GameName,
|
||||
GameEntryModel gameEntry = gsmRO.LoadRecords<GameEntryModel>( GsmDbStruct.Columns.GameName,
|
||||
GsmDbStruct.Tables.GameEntry,
|
||||
GsmDbStruct.Columns.ID,
|
||||
"600",
|
||||
true);
|
||||
true).First();
|
||||
|
||||
List<SaveGameEntriesModel> saveDescriptor = new List<SaveGameEntriesModel>();
|
||||
saveDescriptor.Add(new SaveGameEntriesModel());
|
||||
List<SaveGameEntriesModel> saveGameEntries = new List<SaveGameEntriesModel>();
|
||||
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<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("");
|
||||
}
|
||||
}
|
||||
|
||||
fireLanceCRUD.InsertRecord("GameRecords", masterGameRecord);
|
||||
break;
|
||||
case "X":
|
||||
break;
|
||||
@@ -184,32 +213,13 @@ namespace DevConsole
|
||||
}
|
||||
#endregion
|
||||
|
||||
private static void PrintGameEntries(List<GameEntryModel> gameEntries)
|
||||
private static void PrintAllValues<T>(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<DirectoriesModel> 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("");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user