using FireLance; using FireLance.Models; using Gsm; using System; using System.Collections.Generic; using System.IO; using System.Linq; namespace DevConsole { class Program { public static readonly GsmRO gsmRO = new GsmRO(); public static FireLanceCRUD fireLanceCRUD = new FireLanceCRUD(); static void Main(string[] args) { ConnectToGsmDb(); ConnectToFlcDb(); Console.WriteLine(""); while (true) { CommandsMenu(); } } private static void CommandsMenu() { Console.WriteLine("Please select an option below:\n"); Console.WriteLine("A. Manage DB Connections --->"); Console.WriteLine("B. GSM Actions --->"); Console.WriteLine("C. FLC Actions --->"); Console.WriteLine("X. Exit application\n"); Console.Write(":"); var userInput = Console.ReadLine(); Console.Write("\n\n"); switch (userInput.ToUpper()) { case "A": CmdDbMgr(); break; case "B": CmdGsmActions(); break; case "C": CmdFlcActions(); break; case "G": Environment.Exit(0); break; default: Console.WriteLine("Invalid selection, please enter a listed command."); break; } } private static void ConnectToGsmDb() { gsmRO.OpenConnection(@"C:\Users\Dunestorm\Projects\FireLance\GSMParser\games.db", 0); Console.WriteLine($"GSMParser Connection State: {gsmRO.IsConnectionOpen()}"); } private static void ConnectToFlcDb() { fireLanceCRUD.OpenConnection("sr3", 27017); Console.WriteLine($"FireLance Connection State: {fireLanceCRUD.IsConnectionOpen()}"); } #region Command Options private static void CmdDbMgr() { Console.WriteLine("[GsmDb]------------"); Console.WriteLine("A. Open DB"); Console.WriteLine("B. Close DB"); Console.WriteLine("[FlcDb]------------"); Console.WriteLine("C. Open DB"); Console.WriteLine("D. Close DB (Unsupported)"); Console.WriteLine("X. <--- Go back\n"); Console.Write(":"); var userInput = Console.ReadLine(); Console.Write("\n\n"); switch (userInput.ToUpper()) { case "A": ConnectToGsmDb(); break; case "B": gsmRO.CloseCurrentConnection(); break; case "C": ConnectToFlcDb(); break; case "D": fireLanceCRUD.CloseCurrentConnection(); break; case "X": break; } } private static void CmdGsmActions() { Console.WriteLine("A. Query game by ID"); Console.WriteLine("B. Query directory by ID"); Console.WriteLine("C. Query game by NAME"); Console.WriteLine("X. <--- Go back\n"); Console.Write(":"); var userInput = Console.ReadLine(); Console.Write("\n\n"); switch (userInput.ToUpper()) { case "A": Console.WriteLine("Enter a game ID:"); PrintGameEntries(gsmRO.LoadRecords( GsmDbStruct.Columns.GameName, GsmDbStruct.Tables.GameEntry, GsmDbStruct.Columns.ID, Console.ReadLine(), true)); break; case "B": Console.WriteLine("Enter a game ID:"); PrintDirectories(gsmRO.LoadRecords( "*", GsmDbStruct.Tables.Directories, GsmDbStruct.Columns.GameID, Console.ReadLine(), true)); break; case "C": Console.WriteLine("Enter game title to search:"); PrintGameEntries(gsmRO.LoadRecords( GsmDbStruct.Columns.GameName, GsmDbStruct.Tables.GameEntry, GsmDbStruct.Columns.GameName, Console.ReadLine(), false)); break; case "X": break; } } private static void CmdFlcActions() { Console.WriteLine("A. FireLance Import Predefined SaveData Entry"); Console.WriteLine("X. <--- Go back\n"); Console.Write(":"); var userInput = Console.ReadLine(); Console.Write("\n\n"); switch (userInput.ToUpper()) { case "A": var masterGameRecord = new MasterGameRecordModel(); List directories = gsmRO.LoadRecords( "*", GsmDbStruct.Tables.Directories, GsmDbStruct.Columns.GameID, "600", true); List gameEntry = gsmRO.LoadRecords( GsmDbStruct.Columns.GameName, GsmDbStruct.Tables.GameEntry, GsmDbStruct.Columns.ID, "600", true); List saveDescriptor = new List(); saveDescriptor.Add(new SaveGameEntriesModel()); masterGameRecord.Directories = directories; masterGameRecord.GameEntry = gameEntry.First(); masterGameRecord.SaveGameEntries = saveDescriptor; fireLanceCRUD.InsertRecord("GameRecords", masterGameRecord); break; case "X": break; } } #endregion private static void PrintGameEntries(List gameEntries) { foreach (var game in gameEntries) { 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"); } } } }