Fix random logic

This commit is contained in:
2023-08-12 08:30:08 -07:00
parent b3da09c757
commit 2f5d309ed1
10 changed files with 68 additions and 45 deletions

View File

@ -37,6 +37,7 @@ internal abstract class MapLogic
{
int? id;
string fileName;
string checkFile;
int? wholePercentages;
List<string> distinctFiles = new();
List<string> distinctFileName = new();
@ -58,8 +59,10 @@ internal abstract class MapLogic
fileName = Path.GetFileName(distinctFile);
if (distinctFileName.Contains(fileName))
{
if (!distinctFile.EndsWith(".dup") && !File.Exists($"{distinctFile}.dup"))
File.Move(distinctFile, $"{distinctFile}.dup");
checkFile = $"{distinctFile}.dup";
if (File.Exists(checkFile))
continue;
File.Move(distinctFile, checkFile);
continue;
}
(id, wholePercentages) = IMapping.GetConverted(configuration.FacesFileNameExtension, distinctFile);
@ -256,6 +259,7 @@ internal abstract class MapLogic
string[] files;
string fileName;
int totalSeconds;
string checkFile;
DateTime dateTime;
TimeSpan timeSpan;
int directoryNumber;
@ -406,8 +410,10 @@ internal abstract class MapLogic
fileName = Path.GetFileName(mappedFaceFile);
if (distinct.Contains(fileName))
{
if (!mappedFaceFile.EndsWith(".dup") && !File.Exists($"{mappedFaceFile}.dup"))
File.Move(mappedFaceFile, $"{mappedFaceFile}.dup");
checkFile = $"{mappedFaceFile}.dup";
if (File.Exists(checkFile))
continue;
File.Move(mappedFaceFile, checkFile);
continue;
}
distinct.Add(fileName);
@ -818,9 +824,11 @@ internal abstract class MapLogic
Directory.SetLastWriteTime(ticksDirectory, new DateTime(directoryTicks));
totalDays = lastDirectoryTicks is null || new TimeSpan(dateTime.Ticks - directoryTicks).TotalDays < 1 ? null : (float)new TimeSpan(directoryTicks - lastDirectoryTicks.Value).TotalDays;
results.Add(new(ticksDirectory, ticksDirectoryName, new(directoryTicks), new DateTime(directoryDateTime.Year, directoryDateTime.Month, directoryDateTime.Day + 1), totalDays));
if (directoryDateTime.Hour == 0 && directoryDateTime.Minute == 0 && directoryDateTime.Second == 0)
continue;
lastDirectoryTicks = directoryTicks;
}
string[] compare = (from l in results where l.DirectoryDateTime.Second != 0 && l.TotalDays is not null and < 3.95f select l.Directory).ToArray();
string[] compare = (from l in results where l.TotalDays is not null and < 9.95f select l.Directory).ToArray();
if (compare.Length > 0)
throw new Exception($"Please Consolidate <{string.Join(Environment.NewLine, compare)}>");
return results;
@ -890,6 +898,7 @@ internal abstract class MapLogic
private static void ParallelFor(Configuration configuration, string eDistanceContentDirectory, Dictionary<int, List<(string, int)>> skipCollection, List<LocationContainer<MetadataExtractor.Directory>> locationContainers, long personKey, int? directoryNumber, string file)
{
string checkFile;
string[] fileMatches;
const string lnk = ".lnk";
int? id, wholePercentages;
@ -909,8 +918,11 @@ internal abstract class MapLogic
{
if (string.IsNullOrEmpty(fileMatch) || !File.Exists(fileMatch))
continue;
if (!fileMatch.EndsWith(".dup") && !File.Exists($"{fileMatch}.dup"))
File.Move(fileMatch, $"{fileMatch}.dup");
checkFile = $"{fileMatch}.dup";
if (File.Exists(checkFile))
continue;
File.Move(fileMatch, checkFile);
continue;
}
}
if (file.EndsWith(lnk) || (!configuration.DistanceMoveUnableToMatch && !configuration.DistanceRenameToMatch) || !File.Exists(file))
@ -1255,7 +1267,7 @@ internal abstract class MapLogic
}
}
internal static Dictionary<int, List<long>> GetIdToPersonKeys(Dictionary<long, List<int>> personKeyToIds)
internal static ReadOnlyDictionary<int, List<long>> GetIdToPersonKeys(ReadOnlyDictionary<long, List<int>> personKeyToIds)
{
Dictionary<int, List<long>> results = new();
List<long>? collection;
@ -1274,7 +1286,7 @@ internal abstract class MapLogic
collection.Add(keyValuePair.Key);
}
}
return results;
return new(results);
}
internal static Mapping[] GetSelectedMappingCollection(ReadOnlyCollection<Face> faces)