Skip to content

Commit 3d0e792

Browse files
committed
massive refactor of direct usages of PreferencesXML into AppEntrySaveHandler
1 parent d845d99 commit 3d0e792

File tree

9 files changed

+256
-252
lines changed

9 files changed

+256
-252
lines changed

GPUPrefSwitcher.sln

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -151,7 +151,6 @@ Global
151151
{76BFD458-C88C-4484-9578-DC1B75BB945C}.Debug|Any CPU.ActiveCfg = Debug
152152
{76BFD458-C88C-4484-9578-DC1B75BB945C}.Debug|ARM64.ActiveCfg = Debug
153153
{76BFD458-C88C-4484-9578-DC1B75BB945C}.Debug|x64.ActiveCfg = Debug
154-
{76BFD458-C88C-4484-9578-DC1B75BB945C}.Debug|x64.Build.0 = Debug
155154
{76BFD458-C88C-4484-9578-DC1B75BB945C}.Debug|x86.ActiveCfg = Debug
156155
{76BFD458-C88C-4484-9578-DC1B75BB945C}.Release|Any CPU.ActiveCfg = Release
157156
{76BFD458-C88C-4484-9578-DC1B75BB945C}.Release|ARM64.ActiveCfg = Release

GPUPrefSwitcher/AppEntrySaveHandler.cs

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,7 @@ private static List<AppEntry> DeepCopyAppEntries(List<AppEntry> appEntries)
3737
}
3838

3939

40-
public readonly PreferencesXML PreferencesXML;
40+
internal readonly PreferencesXML PreferencesXML;
4141

4242
public AppEntrySaveHandler()
4343
{
@@ -46,9 +46,8 @@ public AppEntrySaveHandler()
4646
currentAppEntries = PreferencesXML.GetAppEntries();
4747
}
4848

49-
public void UpdateAppEntryByPath(string path, AppEntry updatedAppEntry)
49+
public void ChangeAppEntryByPath(string path, AppEntry updatedAppEntry)
5050
{
51-
5251
int index = CurrentAppEntries.IndexOf(CurrentAppEntries.Single(x => x.AppPath == path));
5352

5453
/* //for-loop alternative, but the above should throw an error with an obvious enough meaning
@@ -67,7 +66,6 @@ public void UpdateAppEntryByPath(string path, AppEntry updatedAppEntry)
6766
*/
6867

6968
CurrentAppEntries[index] = updatedAppEntry;
70-
7169
}
7270

7371
/*
@@ -89,7 +87,7 @@ public void SaveAppEntryChanges()
8987
List<AppEntry> differences = new();
9088
differences.AddRange(currentAppEntries.Where( entry => NotSameOrInPrevAppEntries(entry) ));
9189

92-
List<string> existingAppPaths = PreferencesXML.GetAppPaths().ToList();
90+
List<string> existingAppPaths = new List<string>(from appEntry in PreferencesXML.GetAppEntries() select appEntry.AppPath);
9391
List<AppEntry> needToAdd = new();
9492
needToAdd.AddRange(currentAppEntries.Where( entry => !existingAppPaths.Contains(entry.AppPath) ));
9593

GPUPrefSwitcher/FileSwapper.cs

Lines changed: 20 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -59,16 +59,16 @@ public string SettingsBankFolderPath
5959
get => SwapPathFolder + "\\" + SettingsBankFolderName;
6060
}
6161

62-
public PreferencesXML ForPreferencesXML { get; init; }
62+
public AppEntrySaveHandler AppEntrySaveHandler { get; init; }
6363

64-
public FileSwapper(AppEntry appEntry, PreferencesXML preferencesXML)
64+
public FileSwapper(AppEntry appEntry, AppEntrySaveHandler appEntrySaveHandler)
6565
{
6666
AppEntry = appEntry;
67-
ForPreferencesXML = preferencesXML;
67+
appEntrySaveHandler = AppEntrySaveHandler;
6868
}
6969

7070

71-
public async Task InitiateFileSwaps(PowerLineStatus forPowerLineStatus, PreferencesXML preferencesXML)
71+
public async Task InitiateFileSwaps(PowerLineStatus forPowerLineStatus, AppEntrySaveHandler appEntrySaveHandler)
7272
{
7373
Logger.inst.Log($"Initiating File Swaps for AppEntry with target path {AppEntry.AppPath}");
7474

@@ -153,7 +153,7 @@ private async Task InitiateSingleFileSwap(FileSwapPathTask fileSwapPathTask, int
153153

154154
string swapPath = fileSwapPathTask.FileSwapPath;
155155
PowerLineStatus forPowerLineStatus = fileSwapPathTask.ForPowerLineStatus;
156-
PreferencesXML preferencesXML = ForPreferencesXML;
156+
AppEntrySaveHandler forAppEntrySaveHandler = AppEntrySaveHandler;
157157

158158
//use caution when modifying the sequence of logic here and note where this block is placed
159159
WaitForOlderFileSwaps:
@@ -258,7 +258,10 @@ private async Task InitiateSingleFileSwap(FileSwapPathTask fileSwapPathTask, int
258258
AppEntry modified = AppEntry; //struct copy
259259
modified.SwapperStates[swapPathIndex] = PowerLineStatus.Offline;
260260

261-
preferencesXML.ModifyAppEntryAndSave(AppEntry.AppPath, modified);
261+
//await new Task(new Action( () => preferencesXML.ModifyAppEntryAndSave(AppEntry.AppPath, modified)));
262+
AppEntrySaveHandler.ChangeAppEntryByPath(AppEntry.AppPath, modified);
263+
AppEntrySaveHandler.SaveAppEntryChanges();
264+
262265
string s3 = $"Saved SwapPath state for SwapPath {swapPath} for app {AppEntry.AppPath}";
263266
Logger.inst.Log(s3);
264267
} else
@@ -303,7 +306,8 @@ private async Task InitiateSingleFileSwap(FileSwapPathTask fileSwapPathTask, int
303306
AppEntry modified = AppEntry; //struct copy
304307
modified.SwapperStates[swapPathIndex] = PowerLineStatus.Online;
305308

306-
preferencesXML.ModifyAppEntryAndSave(AppEntry.AppPath, modified);
309+
AppEntrySaveHandler.ChangeAppEntryByPath(AppEntry.AppPath, modified);
310+
AppEntrySaveHandler.SaveAppEntryChanges();
307311
string s3 = $"Saved SwapPath state for SwapPath {swapPath} for app {AppEntry.AppPath}";
308312
Logger.inst.Log(s3);
309313
} else
@@ -472,15 +476,15 @@ public static Task CopyToAsync(string source, string destination)
472476
}
473477
*/
474478

475-
public static string[] GetOrphanedSwapPathFoldersFor(AppEntry appEntry, PreferencesXML forPreferencesXML)
479+
public static string[] GetOrphanedSwapPathFoldersFor(AppEntry appEntry, AppEntrySaveHandler forAppEntrySaveHandler)
476480
{
477481

478482
/*
479483
* go to this AppEntry FileSwapper SettingsBank folder and find all the folders
480484
* that don't correspond to a SwapPath
481485
*/
482486

483-
var fileSwap = new FileSwapper(appEntry, forPreferencesXML);
487+
var fileSwap = new FileSwapper(appEntry, forAppEntrySaveHandler);
484488

485489
string entryBankFolderName = fileSwap.SettingsBankFolderName;
486490
string pathToAppEntryBank = Path.Combine(SwapPathFolder, entryBankFolderName);
@@ -509,7 +513,7 @@ public static string[] GetOrphanedSwapPathFoldersFor(AppEntry appEntry, Preferen
509513
return orphanedBankedFolderPaths.ToArray();
510514
}
511515

512-
public static string[] GetOrphanedAppEntryFolders(IEnumerable<AppEntry> appEntries, PreferencesXML forPreferencesXML)
516+
public static string[] GetOrphanedAppEntryFolders(IEnumerable<AppEntry> appEntries, AppEntrySaveHandler forAppEntrySaveHandler)
513517
{
514518

515519
string[] bankedFolderPaths = Directory.GetDirectories(SwapPathFolder);
@@ -518,7 +522,7 @@ public static string[] GetOrphanedAppEntryFolders(IEnumerable<AppEntry> appEntri
518522
List<string> nonOrphanedFolderPaths = new();
519523
foreach (AppEntry appEntry in appEntries)
520524
{
521-
var fileSwap = new FileSwapper(appEntry, forPreferencesXML);
525+
var fileSwap = new FileSwapper(appEntry, forAppEntrySaveHandler);
522526

523527
string correspondingFolderName = fileSwap.SettingsBankFolderName;
524528
string correspondingFolderPath = Path.Combine(SwapPathFolder, correspondingFolderName);
@@ -535,17 +539,17 @@ from folderName in bankedFolderPaths
535539
return orphanedFolderPaths.ToArray();
536540
}
537541

538-
public static long GetOrphanedSize(IEnumerable<AppEntry> appEntries, PreferencesXML forPreferencesXML)
542+
public static long GetOrphanedSize(IEnumerable<AppEntry> appEntries, AppEntrySaveHandler forAppEntrySaveHandler)
539543
{
540-
string[] orphanedAppEntryFolders = GetOrphanedAppEntryFolders(appEntries, forPreferencesXML);
544+
string[] orphanedAppEntryFolders = GetOrphanedAppEntryFolders(appEntries, forAppEntrySaveHandler);
541545

542546
List<string> orphanedSwapPathFolders = new();
543547

544548
foreach(AppEntry appEntry in appEntries)
545549
{
546-
FileSwapper fileSwapper = new FileSwapper(appEntry, forPreferencesXML);
550+
FileSwapper fileSwapper = new FileSwapper(appEntry, forAppEntrySaveHandler);
547551
if(Directory.Exists(fileSwapper.SettingsBankFolderName))
548-
orphanedSwapPathFolders.AddRange(GetOrphanedSwapPathFoldersFor(appEntry, forPreferencesXML));
552+
orphanedSwapPathFolders.AddRange(GetOrphanedSwapPathFoldersFor(appEntry, forAppEntrySaveHandler));
549553
}
550554

551555
long totalSizeOfOrphaned = 0;
@@ -627,11 +631,8 @@ public static long DirSize(DirectoryInfo d)
627631
return size;
628632
}
629633

630-
public static long DirSize_Orphaned(DirectoryInfo d, IEnumerable<AppEntry> appEntries, PreferencesXML preferencesXML)
634+
public static long DirSize_Orphaned(DirectoryInfo d, IEnumerable<AppEntry> appEntries, AppEntrySaveHandler forAppEntrySaveHandler)
631635
{
632-
633-
634-
635636

636637
long size = 0;
637638
// Add file sizes.

0 commit comments

Comments
 (0)