Save-Image-Info
This commit is contained in:
@ -31,8 +31,7 @@ public class CopyDistinct
|
||||
_ConfigurationRoot = configurationRoot;
|
||||
ILogger? log = Log.ForContext<CopyDistinct>();
|
||||
Property.Models.Configuration propertyConfiguration = Property.Models.Binder.Configuration.Get(isEnvironment, configurationRoot);
|
||||
string[] directories = new string[] { propertyConfiguration.ResultContent };
|
||||
_FileGroups = Shared.Models.Stateless.Methods.IPath.GetKeyValuePairs(propertyConfiguration, appSettings.CopyTo, directories);
|
||||
_FileGroups = Shared.Models.Stateless.Methods.IPath.GetKeyValuePairs(propertyConfiguration, appSettings.CopyTo, new string[] { appSettings.ResultDirectoryKey });
|
||||
Configuration configuration = Models.Binder.Configuration.Get(isEnvironment, configurationRoot, propertyConfiguration);
|
||||
_PropertyConfiguration = propertyConfiguration;
|
||||
_Configuration = configuration;
|
||||
@ -90,6 +89,7 @@ public class CopyDistinct
|
||||
string directoryName;
|
||||
bool wrapped = false;
|
||||
List<string> distinct = new();
|
||||
string key = string.IsNullOrEmpty(_AppSettings.ResultDirectoryKey) ? _PropertyConfiguration.ResultAllInOne : _AppSettings.ResultDirectoryKey;
|
||||
foreach (FileHolder fileHolder in fileHolders)
|
||||
{
|
||||
progressBar.Tick();
|
||||
@ -101,17 +101,19 @@ public class CopyDistinct
|
||||
{
|
||||
if (wrapped)
|
||||
continue;
|
||||
directory = _FileGroups[_PropertyConfiguration.ResultContent][directoryIndex];
|
||||
directory = _FileGroups[key][directoryIndex];
|
||||
}
|
||||
else
|
||||
{
|
||||
if (!wrapped)
|
||||
wrapped = true;
|
||||
directory = Path.Combine(_FileGroups[_PropertyConfiguration.ResultContent][directoryIndex], directoryName);
|
||||
directory = Path.Combine(_FileGroups[key][directoryIndex], directoryName);
|
||||
}
|
||||
checkFile = Path.Combine(directory, $"{fileHolder.NameWithoutExtension}{fileHolder.ExtensionLowered}");
|
||||
if (distinct.Contains(checkFile))
|
||||
{
|
||||
if (!_AppSettings.CopyDuplicates)
|
||||
continue;
|
||||
for (int i = 1; i < int.MaxValue; i++)
|
||||
{
|
||||
fileInfo = new(checkFile);
|
||||
|
@ -7,19 +7,25 @@ public class AppSettings
|
||||
{
|
||||
|
||||
public string Company { init; get; }
|
||||
public bool CopyDuplicates { init; get; }
|
||||
public string CopyTo { init; get; }
|
||||
public int MaxDegreeOfParallelism { init; get; }
|
||||
public string ResultDirectoryKey { init; get; }
|
||||
public string WorkingDirectoryName { init; get; }
|
||||
|
||||
[JsonConstructor]
|
||||
public AppSettings(string company,
|
||||
bool copyDuplicates,
|
||||
string copyTo,
|
||||
int maxDegreeOfParallelism,
|
||||
string resultDirectoryKey,
|
||||
string workingDirectoryName)
|
||||
{
|
||||
Company = company;
|
||||
CopyTo = copyTo;
|
||||
CopyDuplicates = copyDuplicates;
|
||||
MaxDegreeOfParallelism = maxDegreeOfParallelism;
|
||||
ResultDirectoryKey = resultDirectoryKey;
|
||||
WorkingDirectoryName = workingDirectoryName;
|
||||
}
|
||||
|
||||
|
@ -6,14 +6,12 @@ namespace View_by_Distance.Copy.Distinct.Models.Binder;
|
||||
public class AppSettings
|
||||
{
|
||||
|
||||
#nullable disable
|
||||
|
||||
public string Company { get; set; }
|
||||
public string? Company { get; set; }
|
||||
public int? MaxDegreeOfParallelism { get; set; }
|
||||
public string CopyTo { get; set; }
|
||||
public string WorkingDirectoryName { get; set; }
|
||||
|
||||
#nullable restore
|
||||
public bool? CopyDuplicates { get; set; }
|
||||
public string? CopyTo { get; set; }
|
||||
public string? ResultDirectoryKey { init; get; }
|
||||
public string? WorkingDirectoryName { get; set; }
|
||||
|
||||
public override string ToString()
|
||||
{
|
||||
@ -24,12 +22,24 @@ public class AppSettings
|
||||
private static Models.AppSettings Get(AppSettings? appSettings)
|
||||
{
|
||||
Models.AppSettings result;
|
||||
if (appSettings?.Company is null)
|
||||
throw new NullReferenceException(nameof(appSettings.Company));
|
||||
if (appSettings?.CopyDuplicates is null)
|
||||
throw new NullReferenceException(nameof(appSettings.CopyDuplicates));
|
||||
if (appSettings?.CopyTo is null)
|
||||
throw new NullReferenceException(nameof(appSettings.CopyTo));
|
||||
if (appSettings?.MaxDegreeOfParallelism is null)
|
||||
throw new NullReferenceException(nameof(appSettings.MaxDegreeOfParallelism));
|
||||
if (appSettings?.ResultDirectoryKey is null)
|
||||
throw new NullReferenceException(nameof(appSettings.ResultDirectoryKey));
|
||||
if (appSettings?.WorkingDirectoryName is null)
|
||||
throw new NullReferenceException(nameof(appSettings.WorkingDirectoryName));
|
||||
result = new(
|
||||
appSettings.Company,
|
||||
appSettings.CopyDuplicates.Value,
|
||||
appSettings.CopyTo,
|
||||
appSettings.MaxDegreeOfParallelism.Value,
|
||||
appSettings.ResultDirectoryKey,
|
||||
appSettings.WorkingDirectoryName
|
||||
);
|
||||
return result;
|
||||
|
@ -1,6 +1,7 @@
|
||||
{
|
||||
"ComparePathsFile": "",
|
||||
"Company": "Mike Phares",
|
||||
"CopyDuplicates": true,
|
||||
"CopyTo": "",
|
||||
"Linux": {},
|
||||
"Logging": {
|
||||
|
Reference in New Issue
Block a user