Fix random logic
This commit is contained in:
@ -149,7 +149,7 @@ public partial class MapLogic : Shared.Models.Methods.IMapLogic
|
||||
return new(results);
|
||||
}
|
||||
|
||||
public Dictionary<long, List<int>> GetPersonKeyToIds()
|
||||
public ReadOnlyDictionary<long, List<int>> GetPersonKeyToIds()
|
||||
{
|
||||
Dictionary<long, List<int>> results = new();
|
||||
long personKey;
|
||||
@ -158,7 +158,9 @@ public partial class MapLogic : Shared.Models.Methods.IMapLogic
|
||||
PersonBirthday personBirthday;
|
||||
List<string> shouldMove = new();
|
||||
foreach (KeyValuePair<int, ReadOnlyDictionary<int, ReadOnlyCollection<PersonContainer>>> idToCollection in _IdThenWholePercentagesToPersonContainers)
|
||||
{
|
||||
foreach (KeyValuePair<int, ReadOnlyCollection<PersonContainer>> wholePercentagesToPersonContainers in idToCollection.Value)
|
||||
{
|
||||
foreach (PersonContainer personContainer in wholePercentagesToPersonContainers.Value)
|
||||
{
|
||||
if (personContainer.Key is null || personContainer.Birthdays is null || personContainer.Birthdays.Length == 0)
|
||||
@ -177,9 +179,11 @@ public partial class MapLogic : Shared.Models.Methods.IMapLogic
|
||||
continue;
|
||||
collection.Add(idToCollection.Key);
|
||||
}
|
||||
}
|
||||
}
|
||||
if (shouldMove.Count > 0)
|
||||
throw new Exception(string.Join(Environment.NewLine, shouldMove));
|
||||
return results;
|
||||
return new(results);
|
||||
}
|
||||
|
||||
(bool, ReadOnlyDictionary<int, ReadOnlyCollection<PersonContainer>>?) Shared.Models.Methods.IMapLogic.GetWholePercentagesToPersonContainers(int id)
|
||||
@ -759,7 +763,7 @@ public partial class MapLogic : Shared.Models.Methods.IMapLogic
|
||||
return new(personKeyFormatted, personBirthday);
|
||||
}
|
||||
|
||||
private List<string> GetPersonKeyFormattedCollection(string[] jLinks, string a2PeopleContentDirectory, ReadOnlyCollection<PersonContainer> personContainers, Dictionary<long, List<int>> personKeyToIds)
|
||||
private List<string> GetPersonKeyFormattedCollection(string[] jLinks, string a2PeopleContentDirectory, ReadOnlyCollection<PersonContainer> personContainers, ReadOnlyDictionary<long, List<int>> personKeyToIds)
|
||||
{
|
||||
if (_Configuration is null)
|
||||
throw new NullReferenceException(nameof(_Configuration));
|
||||
@ -817,7 +821,7 @@ public partial class MapLogic : Shared.Models.Methods.IMapLogic
|
||||
return results;
|
||||
}
|
||||
|
||||
private (int, FileHolder, int, string, string, string, string)[] GetCollectionForSaveFilteredOriginalImagesFromJLinks(string[] jLinks, string a2PeopleContentDirectory, ReadOnlyCollection<PersonContainer> personContainers, ReadOnlyCollection<Mapping> mappingCollection, Dictionary<long, List<int>> personKeyToIds)
|
||||
private (int, FileHolder, int, string, string, string, string)[] GetCollectionForSaveFilteredOriginalImagesFromJLinks(string[] jLinks, string a2PeopleContentDirectory, ReadOnlyCollection<PersonContainer> personContainers, ReadOnlyCollection<Mapping> mappingCollection, ReadOnlyDictionary<long, List<int>> personKeyToIds)
|
||||
{
|
||||
if (_Configuration is null)
|
||||
throw new NullReferenceException(nameof(_Configuration));
|
||||
@ -878,7 +882,7 @@ public partial class MapLogic : Shared.Models.Methods.IMapLogic
|
||||
return results;
|
||||
}
|
||||
|
||||
public void SaveFilteredOriginalImagesFromJLinks(string[] jLinks, ReadOnlyCollection<PersonContainer> personContainers, string a2PeopleContentDirectory, Dictionary<long, List<int>> personKeyToIds, ReadOnlyCollection<Mapping> mappingCollection)
|
||||
public void SaveFilteredOriginalImagesFromJLinks(string[] jLinks, ReadOnlyCollection<PersonContainer> personContainers, string a2PeopleContentDirectory, ReadOnlyDictionary<long, List<int>> personKeyToIds, ReadOnlyCollection<Mapping> mappingCollection)
|
||||
{
|
||||
if (_Configuration is null)
|
||||
throw new NullReferenceException(nameof(_Configuration));
|
||||
@ -896,7 +900,7 @@ public partial class MapLogic : Shared.Models.Methods.IMapLogic
|
||||
SaveContainers(saveIndividually, null, saveContainers);
|
||||
}
|
||||
|
||||
private List<SaveShortcutsForOutputResolutions> GetCollectionForSaveShortcutsForOutputResolutionsPreMapLogic(string eDistanceContentDirectory, Dictionary<long, List<int>> personKeyToIds, ReadOnlyCollection<Mapping> mappingCollection)
|
||||
private List<SaveShortcutsForOutputResolutions> GetCollectionForSaveShortcutsForOutputResolutionsPreMapLogic(string eDistanceContentDirectory, ReadOnlyDictionary<long, List<int>> personKeyToIds, ReadOnlyCollection<Mapping> mappingCollection)
|
||||
{
|
||||
List<SaveShortcutsForOutputResolutions> results = new();
|
||||
if (_Configuration is null)
|
||||
@ -912,7 +916,7 @@ public partial class MapLogic : Shared.Models.Methods.IMapLogic
|
||||
List<long>? personKeys;
|
||||
string personKeyFormatted;
|
||||
Calendar calendar = new CultureInfo("en-US").Calendar;
|
||||
Dictionary<int, List<long>> idToPersonKeys = Stateless.Methods.IMapLogic.GetIdToPersonKeys(personKeyToIds);
|
||||
ReadOnlyDictionary<int, List<long>> idToPersonKeys = Stateless.Methods.IMapLogic.GetIdToPersonKeys(personKeyToIds);
|
||||
foreach (Mapping mapping in mappingCollection)
|
||||
{
|
||||
dateTime = mapping.MappingFromItem.GetDateTimeOriginalThenMinimumDateTime();
|
||||
@ -952,7 +956,7 @@ public partial class MapLogic : Shared.Models.Methods.IMapLogic
|
||||
return results;
|
||||
}
|
||||
|
||||
public void SaveShortcutsForOutputResolutionsPreMapLogic(string eDistanceContentDirectory, Dictionary<long, List<int>> personKeyToIds, ReadOnlyCollection<Mapping> mappingCollection)
|
||||
public void SaveShortcutsForOutputResolutionsPreMapLogic(string eDistanceContentDirectory, ReadOnlyDictionary<long, List<int>> personKeyToIds, ReadOnlyCollection<Mapping> mappingCollection)
|
||||
{
|
||||
string hiddenFile;
|
||||
WindowsShortcut windowsShortcut;
|
||||
|
@ -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)
|
||||
|
@ -5,9 +5,9 @@ namespace View_by_Distance.Map.Models.Stateless.Methods;
|
||||
public interface IMapLogic
|
||||
{
|
||||
|
||||
Dictionary<int, List<long>> TestStatic_GetIdToPersonKeys(Dictionary<long, List<int>> personKeyToIds) =>
|
||||
ReadOnlyDictionary<int, List<long>> TestStatic_GetIdToPersonKeys(ReadOnlyDictionary<long, List<int>> personKeyToIds) =>
|
||||
GetIdToPersonKeys(personKeyToIds);
|
||||
static Dictionary<int, List<long>> GetIdToPersonKeys(Dictionary<long, List<int>> personKeyToIds) =>
|
||||
static ReadOnlyDictionary<int, List<long>> GetIdToPersonKeys(ReadOnlyDictionary<long, List<int>> personKeyToIds) =>
|
||||
MapLogic.GetIdToPersonKeys(personKeyToIds);
|
||||
|
||||
ReadOnlyCollection<Shared.Models.Face> TestStatic_GetFaces(ReadOnlyCollection<Shared.Models.Item> items) =>
|
||||
|
Reference in New Issue
Block a user