Files
FireLance/DevConsole/Program.cs
Dunestorm 5f7eff3466 Re-added Game ID to GameEntryModel.
- Useful for search query lookups.
2020-07-01 23:07:31 +01:00

194 lines
7.1 KiB
C#

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<GameEntryModel>( GsmDbStruct.Columns.GameName,
GsmDbStruct.Tables.GameEntry,
GsmDbStruct.Columns.ID,
r,
true));
}
private static void OptionC()
{
Console.WriteLine("Enter a game ID:");
string r = Console.ReadLine();
Console.Write("\n");
PrintDirectories(gsmRO.LoadRecords<DirectoriesModel>( "*",
GsmDbStruct.Tables.Directories,
GsmDbStruct.Columns.GameID,
r,
true));
}
private static void OptionD()
{
Console.WriteLine("Enter game title to search:");
string r = Console.ReadLine();
Console.Write("\n");
PrintGameEntries(gsmRO.LoadRecords<GameEntryModel>( GsmDbStruct.Columns.GameName,
GsmDbStruct.Tables.GameEntry,
GsmDbStruct.Columns.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<DirectoriesModel> dm = gsmRO.LoadRecords< DirectoriesModel>("*",
GsmDbStruct.Tables.Directories,
GsmDbStruct.Columns.GameID,
"600",
true);
foreach (var entry in dm)
{
//entry.Path = guid.ToString();
fireLanceCRUD.InsertRecord("SaveData", entry);
}
}
#endregion
private static void PrintGameEntries(List<GameEntryModel> 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<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");
}
}
}
}