ResultAllInOneSubdirectoryLength
This commit is contained in:
@ -16,7 +16,7 @@ public class CopyDistinct
|
||||
private readonly Configuration _Configuration;
|
||||
private readonly IsEnvironment _IsEnvironment;
|
||||
private readonly IConfigurationRoot _ConfigurationRoot;
|
||||
private readonly IReadOnlyDictionary<string, string[]> _JsonGroups;
|
||||
private readonly IReadOnlyDictionary<string, string[]> _FileGroups;
|
||||
private readonly Property.Models.Configuration _PropertyConfiguration;
|
||||
|
||||
public CopyDistinct(List<string> args, IsEnvironment isEnvironment, IConfigurationRoot configurationRoot, AppSettings appSettings, string workingDirectory, bool isSilent, IConsole console)
|
||||
@ -29,10 +29,10 @@ public class CopyDistinct
|
||||
_IsEnvironment = isEnvironment;
|
||||
_WorkingDirectory = workingDirectory;
|
||||
_ConfigurationRoot = configurationRoot;
|
||||
string[] directories = new string[] { "()" };
|
||||
ILogger? log = Log.ForContext<CopyDistinct>();
|
||||
Property.Models.Configuration propertyConfiguration = Property.Models.Binder.Configuration.Get(isEnvironment, configurationRoot);
|
||||
_JsonGroups = Shared.Models.Stateless.Methods.IPath.GetKeyValuePairs(propertyConfiguration.ResultAllInOne, appSettings.CopyTo, directories, appSettings.MaxValue);
|
||||
string[] directories = new string[] { propertyConfiguration.ResultContent };
|
||||
_FileGroups = Shared.Models.Stateless.Methods.IPath.GetKeyValuePairs(propertyConfiguration, appSettings.CopyTo, directories);
|
||||
Configuration configuration = Models.Binder.Configuration.Get(isEnvironment, configurationRoot, propertyConfiguration);
|
||||
_PropertyConfiguration = propertyConfiguration;
|
||||
_Configuration = configuration;
|
||||
@ -41,7 +41,7 @@ public class CopyDistinct
|
||||
Verify();
|
||||
List<string> lines = CopyDistinctFilesInDirectories(log);
|
||||
File.WriteAllLines($"D:/Tmp/Phares/{DateTime.Now.Ticks}.tsv", lines);
|
||||
if (lines.Any())
|
||||
if (!lines.Any())
|
||||
_ = Shared.Models.Stateless.Methods.IPath.DeleteEmptyDirectories(propertyConfiguration.RootDirectory);
|
||||
}
|
||||
|
||||
@ -83,13 +83,10 @@ public class CopyDistinct
|
||||
private List<(FileHolder, string)> GetToDoCollection(ProgressBar progressBar, List<string> files)
|
||||
{
|
||||
List<(FileHolder, string)> results = new();
|
||||
string directory;
|
||||
string checkFile;
|
||||
int directoryIndex;
|
||||
FileHolder fileHolder;
|
||||
bool isIgnoreExtension;
|
||||
List<string> distinct = new();
|
||||
bool isValidImageFormatExtension;
|
||||
bool nameWithoutExtensionIsIdFormat;
|
||||
foreach (string file in files)
|
||||
{
|
||||
@ -99,17 +96,15 @@ public class CopyDistinct
|
||||
continue;
|
||||
if (files.Contains($"{fileHolder.FullName}.id"))
|
||||
continue;
|
||||
isValidImageFormatExtension = _PropertyConfiguration.ValidImageFormatExtensions.Contains(fileHolder.ExtensionLowered);
|
||||
isIgnoreExtension = isValidImageFormatExtension && _PropertyConfiguration.IgnoreExtensions.Contains(fileHolder.ExtensionLowered);
|
||||
if (isIgnoreExtension || !isValidImageFormatExtension)
|
||||
continue;
|
||||
nameWithoutExtensionIsIdFormat = Shared.Models.Stateless.Methods.IProperty.NameWithoutExtensionIsIdFormat(fileHolder);
|
||||
if (!nameWithoutExtensionIsIdFormat)
|
||||
continue;
|
||||
directory = Shared.Models.Stateless.Methods.IDirectory.GetDirectory(fileHolder.NameWithoutExtension, 2);
|
||||
if (!int.TryParse(directory, out directoryIndex))
|
||||
continue;
|
||||
checkFile = Path.Combine(_JsonGroups["()"][directoryIndex], fileHolder.Name);
|
||||
{
|
||||
nameWithoutExtensionIsIdFormat = Shared.Models.Stateless.Methods.IProperty.NameWithoutExtensionIsIdFormat(_PropertyConfiguration.ValidImageFormatExtensions, fileHolder);
|
||||
if (!nameWithoutExtensionIsIdFormat)
|
||||
continue;
|
||||
}
|
||||
(_, directoryIndex) = Shared.Models.Stateless.Methods.IPath.GetDirectoryNameAndIndex(_PropertyConfiguration.ResultAllInOneSubdirectoryLength, fileHolder.NameWithoutExtension);
|
||||
checkFile = Path.Combine(_FileGroups[_PropertyConfiguration.ResultContent][directoryIndex], fileHolder.Name);
|
||||
if (distinct.Contains(checkFile))
|
||||
continue;
|
||||
distinct.Add(checkFile);
|
||||
@ -160,8 +155,8 @@ public class CopyDistinct
|
||||
ProgressBarOptions options = new() { ProgressCharacter = '─', ProgressBarOnBottom = true, DisableBottomPercentage = true };
|
||||
ProgressBar progressBar = new(allFiles.Count, message, options);
|
||||
List<(FileHolder, string)> toDoCollection = GetToDoCollection(progressBar, allFiles);
|
||||
results.AddRange(Copy(log, toDoCollection));
|
||||
progressBar.Dispose();
|
||||
results.AddRange(Copy(log, toDoCollection));
|
||||
return results;
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user