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 Gsm;
|
||||||
using System;
|
using System;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
|
using System.ComponentModel;
|
||||||
using System.IO;
|
using System.IO;
|
||||||
using System.Linq;
|
using System.Linq;
|
||||||
|
|
||||||
@@ -44,7 +45,7 @@ namespace DevConsole
|
|||||||
case "C":
|
case "C":
|
||||||
CmdFlcActions();
|
CmdFlcActions();
|
||||||
break;
|
break;
|
||||||
case "G":
|
case "X":
|
||||||
Environment.Exit(0);
|
Environment.Exit(0);
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
@@ -115,29 +116,33 @@ namespace DevConsole
|
|||||||
case "A":
|
case "A":
|
||||||
Console.WriteLine("Enter a game ID:");
|
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.Tables.GameEntry,
|
||||||
GsmDbStruct.Columns.ID,
|
GsmDbStruct.Columns.ID,
|
||||||
Console.ReadLine(),
|
Console.ReadLine(),
|
||||||
true));
|
true);
|
||||||
|
foreach (var record in queryId) PrintAllValues(record);
|
||||||
|
|
||||||
break;
|
break;
|
||||||
case "B":
|
case "B":
|
||||||
Console.WriteLine("Enter a game ID:");
|
Console.WriteLine("Enter a game ID:");
|
||||||
|
|
||||||
PrintDirectories(gsmRO.LoadRecords<DirectoriesModel>( "*",
|
var queryDirectoryId = gsmRO.LoadRecords<DirectoriesModel>( "*",
|
||||||
GsmDbStruct.Tables.Directories,
|
GsmDbStruct.Tables.Directories,
|
||||||
GsmDbStruct.Columns.GameID,
|
GsmDbStruct.Columns.GameID,
|
||||||
Console.ReadLine(),
|
Console.ReadLine(),
|
||||||
true));
|
true);
|
||||||
|
foreach (var record in queryDirectoryId) PrintAllValues(record);
|
||||||
break;
|
break;
|
||||||
case "C":
|
case "C":
|
||||||
Console.WriteLine("Enter game title to search:");
|
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.Tables.GameEntry,
|
||||||
GsmDbStruct.Columns.GameName,
|
GsmDbStruct.Columns.GameName,
|
||||||
Console.ReadLine(),
|
Console.ReadLine(),
|
||||||
false));
|
false);
|
||||||
|
foreach (var record in queryGameByName) PrintAllValues(record);
|
||||||
break;
|
break;
|
||||||
case "X":
|
case "X":
|
||||||
break;
|
break;
|
||||||
@@ -146,7 +151,8 @@ namespace DevConsole
|
|||||||
|
|
||||||
private static void CmdFlcActions()
|
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.WriteLine("X. <--- Go back\n");
|
||||||
Console.Write(":");
|
Console.Write(":");
|
||||||
|
|
||||||
@@ -156,27 +162,50 @@ namespace DevConsole
|
|||||||
switch (userInput.ToUpper())
|
switch (userInput.ToUpper())
|
||||||
{
|
{
|
||||||
case "A":
|
case "A":
|
||||||
var masterGameRecord = new MasterGameRecordModel();
|
var writeMasterGameRecord = new MasterGameRecordModel();
|
||||||
List<DirectoriesModel> directories = gsmRO.LoadRecords<DirectoriesModel>( "*",
|
List<DirectoriesModel> directories = gsmRO.LoadRecords<DirectoriesModel>( "*",
|
||||||
GsmDbStruct.Tables.Directories,
|
GsmDbStruct.Tables.Directories,
|
||||||
GsmDbStruct.Columns.GameID,
|
GsmDbStruct.Columns.GameID,
|
||||||
"600",
|
"600",
|
||||||
true);
|
true);
|
||||||
|
|
||||||
List<GameEntryModel> gameEntry = gsmRO.LoadRecords<GameEntryModel>( GsmDbStruct.Columns.GameName,
|
GameEntryModel gameEntry = gsmRO.LoadRecords<GameEntryModel>( GsmDbStruct.Columns.GameName,
|
||||||
GsmDbStruct.Tables.GameEntry,
|
GsmDbStruct.Tables.GameEntry,
|
||||||
GsmDbStruct.Columns.ID,
|
GsmDbStruct.Columns.ID,
|
||||||
"600",
|
"600",
|
||||||
true);
|
true).First();
|
||||||
|
|
||||||
List<SaveGameEntriesModel> saveDescriptor = new List<SaveGameEntriesModel>();
|
List<SaveGameEntriesModel> saveGameEntries = new List<SaveGameEntriesModel>();
|
||||||
saveDescriptor.Add(new SaveGameEntriesModel());
|
saveGameEntries.Add(new SaveGameEntriesModel());
|
||||||
|
|
||||||
masterGameRecord.Directories = directories;
|
writeMasterGameRecord.Directories = directories;
|
||||||
masterGameRecord.GameEntry = gameEntry.First();
|
writeMasterGameRecord.GameEntry = gameEntry;
|
||||||
masterGameRecord.SaveGameEntries = saveDescriptor;
|
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;
|
break;
|
||||||
case "X":
|
case "X":
|
||||||
break;
|
break;
|
||||||
@@ -184,32 +213,13 @@ namespace DevConsole
|
|||||||
}
|
}
|
||||||
#endregion
|
#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($"{item.Name}: {item.GetValue(data)}");
|
||||||
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("");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user