From 06e4c505db98d912894c7c2977a0926708b6bf78 Mon Sep 17 00:00:00 2001 From: Dunestorm Date: Tue, 7 Jul 2020 20:07:33 +0100 Subject: [PATCH] Firelance 0.1.0.0 - Corrected instancing error by including FQ class name from previous commit - Implemented helper class: - SpecialPath directory converter - Registry value parser --- DevConsole/Program.cs | 71 +++++++++++++++++++++++------------ FireLance/FirelanceMgr.csproj | 1 + FireLance/Helpers.cs | 51 +++++++++++++++++++++++++ 3 files changed, 98 insertions(+), 25 deletions(-) create mode 100644 FireLance/Helpers.cs diff --git a/DevConsole/Program.cs b/DevConsole/Program.cs index 9bca2a7..39cf1eb 100644 --- a/DevConsole/Program.cs +++ b/DevConsole/Program.cs @@ -1,6 +1,5 @@ -using Firelance; -using Firelance.Models; -using Gsm; +using Firelance.Models; +using FirelanceMgr; using MongoDB.Bson; using System; using System.Collections.Generic; @@ -11,8 +10,8 @@ namespace DevConsole { class Program { - public static GsmMgr gsmMgr = new GsmMgr(); - public static FirelanceMgr flcMgr = new FirelanceMgr(); + public static Gsm.GsmMgr gsmMgr = new Gsm.GsmMgr(); + public static Firelance.FirelanceMgr flcMgr = new Firelance.FirelanceMgr(); static void Main(string[] args) { @@ -28,6 +27,7 @@ namespace DevConsole Console.WriteLine("A. Manage DB Connections --->"); Console.WriteLine("B. GSM Actions --->"); Console.WriteLine("C. FLC Actions --->"); + Console.WriteLine("D. Helper Actions --->"); Console.WriteLine("X. Exit application\n"); Console.Write(":"); @@ -45,6 +45,9 @@ namespace DevConsole case "C": CmdFlcActions(); break; + case "D": + CmdHelperActions(); + break; case "X": Environment.Exit(0); break; @@ -117,10 +120,10 @@ namespace DevConsole Console.WriteLine("Enter a game ID:"); var queryId = gsmMgr.RO.LoadRecords( Gsm.Collections.Columns.GameName, - Gsm.Collections.Tables.GameEntry, - Gsm.Collections.Columns.ID, - Console.ReadLine(), - true); + Gsm.Collections.Tables.GameEntry, + Gsm.Collections.Columns.ID, + Console.ReadLine(), + true); foreach (var record in queryId) PrintAllValues(record); break; @@ -128,20 +131,20 @@ namespace DevConsole Console.WriteLine("Enter a game ID:"); var queryDirectoryId = gsmMgr.RO.LoadRecords( Gsm.Collections.Options.All, - Gsm.Collections.Tables.Directories, - Gsm.Collections.Columns.GameID, - Console.ReadLine(), - true); + Gsm.Collections.Tables.Directories, + Gsm.Collections.Columns.GameID, + Console.ReadLine(), + true); foreach (var record in queryDirectoryId) PrintAllValues(record); break; case "C": Console.WriteLine("Enter game title to search:"); var queryGameByName = gsmMgr.RO.LoadRecords( Gsm.Collections.Columns.GameName, - Gsm.Collections.Tables.GameEntry, - Gsm.Collections.Columns.GameName, - Console.ReadLine(), - false); + Gsm.Collections.Tables.GameEntry, + Gsm.Collections.Columns.GameName, + Console.ReadLine(), + false); foreach (var record in queryGameByName) PrintAllValues(record); break; case "X": @@ -188,22 +191,40 @@ namespace DevConsole } } + private static void CmdHelperActions() + { + Console.WriteLine("A. Convert SpecialPath to AbsolutePath"); + Console.WriteLine("X. <--- Go back\n"); + Console.Write(":"); + + var userInput = Console.ReadLine(); + Console.Write("\n\n"); + + switch (userInput.ToUpper()) + { + case "A": + Console.WriteLine(Helpers.Converters.GetSpecialToAbsolutePath(Console.ReadLine().ToUpper())); + break; + case "X": + break; + } + } #endregion #region FlcActions private static void FlcWriteMasterGameRecordAction() { var masterGameRecord = new MasterGameRecordModel(); List directories = gsmMgr.RO.LoadRecords( Gsm.Collections.Options.All, - Gsm.Collections.Tables.Directories, - Gsm.Collections.Columns.GameID, - "600", - true); + Gsm.Collections.Tables.Directories, + Gsm.Collections.Columns.GameID, + "600", + true); GameEntryModel gameEntry = gsmMgr.RO.LoadRecords( Gsm.Collections.Columns.GameName, - Gsm.Collections.Tables.GameEntry, - Gsm.Collections.Columns.ID, - "600", - true).First(); + Gsm.Collections.Tables.GameEntry, + Gsm.Collections.Columns.ID, + "600", + true).First(); List saveGameEntries = new List(); saveGameEntries.Add(new SaveGameEntriesModel()); diff --git a/FireLance/FirelanceMgr.csproj b/FireLance/FirelanceMgr.csproj index beacf7c..985f3bb 100644 --- a/FireLance/FirelanceMgr.csproj +++ b/FireLance/FirelanceMgr.csproj @@ -5,6 +5,7 @@ + diff --git a/FireLance/Helpers.cs b/FireLance/Helpers.cs new file mode 100644 index 0000000..a253bdd --- /dev/null +++ b/FireLance/Helpers.cs @@ -0,0 +1,51 @@ +using Microsoft.Win32; +using System; +using System.Collections.Generic; +using System.Linq; + +namespace FirelanceMgr +{ + public static class Helpers + { + public static class Converters + { + public static string GetSpecialToAbsolutePath(string specialPath) + { + var d = new Dictionary() + { + { "%APPDATA%", Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData) }, + { "%APPDATA_LOCAL%", Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData) }, + { "%APPDATA_LOCALLOW%", @$"{Environment.GetFolderPath(Environment.SpecialFolder.UserProfile)}\AppData\LocalLow" }, + { "%APPDATA_COMMON%", Environment.GetFolderPath(Environment.SpecialFolder.CommonApplicationData) }, + { "%DOCUMENTS%", Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments) }, + { "%SAVED_GAMES%", @$"{Environment.GetFolderPath(Environment.SpecialFolder.UserProfile)}\Saved Games" }, + { "%STEAM%", Parsers.GetValueFromRegistry(@"SOFTWARE\WOW6432Node\Valve\Steam", "InstallPath") }, + { "%STEAM_CLOUD%", $@"{Parsers.GetValueFromRegistry(@"SOFTWARE\WOW6432Node\Valve\Steam", "InstallPath")}\userdata" }, + { "%SHARED_DOCUMENTS%", Environment.GetFolderPath(Environment.SpecialFolder.CommonDocuments) }, + { "%USER_PROFILE%", Environment.GetFolderPath(Environment.SpecialFolder.UserProfile) }, + { "%UPLAY%", "NOT_YET_IMPLEMENTED" }, + }; + + return d.Where(x => x.Key.Contains(specialPath)).Select(x => x.Value).Single(); + } + } + + public static class Parsers + { + public static string GetValueFromRegistry(string subKey, string value) + { + string result = string.Empty; + + using (RegistryKey key = Registry.LocalMachine.OpenSubKey(subKey)) + { + if (key != null) + { + result = key.GetValue(value).ToString(); + } + } + + return result; + } + } + } +}