From 529c031e319edb3ec28e7f75dafdc732d46b8377 Mon Sep 17 00:00:00 2001 From: Dunestorm Date: Sat, 11 Jul 2020 22:18:24 +0100 Subject: [PATCH] Firelance 0.1.5.2 - Identification of valid save path function added - Beginning to relocate SaveGameEntries model to be embedded within the relevant DirectoryEntry --- DevConsole/Program.cs | 1 - FireLance/Helpers.cs | 29 +++++++++++++++++++++++----- FireLance/Models/DirectoriesModel.cs | 5 ++++- 3 files changed, 28 insertions(+), 7 deletions(-) diff --git a/DevConsole/Program.cs b/DevConsole/Program.cs index cc96867..7c190df 100644 --- a/DevConsole/Program.cs +++ b/DevConsole/Program.cs @@ -251,7 +251,6 @@ namespace DevConsole masterGameRecord.Directories = directories; masterGameRecord.GameEntry = gameEntry; - masterGameRecord.SaveGameEntries = saveGameEntries; flcMgr.CRUD.InsertRecord(Firelance.Collections.GameRecords, masterGameRecord); } diff --git a/FireLance/Helpers.cs b/FireLance/Helpers.cs index 36967b1..03695d6 100644 --- a/FireLance/Helpers.cs +++ b/FireLance/Helpers.cs @@ -1,8 +1,8 @@ using Microsoft.Win32; using System; using System.Collections.Generic; +using System.IO; using System.Linq; -using System.Reflection.Metadata; namespace FirelanceMgr { @@ -39,14 +39,33 @@ namespace FirelanceMgr using (RegistryKey key = Registry.LocalMachine.OpenSubKey(subKey)) { - if (key != null) - { - result = key.GetValue(value).ToString(); - } + result = (key != null) ? key.GetValue(value).ToString() : string.Empty; } return result; } + + public static string IdentifyValidSavePath(IEnumerable fullSpecialPaths, IEnumerable savePaths) + { + List allPaths = new List(); + foreach (var spPaths in fullSpecialPaths) + foreach (var svPaths in savePaths) + { + allPaths.Add(Path.Combine(spPaths, svPaths)); + } + + string validPath = string.Empty; + foreach (var path in allPaths) + { + if (Directory.Exists(path) && validPath.Length == 0) + { + var files = Directory.GetFiles(path, "*", SearchOption.AllDirectories); + validPath = (files.Length > 0) ? path : string.Empty; + } + } + + return validPath; + } } } } diff --git a/FireLance/Models/DirectoriesModel.cs b/FireLance/Models/DirectoriesModel.cs index 24ca046..dcfc453 100644 --- a/FireLance/Models/DirectoriesModel.cs +++ b/FireLance/Models/DirectoriesModel.cs @@ -1,4 +1,6 @@ -namespace Firelance.Models +using System.Collections.Generic; + +namespace Firelance.Models { public class DirectoriesModel { @@ -11,5 +13,6 @@ public string DefinedFiles { get; set; } public string ExcludedFiles { get; set; } public bool Recurse { get; set; } + List SaveGameEntries { get; set; } } }