using FireLance; using FireLance.Models; using Gsm; using System; using System.Collections.Generic; using System.IO; namespace DevConsole { class Program { public static readonly GsmRO gsmRO = new GsmRO(); public static FireLanceCRUD fireLanceCRUD = new FireLanceCRUD(); static void Main(string[] args) { while (true) { CommandsMenu(); } } private static void CommandsMenu() { Console.WriteLine("Please select an option below:\n"); Console.WriteLine("A. GSMParser Database connection"); Console.WriteLine("B. Query game by ID"); Console.WriteLine("C. Query directory by ID"); Console.WriteLine("D. Query game by NAME"); Console.WriteLine("E. FireLance Database connection"); Console.WriteLine("F. FireLance Import Predefined SaveData Entry"); Console.WriteLine("X. Exit application\n"); Console.Write(":"); var userInput = Console.ReadKey(); Console.Write("\n\n"); switch (userInput.Key) { case ConsoleKey.A: OptionA(); break; case ConsoleKey.B: OptionB(); break; case ConsoleKey.C: OptionC(); break; case ConsoleKey.D: OptionD(); break; case ConsoleKey.E: OptionE(); break; case ConsoleKey.F: OptionF(); break; case ConsoleKey.X: Environment.Exit(0); break; default: break; } } #region Command Options private static void OptionA() { Console.WriteLine("A. Open DB"); Console.WriteLine("B. Close DB"); Console.Write(":"); var userInput = Console.ReadKey(); Console.Write("\n\n"); switch (userInput.Key) { case ConsoleKey.A: Console.WriteLine("Connect to database"); gsmRO.OpenConnection(@"C:\Users\Dunestorm\Projects\FireLance\GSMParser\games.db", 0); break; case ConsoleKey.B: gsmRO.CloseCurrentConnection(); break; } Console.WriteLine($"GSMParser Connection State: {gsmRO.IsConnectionOpen()}\n"); } private static void OptionB() { Console.WriteLine("Enter a game ID:"); string r = Console.ReadLine(); Console.Write("\n"); PrintGameEntries(gsmRO.LoadRecords(GsmStruct.GameEntries.GameName, GsmStruct.Tables.GameEntry, GsmStruct.GameEntries.GameID, r, true)); } private static void OptionC() { Console.WriteLine("Enter a game ID:"); string r = Console.ReadLine(); Console.Write("\n"); PrintDirectories(gsmRO.LoadRecords("*", GsmStruct.Tables.Directories, GsmStruct.DirectoryColumns.GameID, r, true)); } private static void OptionD() { Console.WriteLine("Enter game title to search:"); string r = Console.ReadLine(); Console.Write("\n"); PrintGameEntries(gsmRO.LoadRecords(GsmStruct.GameEntries.GameName, GsmStruct.Tables.GameEntry, GsmStruct.GameEntries.GameName, r, false)); } private static void OptionE() { Console.WriteLine("A. Open DB"); Console.WriteLine("B. Close DB"); Console.Write(":"); var userInput = Console.ReadKey(); Console.Write("\n\n"); switch (userInput.Key) { case ConsoleKey.A: Console.WriteLine("Connect to database"); fireLanceCRUD.OpenConnection("sr3", 27017); break; case ConsoleKey.B: fireLanceCRUD.CloseCurrentConnection(); break; } Console.WriteLine($"FireLance Connection State: {fireLanceCRUD.IsConnectionOpen()}\n"); } private static void OptionF() { //Guid guid = Guid.NewGuid(); List dm = gsmRO.LoadRecords("*", GsmStruct.Tables.Directories, GsmStruct.DirectoryColumns.GameID, "600", true); foreach (var entry in dm) { //entry.Path = guid.ToString(); fireLanceCRUD.InsertRecord("SaveData", entry); } } #endregion private static void PrintGameEntries(List gameEntries) { foreach (var game in gameEntries) { Console.WriteLine($"GameName: {game.GameName}"); Console.WriteLine($"BackupWarning: {game.BackupWarning}"); Console.WriteLine($"RestoreWarning: {game.RestoreWarning}"); Console.WriteLine($"LastModified: {game.LastModified}\n"); } } private static void PrintGameEntry(GameEntryModel gameEntry) { Console.WriteLine($"GameName: {gameEntry.GameName}"); Console.WriteLine($"BackupWarning: {gameEntry.BackupWarning}"); Console.WriteLine($"RestoreWarning: {gameEntry.RestoreWarning}"); Console.WriteLine($"LastModified: {gameEntry.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"); } } } }