Fix random logic
This commit is contained in:
parent
b3da09c757
commit
2f5d309ed1
@ -194,7 +194,7 @@ public partial class E_Distance : IDistance<MetadataExtractor.Directory>
|
|||||||
collection = collection.OrderBy(l => l.Length).ToList();
|
collection = collection.OrderBy(l => l.Length).ToList();
|
||||||
for (int i = 0; i < collection.Count - 1; i++)
|
for (int i = 0; i < collection.Count - 1; i++)
|
||||||
{
|
{
|
||||||
checkFile = string.Concat(collection[i].FullName, ".dup");
|
checkFile = $"{collection[i].FullName}.dup";
|
||||||
if (File.Exists(checkFile))
|
if (File.Exists(checkFile))
|
||||||
continue;
|
continue;
|
||||||
File.Move(collection[i].FullName, checkFile);
|
File.Move(collection[i].FullName, checkFile);
|
||||||
|
@ -438,7 +438,7 @@ public partial class DlibDotNet
|
|||||||
string[] changesFrom = new string[] { nameof(A_Property) };
|
string[] changesFrom = new string[] { nameof(A_Property) };
|
||||||
FileHolder resizedFileHolder = _Resize.GetResizedFileHolder(cResultsFullGroupDirectory, item, outputResolutionHasNumber);
|
FileHolder resizedFileHolder = _Resize.GetResizedFileHolder(cResultsFullGroupDirectory, item, outputResolutionHasNumber);
|
||||||
ReadOnlyCollection<LocationContainer<MetadataExtractor.Directory>> locationContainers = mapLogic.GetLocationContainers(item);
|
ReadOnlyCollection<LocationContainer<MetadataExtractor.Directory>> locationContainers = mapLogic.GetLocationContainers(item);
|
||||||
if (item.Property is null || item.Property.Id is null || item.Any())
|
if (item.Property is null || item.Property.Id is null || !item.SourceDirectoryFileHolder.Exists || item.SourceDirectoryFileHolder.CreationTime is null || item.SourceDirectoryFileHolder.LastWriteTime is null || item.Any())
|
||||||
{
|
{
|
||||||
LogItemPropertyIsNull(item);
|
LogItemPropertyIsNull(item);
|
||||||
int? propertyHashCode = item.Property?.GetHashCode();
|
int? propertyHashCode = item.Property?.GetHashCode();
|
||||||
@ -458,7 +458,12 @@ public partial class DlibDotNet
|
|||||||
else
|
else
|
||||||
{
|
{
|
||||||
property = item.Property;
|
property = item.Property;
|
||||||
if (item.SourceDirectoryFileHolder.LastWriteTime is not null)
|
if (_Configuration.PropertyConfiguration.ForcePropertyLastWriteTimeToCreationTime && item.SourceDirectoryFileHolder.LastWriteTime.Value != item.SourceDirectoryFileHolder.CreationTime.Value)
|
||||||
|
{
|
||||||
|
File.SetLastWriteTime(item.SourceDirectoryFileHolder.FullName, item.SourceDirectoryFileHolder.CreationTime.Value);
|
||||||
|
subFileTuples.Add(new Tuple<string, DateTime>(nameof(A_Property), item.SourceDirectoryFileHolder.CreationTime.Value));
|
||||||
|
}
|
||||||
|
else if (item.SourceDirectoryFileHolder.LastWriteTime is not null)
|
||||||
subFileTuples.Add(new Tuple<string, DateTime>(nameof(A_Property), item.SourceDirectoryFileHolder.LastWriteTime.Value));
|
subFileTuples.Add(new Tuple<string, DateTime>(nameof(A_Property), item.SourceDirectoryFileHolder.LastWriteTime.Value));
|
||||||
else
|
else
|
||||||
subFileTuples.Add(new Tuple<string, DateTime>(nameof(A_Property), new FileInfo(item.SourceDirectoryFileHolder.FullName).LastWriteTime));
|
subFileTuples.Add(new Tuple<string, DateTime>(nameof(A_Property), new FileInfo(item.SourceDirectoryFileHolder.FullName).LastWriteTime));
|
||||||
@ -1107,8 +1112,8 @@ public partial class DlibDotNet
|
|||||||
bool filesCollectionCountIsOne = false;
|
bool filesCollectionCountIsOne = false;
|
||||||
List<string[]>? filesCollection = null;
|
List<string[]>? filesCollection = null;
|
||||||
const string directorySearchFilter = "*";
|
const string directorySearchFilter = "*";
|
||||||
Dictionary<long, List<int>> personKeyToIds;
|
|
||||||
bool configurationOutputResolutionsHas = false;
|
bool configurationOutputResolutionsHas = false;
|
||||||
|
ReadOnlyDictionary<long, List<int>> personKeyToIds;
|
||||||
bool runToDoCollectionFirst = GetRunToDoCollectionFirst(ticks);
|
bool runToDoCollectionFirst = GetRunToDoCollectionFirst(ticks);
|
||||||
Dictionary<int, List<MappingFromPhotoPrism>> fileNameToCollection;
|
Dictionary<int, List<MappingFromPhotoPrism>> fileNameToCollection;
|
||||||
(aResultsFullGroupDirectory, bResultsFullGroupDirectory) = GetResultsFullGroupDirectories();
|
(aResultsFullGroupDirectory, bResultsFullGroupDirectory) = GetResultsFullGroupDirectories();
|
||||||
|
@ -26,7 +26,7 @@ internal class F_Random
|
|||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
private static Dictionary<string, List<string>> Get(Dictionary<long, List<int>> personKeyToIds, ReadOnlyCollection<Shared.Models.Mapping> mappingCollection, string dateFormat)
|
private static ReadOnlyDictionary<string, List<string>> GetDayToRelativePaths(ReadOnlyCollection<Shared.Models.Mapping> mappingCollection, string dateFormat, ReadOnlyDictionary<int, List<long>> idToPersonKeys)
|
||||||
{
|
{
|
||||||
Dictionary<string, List<string>> results = new();
|
Dictionary<string, List<string>> results = new();
|
||||||
string key;
|
string key;
|
||||||
@ -34,7 +34,6 @@ internal class F_Random
|
|||||||
DateTime dateTime;
|
DateTime dateTime;
|
||||||
List<long>? personKeys;
|
List<long>? personKeys;
|
||||||
List<string>? relativePaths;
|
List<string>? relativePaths;
|
||||||
Dictionary<int, List<long>> idToPersonKeys = Map.Models.Stateless.Methods.IMapLogic.GetIdToPersonKeys(personKeyToIds);
|
|
||||||
foreach (Shared.Models.Mapping mapping in mappingCollection)
|
foreach (Shared.Models.Mapping mapping in mappingCollection)
|
||||||
{
|
{
|
||||||
if (mapping.MappingFromItem.ImageFileHolder.DirectoryName is null || mapping.MappingFromPerson is null)
|
if (mapping.MappingFromItem.ImageFileHolder.DirectoryName is null || mapping.MappingFromPerson is null)
|
||||||
@ -56,10 +55,10 @@ internal class F_Random
|
|||||||
}
|
}
|
||||||
relativePaths.Add(mapping.MappingFromItem.RelativePath);
|
relativePaths.Add(mapping.MappingFromItem.RelativePath);
|
||||||
}
|
}
|
||||||
return results;
|
return new(results);
|
||||||
}
|
}
|
||||||
|
|
||||||
internal void Random(Property.Models.Configuration configuration, string[] validKeyWordsToIgnoreInRandom, string outputResolution, Dictionary<long, List<int>> personKeyToIds, ReadOnlyCollection<Shared.Models.Mapping> mappingCollection)
|
internal void Random(Property.Models.Configuration configuration, string[] validKeyWordsToIgnoreInRandom, string outputResolution, ReadOnlyDictionary<long, List<int>> personKeyToIds, ReadOnlyCollection<Shared.Models.Mapping> mappingCollection)
|
||||||
{
|
{
|
||||||
string key;
|
string key;
|
||||||
string json;
|
string json;
|
||||||
@ -70,7 +69,8 @@ internal class F_Random
|
|||||||
List<string> relativePaths = new();
|
List<string> relativePaths = new();
|
||||||
List<int> distinctCollection = new();
|
List<int> distinctCollection = new();
|
||||||
DateTime dateTime = new(2024, 1, 1); //Leap year
|
DateTime dateTime = new(2024, 1, 1); //Leap year
|
||||||
Dictionary<string, List<string>> dayToRelativePaths = Get(personKeyToIds, mappingCollection, dateFormat);
|
ReadOnlyDictionary<int, List<long>> idToPersonKeys = Map.Models.Stateless.Methods.IMapLogic.GetIdToPersonKeys(personKeyToIds);
|
||||||
|
ReadOnlyDictionary<string, List<string>> dayToRelativePaths = GetDayToRelativePaths(mappingCollection, dateFormat, idToPersonKeys);
|
||||||
string fRandomCollectionDirectory = Property.Models.Stateless.IResult.GetResultsDateGroupDirectory(configuration, nameof(F_Random), "[]");
|
string fRandomCollectionDirectory = Property.Models.Stateless.IResult.GetResultsDateGroupDirectory(configuration, nameof(F_Random), "[]");
|
||||||
string[] files = Directory.GetFiles(fRandomCollectionDirectory, "*", SearchOption.TopDirectoryOnly);
|
string[] files = Directory.GetFiles(fRandomCollectionDirectory, "*", SearchOption.TopDirectoryOnly);
|
||||||
foreach (string file in files)
|
foreach (string file in files)
|
||||||
@ -90,8 +90,9 @@ internal class F_Random
|
|||||||
{
|
{
|
||||||
for (int i = 0; i < 366; i++)
|
for (int i = 0; i < 366; i++)
|
||||||
{
|
{
|
||||||
|
random = new(i);
|
||||||
key = dateTime.AddDays(i).ToString(dateFormat);
|
key = dateTime.AddDays(i).ToString(dateFormat);
|
||||||
if (dayToRelativePaths.TryGetValue(key, out collection) && collection.Count > 10)
|
if (dayToRelativePaths.TryGetValue(key, out collection) && collection.Count > 100)
|
||||||
collection = (from l in collection orderby random.NextDouble() select l).ToList();
|
collection = (from l in collection orderby random.NextDouble() select l).ToList();
|
||||||
else
|
else
|
||||||
collection = (from l in relativePaths orderby random.NextDouble() select l).ToList();
|
collection = (from l in relativePaths orderby random.NextDouble() select l).ToList();
|
||||||
|
@ -149,7 +149,7 @@ public partial class MapLogic : Shared.Models.Methods.IMapLogic
|
|||||||
return new(results);
|
return new(results);
|
||||||
}
|
}
|
||||||
|
|
||||||
public Dictionary<long, List<int>> GetPersonKeyToIds()
|
public ReadOnlyDictionary<long, List<int>> GetPersonKeyToIds()
|
||||||
{
|
{
|
||||||
Dictionary<long, List<int>> results = new();
|
Dictionary<long, List<int>> results = new();
|
||||||
long personKey;
|
long personKey;
|
||||||
@ -158,7 +158,9 @@ public partial class MapLogic : Shared.Models.Methods.IMapLogic
|
|||||||
PersonBirthday personBirthday;
|
PersonBirthday personBirthday;
|
||||||
List<string> shouldMove = new();
|
List<string> shouldMove = new();
|
||||||
foreach (KeyValuePair<int, ReadOnlyDictionary<int, ReadOnlyCollection<PersonContainer>>> idToCollection in _IdThenWholePercentagesToPersonContainers)
|
foreach (KeyValuePair<int, ReadOnlyDictionary<int, ReadOnlyCollection<PersonContainer>>> idToCollection in _IdThenWholePercentagesToPersonContainers)
|
||||||
|
{
|
||||||
foreach (KeyValuePair<int, ReadOnlyCollection<PersonContainer>> wholePercentagesToPersonContainers in idToCollection.Value)
|
foreach (KeyValuePair<int, ReadOnlyCollection<PersonContainer>> wholePercentagesToPersonContainers in idToCollection.Value)
|
||||||
|
{
|
||||||
foreach (PersonContainer personContainer in wholePercentagesToPersonContainers.Value)
|
foreach (PersonContainer personContainer in wholePercentagesToPersonContainers.Value)
|
||||||
{
|
{
|
||||||
if (personContainer.Key is null || personContainer.Birthdays is null || personContainer.Birthdays.Length == 0)
|
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;
|
continue;
|
||||||
collection.Add(idToCollection.Key);
|
collection.Add(idToCollection.Key);
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
if (shouldMove.Count > 0)
|
if (shouldMove.Count > 0)
|
||||||
throw new Exception(string.Join(Environment.NewLine, shouldMove));
|
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)
|
(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);
|
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)
|
if (_Configuration is null)
|
||||||
throw new NullReferenceException(nameof(_Configuration));
|
throw new NullReferenceException(nameof(_Configuration));
|
||||||
@ -817,7 +821,7 @@ public partial class MapLogic : Shared.Models.Methods.IMapLogic
|
|||||||
return results;
|
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)
|
if (_Configuration is null)
|
||||||
throw new NullReferenceException(nameof(_Configuration));
|
throw new NullReferenceException(nameof(_Configuration));
|
||||||
@ -878,7 +882,7 @@ public partial class MapLogic : Shared.Models.Methods.IMapLogic
|
|||||||
return results;
|
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)
|
if (_Configuration is null)
|
||||||
throw new NullReferenceException(nameof(_Configuration));
|
throw new NullReferenceException(nameof(_Configuration));
|
||||||
@ -896,7 +900,7 @@ public partial class MapLogic : Shared.Models.Methods.IMapLogic
|
|||||||
SaveContainers(saveIndividually, null, saveContainers);
|
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();
|
List<SaveShortcutsForOutputResolutions> results = new();
|
||||||
if (_Configuration is null)
|
if (_Configuration is null)
|
||||||
@ -912,7 +916,7 @@ public partial class MapLogic : Shared.Models.Methods.IMapLogic
|
|||||||
List<long>? personKeys;
|
List<long>? personKeys;
|
||||||
string personKeyFormatted;
|
string personKeyFormatted;
|
||||||
Calendar calendar = new CultureInfo("en-US").Calendar;
|
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)
|
foreach (Mapping mapping in mappingCollection)
|
||||||
{
|
{
|
||||||
dateTime = mapping.MappingFromItem.GetDateTimeOriginalThenMinimumDateTime();
|
dateTime = mapping.MappingFromItem.GetDateTimeOriginalThenMinimumDateTime();
|
||||||
@ -952,7 +956,7 @@ public partial class MapLogic : Shared.Models.Methods.IMapLogic
|
|||||||
return results;
|
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;
|
string hiddenFile;
|
||||||
WindowsShortcut windowsShortcut;
|
WindowsShortcut windowsShortcut;
|
||||||
|
@ -37,6 +37,7 @@ internal abstract class MapLogic
|
|||||||
{
|
{
|
||||||
int? id;
|
int? id;
|
||||||
string fileName;
|
string fileName;
|
||||||
|
string checkFile;
|
||||||
int? wholePercentages;
|
int? wholePercentages;
|
||||||
List<string> distinctFiles = new();
|
List<string> distinctFiles = new();
|
||||||
List<string> distinctFileName = new();
|
List<string> distinctFileName = new();
|
||||||
@ -58,8 +59,10 @@ internal abstract class MapLogic
|
|||||||
fileName = Path.GetFileName(distinctFile);
|
fileName = Path.GetFileName(distinctFile);
|
||||||
if (distinctFileName.Contains(fileName))
|
if (distinctFileName.Contains(fileName))
|
||||||
{
|
{
|
||||||
if (!distinctFile.EndsWith(".dup") && !File.Exists($"{distinctFile}.dup"))
|
checkFile = $"{distinctFile}.dup";
|
||||||
File.Move(distinctFile, $"{distinctFile}.dup");
|
if (File.Exists(checkFile))
|
||||||
|
continue;
|
||||||
|
File.Move(distinctFile, checkFile);
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
(id, wholePercentages) = IMapping.GetConverted(configuration.FacesFileNameExtension, distinctFile);
|
(id, wholePercentages) = IMapping.GetConverted(configuration.FacesFileNameExtension, distinctFile);
|
||||||
@ -256,6 +259,7 @@ internal abstract class MapLogic
|
|||||||
string[] files;
|
string[] files;
|
||||||
string fileName;
|
string fileName;
|
||||||
int totalSeconds;
|
int totalSeconds;
|
||||||
|
string checkFile;
|
||||||
DateTime dateTime;
|
DateTime dateTime;
|
||||||
TimeSpan timeSpan;
|
TimeSpan timeSpan;
|
||||||
int directoryNumber;
|
int directoryNumber;
|
||||||
@ -406,8 +410,10 @@ internal abstract class MapLogic
|
|||||||
fileName = Path.GetFileName(mappedFaceFile);
|
fileName = Path.GetFileName(mappedFaceFile);
|
||||||
if (distinct.Contains(fileName))
|
if (distinct.Contains(fileName))
|
||||||
{
|
{
|
||||||
if (!mappedFaceFile.EndsWith(".dup") && !File.Exists($"{mappedFaceFile}.dup"))
|
checkFile = $"{mappedFaceFile}.dup";
|
||||||
File.Move(mappedFaceFile, $"{mappedFaceFile}.dup");
|
if (File.Exists(checkFile))
|
||||||
|
continue;
|
||||||
|
File.Move(mappedFaceFile, checkFile);
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
distinct.Add(fileName);
|
distinct.Add(fileName);
|
||||||
@ -818,9 +824,11 @@ internal abstract class MapLogic
|
|||||||
Directory.SetLastWriteTime(ticksDirectory, new DateTime(directoryTicks));
|
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;
|
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));
|
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;
|
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)
|
if (compare.Length > 0)
|
||||||
throw new Exception($"Please Consolidate <{string.Join(Environment.NewLine, compare)}>");
|
throw new Exception($"Please Consolidate <{string.Join(Environment.NewLine, compare)}>");
|
||||||
return results;
|
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)
|
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;
|
string[] fileMatches;
|
||||||
const string lnk = ".lnk";
|
const string lnk = ".lnk";
|
||||||
int? id, wholePercentages;
|
int? id, wholePercentages;
|
||||||
@ -909,8 +918,11 @@ internal abstract class MapLogic
|
|||||||
{
|
{
|
||||||
if (string.IsNullOrEmpty(fileMatch) || !File.Exists(fileMatch))
|
if (string.IsNullOrEmpty(fileMatch) || !File.Exists(fileMatch))
|
||||||
continue;
|
continue;
|
||||||
if (!fileMatch.EndsWith(".dup") && !File.Exists($"{fileMatch}.dup"))
|
checkFile = $"{fileMatch}.dup";
|
||||||
File.Move(fileMatch, $"{fileMatch}.dup");
|
if (File.Exists(checkFile))
|
||||||
|
continue;
|
||||||
|
File.Move(fileMatch, checkFile);
|
||||||
|
continue;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (file.EndsWith(lnk) || (!configuration.DistanceMoveUnableToMatch && !configuration.DistanceRenameToMatch) || !File.Exists(file))
|
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();
|
Dictionary<int, List<long>> results = new();
|
||||||
List<long>? collection;
|
List<long>? collection;
|
||||||
@ -1274,7 +1286,7 @@ internal abstract class MapLogic
|
|||||||
collection.Add(keyValuePair.Key);
|
collection.Add(keyValuePair.Key);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return results;
|
return new(results);
|
||||||
}
|
}
|
||||||
|
|
||||||
internal static Mapping[] GetSelectedMappingCollection(ReadOnlyCollection<Face> faces)
|
internal static Mapping[] GetSelectedMappingCollection(ReadOnlyCollection<Face> faces)
|
||||||
|
@ -5,9 +5,9 @@ namespace View_by_Distance.Map.Models.Stateless.Methods;
|
|||||||
public interface IMapLogic
|
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);
|
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);
|
MapLogic.GetIdToPersonKeys(personKeyToIds);
|
||||||
|
|
||||||
ReadOnlyCollection<Shared.Models.Face> TestStatic_GetFaces(ReadOnlyCollection<Shared.Models.Item> items) =>
|
ReadOnlyCollection<Shared.Models.Face> TestStatic_GetFaces(ReadOnlyCollection<Shared.Models.Item> items) =>
|
||||||
|
@ -335,11 +335,11 @@ public class C_Resize
|
|||||||
check = true;
|
check = true;
|
||||||
if (check)
|
if (check)
|
||||||
{
|
{
|
||||||
if (fileInfo.Exists)
|
// if (fileInfo.Exists)
|
||||||
File.Delete(fileInfo.FullName);
|
// File.Delete(fileInfo.FullName);
|
||||||
File.Copy(mappingFromItem.ImageFileHolder.FullName, fileInfo.FullName);
|
// File.Copy(mappingFromItem.ImageFileHolder.FullName, fileInfo.FullName);
|
||||||
item.SetResizedFileHolder(_FileNameExtension, Shared.Models.Stateless.Methods.IFileHolder.Refresh(mappingFromItem.ResizedFileHolder));
|
// item.SetResizedFileHolder(_FileNameExtension, Shared.Models.Stateless.Methods.IFileHolder.Refresh(mappingFromItem.ResizedFileHolder));
|
||||||
subFileTuples.Add(new Tuple<string, DateTime>(nameof(C_Resize), DateTime.Now));
|
// subFileTuples.Add(new Tuple<string, DateTime>(nameof(C_Resize), DateTime.Now));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
|
@ -44,6 +44,7 @@ taskTemplate: '^+^_${overdue ? ''^R'' : ''''}${name}^: ${relations ? (''\n^-^/^g
|
|||||||
- [eof-error](tasks/eof-error.md)
|
- [eof-error](tasks/eof-error.md)
|
||||||
- [shrink-percent](tasks/shrink-percent.md)
|
- [shrink-percent](tasks/shrink-percent.md)
|
||||||
- [setup-photo-prism-again-in-wsl-docker](tasks/setup-photo-prism-again-in-wsl-docker.md)
|
- [setup-photo-prism-again-in-wsl-docker](tasks/setup-photo-prism-again-in-wsl-docker.md)
|
||||||
|
- [fix-random-logic](tasks/fix-random-logic.md)
|
||||||
- [move-copy-manual-files-to-get-display-directory-all-files](tasks/move-copy-manual-files-to-get-display-directory-all-files.md)
|
- [move-copy-manual-files-to-get-display-directory-all-files](tasks/move-copy-manual-files-to-get-display-directory-all-files.md)
|
||||||
- [rename-files-to-padded-number-string](tasks/rename-files-to-padded-number-string.md)
|
- [rename-files-to-padded-number-string](tasks/rename-files-to-padded-number-string.md)
|
||||||
- [genealogical-data-communication-as-golden](tasks/genealogical-data-communication-as-golden.md)
|
- [genealogical-data-communication-as-golden](tasks/genealogical-data-communication-as-golden.md)
|
||||||
|
11
Shared/.kanbn/tasks/fix-random-logic.md
Normal file
11
Shared/.kanbn/tasks/fix-random-logic.md
Normal file
@ -0,0 +1,11 @@
|
|||||||
|
---
|
||||||
|
created: 2023-08-12T04:53:43.442Z
|
||||||
|
updated: 2023-08-12T15:26:41.597Z
|
||||||
|
assigned: ""
|
||||||
|
progress: 0
|
||||||
|
tags: []
|
||||||
|
started: 2023-08-12T04:53:43.442Z
|
||||||
|
completed: 2023-08-12T15:26:41.598Z
|
||||||
|
---
|
||||||
|
|
||||||
|
# Fix random logic
|
@ -33,13 +33,6 @@ public class Face : Properties.IFace
|
|||||||
_OutputResolution = outputResolution;
|
_OutputResolution = outputResolution;
|
||||||
}
|
}
|
||||||
|
|
||||||
public Face(int locationDigits, int locationFactor, int facesCount, Face face) :
|
|
||||||
this(face.DateTime, null, face.FaceEncoding, face.FaceParts, face.Location, null, face.OutputResolution)
|
|
||||||
{
|
|
||||||
if (face.Location?.Confidence is not null && face.OutputResolution is not null)
|
|
||||||
_Location = new(face.Location.Confidence, face.OutputResolution.Height, face.Location, locationDigits, locationFactor, face.OutputResolution.Width, facesCount);
|
|
||||||
}
|
|
||||||
|
|
||||||
public Face(Property property, int outputResolutionWidth, int outputResolutionHeight, int outputResolutionOrientation, Location? location) :
|
public Face(Property property, int outputResolutionWidth, int outputResolutionHeight, int outputResolutionOrientation, Location? location) :
|
||||||
this(DateTime.MinValue, null, null, null, location, null, null)
|
this(DateTime.MinValue, null, null, null, location, null, null)
|
||||||
{
|
{
|
||||||
@ -49,10 +42,6 @@ public class Face : Properties.IFace
|
|||||||
_DateTime = (from l in dateTimes where l.HasValue select l.Value).Min();
|
_DateTime = (from l in dateTimes where l.HasValue select l.Value).Min();
|
||||||
}
|
}
|
||||||
|
|
||||||
public Face(Face face, int height, Location location, int locationDigits, int locationFactor, int width, int zCount) :
|
|
||||||
this(face.DateTime, face.FaceDistance, face.FaceEncoding, face.FaceParts, new(height, location, locationDigits, locationFactor, width, zCount), face.Mapping, face.OutputResolution)
|
|
||||||
{ }
|
|
||||||
|
|
||||||
public override string ToString()
|
public override string ToString()
|
||||||
{
|
{
|
||||||
string result = JsonSerializer.Serialize(this, new JsonSerializerOptions() { WriteIndented = true });
|
string result = JsonSerializer.Serialize(this, new JsonSerializerOptions() { WriteIndented = true });
|
||||||
|
Loading…
x
Reference in New Issue
Block a user