From 60a2cd7e8a06a99484cc9477d6a62a8570ddba07 Mon Sep 17 00:00:00 2001 From: Luke Fisher Date: Mon, 15 Apr 2024 21:38:19 +0100 Subject: [PATCH] Use folders provided in options over config (#610) * Use folders provided in options over config * Use simpler collection initialisation for folder * Fix NRE when checking for Any folders * Add GetFolder to Addition Export and Import Methods. --------- Co-authored-by: Kevin Jump --- uSync.BackOffice/Models/SyncActionOptions.cs | 3 +-- .../Services/SyncActionService.cs | 22 +++++++++++++------ 2 files changed, 16 insertions(+), 9 deletions(-) diff --git a/uSync.BackOffice/Models/SyncActionOptions.cs b/uSync.BackOffice/Models/SyncActionOptions.cs index ac7011bf..b1a39bde 100644 --- a/uSync.BackOffice/Models/SyncActionOptions.cs +++ b/uSync.BackOffice/Models/SyncActionOptions.cs @@ -46,7 +46,6 @@ public class SyncActionOptions /// /// array of usync folders you want to import - files will be merged as part of the process. /// - public string[] Folders { get; set; } - + public string[] Folders { get; set; } = []; } } diff --git a/uSync.BackOffice/Services/SyncActionService.cs b/uSync.BackOffice/Services/SyncActionService.cs index 0648f9f2..a0f91632 100644 --- a/uSync.BackOffice/Services/SyncActionService.cs +++ b/uSync.BackOffice/Services/SyncActionService.cs @@ -3,7 +3,6 @@ using System.Linq; using Microsoft.Extensions.Logging; - using uSync.BackOffice.Configuration; using uSync.BackOffice.Models; using uSync.BackOffice.SyncHandlers; @@ -70,7 +69,7 @@ public SyncActionResult ReportHandler(SyncActionOptions options, uSyncCallbacks var handlerSet = !string.IsNullOrWhiteSpace(options.Set) ? options.Set : _uSyncConfig.Settings.DefaultSet; - var folders = _uSyncConfig.GetFolders(); + var folders = GetFolders(options); var actions = _uSyncService.ReportHandler(options.Handler, new uSyncImportOptions @@ -86,13 +85,23 @@ public SyncActionResult ReportHandler(SyncActionOptions options, uSyncCallbacks return new SyncActionResult(actions); } + private string[] GetFolders(SyncActionOptions options) + { + if (options.Folders.Length != 0) + return options.Folders; + + if (!string.IsNullOrEmpty(options.Folder)) + return [options.Folder]; + return _uSyncConfig.GetFolders(); + } + public SyncActionResult ImportHandler(SyncActionOptions options, uSyncCallbacks callbacks) { var handlerSet = !string.IsNullOrWhiteSpace(options.Set) ? options.Set : _uSyncConfig.Settings.DefaultSet; - var folders = _uSyncConfig.GetFolders(); + var folders = GetFolders(options); var actions = _uSyncService.ImportHandler(options.Handler, new uSyncImportOptions { @@ -115,7 +124,7 @@ public SyncActionResult ImportPost(SyncActionOptions options, uSyncCallbacks cal var handlerSet = !string.IsNullOrWhiteSpace(options.Set) ? options.Set : _uSyncConfig.Settings.DefaultSet; - var folders = _uSyncConfig.GetFolders(); + var folders = GetFolders(options); var actions = _uSyncService.PerformPostImport( folders, @@ -132,7 +141,7 @@ public SyncActionResult ExportHandler(SyncActionOptions options, uSyncCallbacks var handlerSet = !string.IsNullOrWhiteSpace(options.Set) ? options.Set : _uSyncConfig.Settings.DefaultSet; - var folders = _uSyncConfig.GetFolders(); + var folders = GetFolders(options); var actions = _uSyncService.ExportHandler(options.Handler, new uSyncImportOptions { @@ -175,8 +184,7 @@ private string MakeValidImportFolder(string folder) _logger.LogDebug("Using Custom Folder: {fullPath}", folder); return folder; } - - + return string.Empty; }