|
|
|
@ -22,7 +22,7 @@ public class Compare
|
|
|
|
|
private readonly List<(string Find, string Replace)> _RenameBFindReplace;
|
|
|
|
|
private readonly List<(string Find, string Replace)> _RenameCFindReplace;
|
|
|
|
|
private readonly List<(string Find, string Replace)> _SpellingFindReplace;
|
|
|
|
|
private readonly Dictionary<string, List<Tuple<string, A_Property>>> _FilePropertiesKeyValuePairs;
|
|
|
|
|
private readonly Dictionary<string, List<Tuple<string, Shared.Models.Property>>> _FilePropertiesKeyValuePairs;
|
|
|
|
|
|
|
|
|
|
public Compare(List<string> args, IsEnvironment isEnvironment, IConfigurationRoot configurationRoot, AppSettings appSettings, string workingDirectory, bool isSilent, IConsole console)
|
|
|
|
|
{
|
|
|
|
@ -41,21 +41,21 @@ public class Compare
|
|
|
|
|
_IsEnvironment = isEnvironment;
|
|
|
|
|
_Log = Serilog.Log.ForContext<Compare>();
|
|
|
|
|
_FileKeyValuePairs = new List<KeyValuePair<string, string>>();
|
|
|
|
|
_FilePropertiesKeyValuePairs = new Dictionary<string, List<Tuple<string, A_Property>>>();
|
|
|
|
|
_FilePropertiesKeyValuePairs = new Dictionary<string, List<Tuple<string, Shared.Models.Property>>>();
|
|
|
|
|
string searchPattern = "*";
|
|
|
|
|
long ticks = DateTime.Now.Ticks;
|
|
|
|
|
List<string> topDirectories = new();
|
|
|
|
|
List<(int g, string sourceDirectory, string[] sourceDirectoryFiles, int r)> groupCollection;
|
|
|
|
|
Property.Models.Configuration propertyConfiguration = Property.Models.Stateless.Configuration.Get(isEnvironment, configurationRoot, workingDirectory);
|
|
|
|
|
Property.Models.Configuration propertyConfiguration = Property.Models.Binder.Configuration.Get(isEnvironment, configurationRoot);
|
|
|
|
|
Property.Models.Configuration.Verify(propertyConfiguration);
|
|
|
|
|
Models.Configuration configuration = Models.Stateless.Configuration.Get(isEnvironment, configurationRoot, workingDirectory, propertyConfiguration);
|
|
|
|
|
Verify(configuration);
|
|
|
|
|
bool reverse = false;
|
|
|
|
|
Model? model = null;
|
|
|
|
|
bool reverse = false;
|
|
|
|
|
string outputExtension = ".jpg";
|
|
|
|
|
PredictorModel? predictorModel = null;
|
|
|
|
|
PropertyLogic propertyLogic = GetPropertyLogic(reverse, model, predictorModel);
|
|
|
|
|
if (propertyConfiguration.PopulatePropertyId is null)
|
|
|
|
|
throw new NullReferenceException(nameof(propertyConfiguration.PopulatePropertyId));
|
|
|
|
|
Map.Models.MapLogic mapLogic = new(_AppSettings.MaxDegreeOfParallelism, propertyConfiguration);
|
|
|
|
|
A_Property propertyLogic = GetPropertyLogic(reverse, model, outputExtension, predictorModel, mapLogic);
|
|
|
|
|
foreach (string spelling in configuration.Spelling)
|
|
|
|
|
{
|
|
|
|
|
segments = spelling.Split('|');
|
|
|
|
@ -114,7 +114,7 @@ public class Compare
|
|
|
|
|
if (PossiblyRename(topDirectories, groupCollection))
|
|
|
|
|
{
|
|
|
|
|
topDirectories.Clear();
|
|
|
|
|
_ = Property.Models.Stateless.IPath.DeleteEmptyDirectories(propertyConfiguration.RootDirectory);
|
|
|
|
|
_ = Shared.Models.Stateless.Methods.IPath.DeleteEmptyDirectories(propertyConfiguration.RootDirectory);
|
|
|
|
|
groupCollection = Property.Models.Stateless.Container.GetGroupCollection(propertyConfiguration.RootDirectory, searchPattern, topDirectories);
|
|
|
|
|
if (appSettings.MaxDegreeOfParallelism < 2)
|
|
|
|
|
ticks = LogDelta(ticks, nameof(Property.Models.Stateless.Container.GetGroupCollection));
|
|
|
|
@ -123,7 +123,7 @@ public class Compare
|
|
|
|
|
if (PossiblyRenameB(topDirectories, groupCollection))
|
|
|
|
|
{
|
|
|
|
|
topDirectories.Clear();
|
|
|
|
|
_ = Property.Models.Stateless.IPath.DeleteEmptyDirectories(propertyConfiguration.RootDirectory);
|
|
|
|
|
_ = Shared.Models.Stateless.Methods.IPath.DeleteEmptyDirectories(propertyConfiguration.RootDirectory);
|
|
|
|
|
groupCollection = Property.Models.Stateless.Container.GetGroupCollection(propertyConfiguration.RootDirectory, searchPattern, topDirectories);
|
|
|
|
|
if (appSettings.MaxDegreeOfParallelism < 2)
|
|
|
|
|
ticks = LogDelta(ticks, nameof(Property.Models.Stateless.Container.GetGroupCollection));
|
|
|
|
@ -132,7 +132,7 @@ public class Compare
|
|
|
|
|
if (PossiblyRenameC(topDirectories, groupCollection))
|
|
|
|
|
{
|
|
|
|
|
topDirectories.Clear();
|
|
|
|
|
_ = Property.Models.Stateless.IPath.DeleteEmptyDirectories(propertyConfiguration.RootDirectory);
|
|
|
|
|
_ = Shared.Models.Stateless.Methods.IPath.DeleteEmptyDirectories(propertyConfiguration.RootDirectory);
|
|
|
|
|
groupCollection = Property.Models.Stateless.Container.GetGroupCollection(propertyConfiguration.RootDirectory, searchPattern, topDirectories);
|
|
|
|
|
if (appSettings.MaxDegreeOfParallelism < 2)
|
|
|
|
|
ticks = LogDelta(ticks, nameof(Property.Models.Stateless.Container.GetGroupCollection));
|
|
|
|
@ -141,7 +141,7 @@ public class Compare
|
|
|
|
|
if (PossiblyCorrect(topDirectories, groupCollection))
|
|
|
|
|
{
|
|
|
|
|
topDirectories.Clear();
|
|
|
|
|
_ = Property.Models.Stateless.IPath.DeleteEmptyDirectories(propertyConfiguration.RootDirectory);
|
|
|
|
|
_ = Shared.Models.Stateless.Methods.IPath.DeleteEmptyDirectories(propertyConfiguration.RootDirectory);
|
|
|
|
|
groupCollection = Property.Models.Stateless.Container.GetGroupCollection(propertyConfiguration.RootDirectory, searchPattern, topDirectories);
|
|
|
|
|
if (appSettings.MaxDegreeOfParallelism < 2)
|
|
|
|
|
ticks = LogDelta(ticks, nameof(Property.Models.Stateless.Container.GetGroupCollection));
|
|
|
|
@ -154,14 +154,14 @@ public class Compare
|
|
|
|
|
if (dbFiles.Any())
|
|
|
|
|
{
|
|
|
|
|
topDirectories.Clear();
|
|
|
|
|
_ = Property.Models.Stateless.IPath.DeleteEmptyDirectories(propertyConfiguration.RootDirectory);
|
|
|
|
|
_ = Shared.Models.Stateless.Methods.IPath.DeleteEmptyDirectories(propertyConfiguration.RootDirectory);
|
|
|
|
|
groupCollection = Property.Models.Stateless.Container.GetGroupCollection(propertyConfiguration.RootDirectory, searchPattern, topDirectories);
|
|
|
|
|
if (appSettings.MaxDegreeOfParallelism < 2)
|
|
|
|
|
ticks = LogDelta(ticks, nameof(Property.Models.Stateless.Container.GetGroupCollection));
|
|
|
|
|
}
|
|
|
|
|
if (_IsEnvironment.Development && propertyConfiguration.PopulatePropertyId.Value && !propertyLogic.KeyValuePairs.Any())
|
|
|
|
|
if (_IsEnvironment.Development && propertyConfiguration.PopulatePropertyId && !mapLogic.KeyValuePairs.Any())
|
|
|
|
|
throw new Exception("Copy keyValuePairs-####.json file");
|
|
|
|
|
List<Container> containers = Property.Models.Stateless.A_Property.Get(propertyConfiguration, propertyLogic);
|
|
|
|
|
List<Shared.Models.Container> containers = A_Property.Get(propertyConfiguration, propertyLogic);
|
|
|
|
|
if (!isSilent)
|
|
|
|
|
{
|
|
|
|
|
_Log.Information("First pass completed");
|
|
|
|
@ -203,7 +203,7 @@ public class Compare
|
|
|
|
|
_Log.Information(". . .");
|
|
|
|
|
}
|
|
|
|
|
string aPropertyContentCollectionDirectory = Property.Models.Stateless.IResult.GetResultsDateGroupDirectory(propertyConfiguration, nameof(A_Property), "[()]");
|
|
|
|
|
ThirdPassToMove(propertyConfiguration, model, predictorModel, propertyLogic, containers, aPropertyContentCollectionDirectory);
|
|
|
|
|
ThirdPassToMove(propertyConfiguration, model, predictorModel, mapLogic, propertyLogic, containers, aPropertyContentCollectionDirectory);
|
|
|
|
|
if (!isSilent)
|
|
|
|
|
{
|
|
|
|
|
_Log.Information("Third pass completed");
|
|
|
|
@ -215,7 +215,7 @@ public class Compare
|
|
|
|
|
}
|
|
|
|
|
_Log.Information(". . .");
|
|
|
|
|
}
|
|
|
|
|
FourthPassCreateWindowsShortcuts(propertyConfiguration, model, predictorModel, propertyLogic, containers, saveToCollection: false, keepAll: false);
|
|
|
|
|
FourthPassCreateWindowsShortcuts(propertyConfiguration, model, predictorModel, mapLogic, propertyLogic, containers, saveToCollection: false, keepAll: false);
|
|
|
|
|
if (!isSilent)
|
|
|
|
|
{
|
|
|
|
|
_Log.Information("Fourth pass completed");
|
|
|
|
@ -262,7 +262,7 @@ public class Compare
|
|
|
|
|
directorySegments = pathSegments[^1].Split(' ');
|
|
|
|
|
if (!DateTime.TryParseExact(string.Join(' ', directorySegments.Take(3)), "yyyy-MM-dd", CultureInfo.InvariantCulture, DateTimeStyles.None, out dateTime))
|
|
|
|
|
throw new Exception("l");
|
|
|
|
|
(season, seasonName) = Property.Models.Stateless.A_Property.GetSeason(dateTime.DayOfYear);
|
|
|
|
|
(season, seasonName) = Shared.Models.Stateless.Methods.IProperty.GetSeason(dateTime.DayOfYear);
|
|
|
|
|
result = string.Concat($"={dateTime:yyyy}.{season} {seasonName} ", string.Join(' ', pathSegments[0].Split(' ').Take(2)));
|
|
|
|
|
}
|
|
|
|
|
else if (pathSegments.Length == 1)
|
|
|
|
@ -270,7 +270,7 @@ public class Compare
|
|
|
|
|
directorySegments = pathSegments[^1].Split(' ');
|
|
|
|
|
if (DateTime.TryParseExact(directorySegments[^1], "yyyy", CultureInfo.InvariantCulture, DateTimeStyles.None, out dateTime))
|
|
|
|
|
{
|
|
|
|
|
(season, seasonName) = Property.Models.Stateless.A_Property.GetSeason(dateTime.DayOfYear);
|
|
|
|
|
(season, seasonName) = Shared.Models.Stateless.Methods.IProperty.GetSeason(dateTime.DayOfYear);
|
|
|
|
|
result = string.Concat($"={dateTime:yyyy}.{season} {seasonName} ", string.Join(' ', pathSegments[0].Split(' ').Take(2)));
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
@ -284,7 +284,7 @@ public class Compare
|
|
|
|
|
directorySegments = pathSegments[0].Split(' ');
|
|
|
|
|
if (DateTime.TryParseExact(directorySegments[^1], "yyyy", CultureInfo.InvariantCulture, DateTimeStyles.None, out dateTime))
|
|
|
|
|
{
|
|
|
|
|
(season, seasonName) = Property.Models.Stateless.A_Property.GetSeason(dateTime.DayOfYear);
|
|
|
|
|
(season, seasonName) = Shared.Models.Stateless.Methods.IProperty.GetSeason(dateTime.DayOfYear);
|
|
|
|
|
result = string.Concat($"={dateTime:yyyy}.{season} {seasonName} ", string.Join(' ', pathSegments[0].Split(' ').Take(2)));
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
@ -295,7 +295,7 @@ public class Compare
|
|
|
|
|
directorySegments = pathSegments[0].Split(' ');
|
|
|
|
|
if (DateTime.TryParseExact(directorySegments[^1], "yyyy", CultureInfo.InvariantCulture, DateTimeStyles.None, out dateTime))
|
|
|
|
|
{
|
|
|
|
|
(season, seasonName) = Property.Models.Stateless.A_Property.GetSeason(dateTime.DayOfYear);
|
|
|
|
|
(season, seasonName) = Shared.Models.Stateless.Methods.IProperty.GetSeason(dateTime.DayOfYear);
|
|
|
|
|
result = string.Concat($"={dateTime:yyyy}.{season} {seasonName} ", string.Join(' ', pathSegments[0].Split(' ').Take(2)));
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
@ -305,22 +305,22 @@ public class Compare
|
|
|
|
|
{
|
|
|
|
|
if (DateTime.TryParseExact(string.Join(' ', directorySegments.Take(2)), "MMM yyyy", CultureInfo.InvariantCulture, DateTimeStyles.None, out dateTime))
|
|
|
|
|
{
|
|
|
|
|
(season, seasonName) = Property.Models.Stateless.A_Property.GetSeason(dateTime.DayOfYear);
|
|
|
|
|
(season, seasonName) = Shared.Models.Stateless.Methods.IProperty.GetSeason(dateTime.DayOfYear);
|
|
|
|
|
result = string.Concat($"={dateTime:yyyy}.{season} {seasonName} ", string.Join(' ', pathSegments[0].Split(' ').Take(2)));
|
|
|
|
|
}
|
|
|
|
|
else if (DateTime.TryParseExact(string.Join(' ', directorySegments.Take(2)), "MMM yy", CultureInfo.InvariantCulture, DateTimeStyles.None, out dateTime))
|
|
|
|
|
{
|
|
|
|
|
(season, seasonName) = Property.Models.Stateless.A_Property.GetSeason(dateTime.DayOfYear);
|
|
|
|
|
(season, seasonName) = Shared.Models.Stateless.Methods.IProperty.GetSeason(dateTime.DayOfYear);
|
|
|
|
|
result = string.Concat($"={dateTime:yyyy}.{season} {seasonName} ", string.Join(' ', pathSegments[0].Split(' ').Take(2)));
|
|
|
|
|
}
|
|
|
|
|
else if (DateTime.TryParseExact(string.Concat(directorySegments[0][..3], ' ', directorySegments[1]), "MMM yy", CultureInfo.InvariantCulture, DateTimeStyles.None, out dateTime))
|
|
|
|
|
{
|
|
|
|
|
(season, seasonName) = Property.Models.Stateless.A_Property.GetSeason(dateTime.DayOfYear);
|
|
|
|
|
(season, seasonName) = Shared.Models.Stateless.Methods.IProperty.GetSeason(dateTime.DayOfYear);
|
|
|
|
|
result = string.Concat($"={dateTime:yyyy}.{season} {seasonName} ", string.Join(' ', pathSegments[0].Split(' ').Take(2)));
|
|
|
|
|
}
|
|
|
|
|
else if (DateTime.TryParseExact(string.Join(' ', directorySegments.Take(2)), "MMMM yyyy", CultureInfo.InvariantCulture, DateTimeStyles.None, out dateTime))
|
|
|
|
|
{
|
|
|
|
|
(season, seasonName) = Property.Models.Stateless.A_Property.GetSeason(dateTime.DayOfYear);
|
|
|
|
|
(season, seasonName) = Shared.Models.Stateless.Methods.IProperty.GetSeason(dateTime.DayOfYear);
|
|
|
|
|
result = string.Concat($"={dateTime:yyyy}.{season} {seasonName} ", string.Join(' ', pathSegments[0].Split(' ').Take(2)));
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
@ -330,12 +330,12 @@ public class Compare
|
|
|
|
|
{
|
|
|
|
|
if (DateTime.TryParseExact(string.Join(' ', directorySegments.Take(3)), "MMMM dd yyyy", CultureInfo.InvariantCulture, DateTimeStyles.None, out dateTime))
|
|
|
|
|
{
|
|
|
|
|
(season, seasonName) = Property.Models.Stateless.A_Property.GetSeason(dateTime.DayOfYear);
|
|
|
|
|
(season, seasonName) = Shared.Models.Stateless.Methods.IProperty.GetSeason(dateTime.DayOfYear);
|
|
|
|
|
result = string.Concat($"={dateTime:yyyy}.{season} {seasonName} ", string.Join(' ', pathSegments[0].Split(' ').Take(2)));
|
|
|
|
|
}
|
|
|
|
|
else if (DateTime.TryParseExact(string.Join(' ', directorySegments.Take(3)), "MMMM d yyyy", CultureInfo.InvariantCulture, DateTimeStyles.None, out dateTime))
|
|
|
|
|
{
|
|
|
|
|
(season, seasonName) = Property.Models.Stateless.A_Property.GetSeason(dateTime.DayOfYear);
|
|
|
|
|
(season, seasonName) = Shared.Models.Stateless.Methods.IProperty.GetSeason(dateTime.DayOfYear);
|
|
|
|
|
result = string.Concat($"={dateTime:yyyy}.{season} {seasonName} ", string.Join(' ', pathSegments[0].Split(' ').Take(2)));
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
@ -349,12 +349,12 @@ public class Compare
|
|
|
|
|
directorySegments = pathSegments[^1].Split(' ');
|
|
|
|
|
if (DateTime.TryParseExact(string.Join(' ', directorySegments.Take(3)), "MMMM dd yyyy", CultureInfo.InvariantCulture, DateTimeStyles.None, out dateTime))
|
|
|
|
|
{
|
|
|
|
|
(season, seasonName) = Property.Models.Stateless.A_Property.GetSeason(dateTime.DayOfYear);
|
|
|
|
|
(season, seasonName) = Shared.Models.Stateless.Methods.IProperty.GetSeason(dateTime.DayOfYear);
|
|
|
|
|
result = string.Concat($"={dateTime:yyyy}.{season} {seasonName} ", string.Join(' ', pathSegments[0].Split(' ').Take(2)));
|
|
|
|
|
}
|
|
|
|
|
else if (DateTime.TryParseExact(string.Join(' ', directorySegments.Take(3)), "MMMM d yyyy", CultureInfo.InvariantCulture, DateTimeStyles.None, out dateTime))
|
|
|
|
|
{
|
|
|
|
|
(season, seasonName) = Property.Models.Stateless.A_Property.GetSeason(dateTime.DayOfYear);
|
|
|
|
|
(season, seasonName) = Shared.Models.Stateless.Methods.IProperty.GetSeason(dateTime.DayOfYear);
|
|
|
|
|
result = string.Concat($"={dateTime:yyyy}.{season} {seasonName} ", string.Join(' ', pathSegments[0].Split(' ').Take(2)));
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
@ -373,7 +373,7 @@ public class Compare
|
|
|
|
|
throw new NullReferenceException(nameof(configuration.Spelling));
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private long LogDelta(long ticks, string methodName)
|
|
|
|
|
private long LogDelta(long ticks, string? methodName)
|
|
|
|
|
{
|
|
|
|
|
long result;
|
|
|
|
|
if (_Log is null)
|
|
|
|
@ -384,12 +384,12 @@ public class Compare
|
|
|
|
|
return result;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private PropertyLogic GetPropertyLogic(bool reverse, Model? model, PredictorModel? predictorModel)
|
|
|
|
|
private A_Property GetPropertyLogic(bool reverse, Model? model, string outputExtension, PredictorModel? predictorModel, Map.Models.MapLogic mapLogic)
|
|
|
|
|
{
|
|
|
|
|
PropertyLogic result;
|
|
|
|
|
A_Property result;
|
|
|
|
|
if (_Configuration?.PropertyConfiguration is null)
|
|
|
|
|
throw new NullReferenceException(nameof(_Configuration.PropertyConfiguration));
|
|
|
|
|
result = new(_AppSettings.MaxDegreeOfParallelism, _Configuration.PropertyConfiguration, reverse, model, predictorModel);
|
|
|
|
|
result = new(_AppSettings.MaxDegreeOfParallelism, _Configuration.PropertyConfiguration, outputExtension, reverse, model, predictorModel);
|
|
|
|
|
string fromPrepareForOld = "34720-637858334555170379.tsv";
|
|
|
|
|
string fromPrepareForOldFile = Path.Combine(_Configuration.PropertyConfiguration.RootDirectory, fromPrepareForOld);
|
|
|
|
|
if (File.Exists(fromPrepareForOldFile))
|
|
|
|
@ -400,12 +400,12 @@ public class Compare
|
|
|
|
|
long ticks = DateTime.Now.Ticks;
|
|
|
|
|
lines = File.ReadAllLines(fromPrepareForOldFile);
|
|
|
|
|
string resultsDirectory = $"{_Configuration.PropertyConfiguration.RootDirectory} - Results";
|
|
|
|
|
int[]? zeros = (from l in result.IndicesFromNew where l.Value.Any() select l.Value[0]).ToArray();
|
|
|
|
|
lines = (from l in result.IndicesFromNew select string.Concat(l.Key, '\t', string.Join('\t', l.Value))).ToArray();
|
|
|
|
|
int[]? zeros = (from l in mapLogic.IndicesFromNew where l.Value.Any() select l.Value[0]).ToArray();
|
|
|
|
|
lines = (from l in mapLogic.IndicesFromNew select string.Concat(l.Key, '\t', string.Join('\t', l.Value))).ToArray();
|
|
|
|
|
if (!Directory.Exists(resultsDirectory))
|
|
|
|
|
_ = Directory.CreateDirectory(resultsDirectory);
|
|
|
|
|
File.WriteAllLines(Path.Combine(resultsDirectory, $"{ticks}.tsv"), lines);
|
|
|
|
|
string json = JsonSerializer.Serialize(result.IndicesFromNew, new JsonSerializerOptions { WriteIndented = true });
|
|
|
|
|
string json = JsonSerializer.Serialize(mapLogic.IndicesFromNew, new JsonSerializerOptions { WriteIndented = true });
|
|
|
|
|
File.WriteAllText(Path.Combine(resultsDirectory, $"{ticks}.json"), json);
|
|
|
|
|
foreach (string line in lines)
|
|
|
|
|
{
|
|
|
|
@ -453,7 +453,7 @@ public class Compare
|
|
|
|
|
{
|
|
|
|
|
if (!_Configuration.DiffPropertyDirectory.EndsWith("{}"))
|
|
|
|
|
throw new Exception("Invalid directory should end with {}!");
|
|
|
|
|
diffRootDirectory = Property.Models.Stateless.A_Property.GetDiffRootDirectory(_Configuration.DiffPropertyDirectory);
|
|
|
|
|
diffRootDirectory = Shared.Models.Stateless.Methods.IProperty.GetDiffRootDirectory(_Configuration.DiffPropertyDirectory);
|
|
|
|
|
}
|
|
|
|
|
PropertyCompare.Models.PropertyCompareLogic propertyCompareLogic = new(_AppSettings.MaxDegreeOfParallelism, _Configuration.PropertyConfiguration, _SpellingFindReplace, diffRootDirectory);
|
|
|
|
|
if (string.IsNullOrEmpty(_Configuration.DiffPropertyDirectory) || !Directory.Exists(_Configuration.DiffPropertyDirectory))
|
|
|
|
@ -742,7 +742,7 @@ public class Compare
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private void ThirdPassToMove(Property.Models.Configuration configuration, Model? model, PredictorModel? predictorModel, PropertyLogic propertyLogic, List<Container> containers, string aPropertyContentCollectionDirectory)
|
|
|
|
|
private void ThirdPassToMove(Property.Models.Configuration configuration, Model? model, PredictorModel? predictorModel, Map.Models.MapLogic mapLogic, A_Property propertyLogic, List<Shared.Models.Container> containers, string aPropertyContentCollectionDirectory)
|
|
|
|
|
{
|
|
|
|
|
if (_Log is null)
|
|
|
|
|
throw new NullReferenceException(nameof(_Log));
|
|
|
|
@ -751,7 +751,7 @@ public class Compare
|
|
|
|
|
int stay = 0;
|
|
|
|
|
string fileName;
|
|
|
|
|
string id = " - Id";
|
|
|
|
|
A_Property? property;
|
|
|
|
|
Shared.Models.Property? property;
|
|
|
|
|
string? directoryName;
|
|
|
|
|
ConsoleKey? consoleKey = null;
|
|
|
|
|
long ticks = DateTime.Now.Ticks;
|
|
|
|
@ -773,7 +773,7 @@ public class Compare
|
|
|
|
|
continue;
|
|
|
|
|
filteredSourceDirectoryFile = group.FilteredSourceDirectoryFiles[i];
|
|
|
|
|
valueCollection.Add(new(property.Id.Value, property.Indices));
|
|
|
|
|
if (!propertyLogic.IndicesFromNew.ContainsKey(property.Id.Value))
|
|
|
|
|
if (!mapLogic.IndicesFromNew.ContainsKey(property.Id.Value))
|
|
|
|
|
stay += 1;
|
|
|
|
|
else if (!fileMoveCollection.Contains(filteredSourceDirectoryFile))
|
|
|
|
|
fileMoveCollection.Add(filteredSourceDirectoryFile);
|
|
|
|
@ -816,16 +816,16 @@ public class Compare
|
|
|
|
|
File.Move(fileMove, fileName);
|
|
|
|
|
}
|
|
|
|
|
for (int i = 1; i < 4; i++)
|
|
|
|
|
_ = Property.Models.Stateless.IPath.DeleteEmptyDirectories(_Configuration.PropertyConfiguration.RootDirectory);
|
|
|
|
|
_ = Shared.Models.Stateless.Methods.IPath.DeleteEmptyDirectories(_Configuration.PropertyConfiguration.RootDirectory);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private void FourthPassCreateWindowsShortcuts(Property.Models.Configuration configuration, Model? model, PredictorModel? predictorModel, PropertyLogic propertyLogic, List<Container> containers, bool saveToCollection, bool keepAll)
|
|
|
|
|
private void FourthPassCreateWindowsShortcuts(Property.Models.Configuration configuration, Model? model, PredictorModel? predictorModel, Map.Models.MapLogic mapLogic, A_Property propertyLogic, List<Shared.Models.Container> containers, bool saveToCollection, bool keepAll)
|
|
|
|
|
{
|
|
|
|
|
if (_Log is null)
|
|
|
|
|
throw new NullReferenceException(nameof(_Log));
|
|
|
|
|
int stay = 0;
|
|
|
|
|
A_Property? property;
|
|
|
|
|
Shared.Models.Property? property;
|
|
|
|
|
ConsoleKey? consoleKey = null;
|
|
|
|
|
long ticks = DateTime.Now.Ticks;
|
|
|
|
|
string filteredSourceDirectoryFile;
|
|
|
|
@ -845,7 +845,7 @@ public class Compare
|
|
|
|
|
continue;
|
|
|
|
|
filteredSourceDirectoryFile = group.FilteredSourceDirectoryFiles[i];
|
|
|
|
|
valueCollection.Add(new(property.Id.Value, property.Indices));
|
|
|
|
|
if (!propertyLogic.IndicesFromNew.ContainsKey(property.Id.Value))
|
|
|
|
|
if (!mapLogic.IndicesFromNew.ContainsKey(property.Id.Value))
|
|
|
|
|
stay += 1;
|
|
|
|
|
else
|
|
|
|
|
fileMoveCollection.Add(filteredSourceDirectoryFile);
|
|
|
|
|