SaveMappedForOutputResolutions
This commit is contained in:
@ -1,4 +1,4 @@
|
||||
using Humanizer;
|
||||
using Humanizer;
|
||||
using ShellProgressBar;
|
||||
using System.Collections.ObjectModel;
|
||||
using System.Globalization;
|
||||
@ -226,7 +226,7 @@ public partial class MapLogic : Shared.Models.Methods.IMapLogic
|
||||
private readonly ReadOnlyDictionary<int, List<LocationContainer<MetadataExtractor.Directory>>> _IdToLocationContainers;
|
||||
private readonly ReadOnlyDictionary<int, ReadOnlyDictionary<int, ReadOnlyCollection<PersonContainer>>> _IdThenWholePercentagesToPersonContainers;
|
||||
|
||||
public MapLogic(int maxDegreeOfParallelism, Shared.Models.Properties.IPropertyConfiguration propertyConfiguration, Configuration? configuration, Shared.Models.Methods.IDistance<MetadataExtractor.Directory> distance, ReadOnlyCollection<PersonContainer> personContainers, long ticks, string a2PeopleSingletonDirectory, string eDistanceContentDirectory)
|
||||
public MapLogic(int maxDegreeOfParallelism, Shared.Models.Properties.IPropertyConfiguration propertyConfiguration, Configuration? configuration, Shared.Models.Methods.IDistance<MetadataExtractor.Directory> distance, ReadOnlyCollection<PersonContainer> personContainers, long ticks, string? a2PeopleContentDirectory, string a2PeopleSingletonDirectory, string eDistanceContentDirectory)
|
||||
{
|
||||
_Ticks = ticks;
|
||||
_Configuration = configuration;
|
||||
@ -240,7 +240,7 @@ public partial class MapLogic : Shared.Models.Methods.IMapLogic
|
||||
Dictionary<int, List<(string, int)>> skipNotSkipCollection = new();
|
||||
List<LocationContainer<MetadataExtractor.Directory>> locationContainers = new();
|
||||
string? rootDirectoryParent = Path.GetDirectoryName(propertyConfiguration.RootDirectory);
|
||||
string eDistanceContentTicksDirectory = Path.Combine(eDistanceContentDirectory, $"({ticks})");
|
||||
string eDistanceContentTicksDirectory = Path.Combine(eDistanceContentDirectory, ticks.ToString());
|
||||
ReadOnlyDictionary<int, ReadOnlyDictionary<int, ReadOnlyCollection<PersonContainer>>> idThenWholePercentagesToPersonContainers;
|
||||
if (string.IsNullOrEmpty(rootDirectoryParent))
|
||||
throw new NullReferenceException(nameof(rootDirectoryParent));
|
||||
@ -270,13 +270,7 @@ public partial class MapLogic : Shared.Models.Methods.IMapLogic
|
||||
}
|
||||
List<Stateless.MapLogic.Record> records = Stateless.MapLogic.DeleteEmptyDirectoriesAndGetCollection(configuration, ticks, eDistanceContentDirectory, readOnlyPersonKeyFormattedToNewestPersonKeyFormatted, readOnlyPersonKeyFormattedCollection);
|
||||
ReadOnlyCollection<(Stateless.MapLogic.PersonKeyFormattedIdThenWholePercentages, PersonContainer)> readOnlyPossiblyNewPersonDisplayDirectoryNamesAndPersonContainer;
|
||||
locationContainers.AddRange(Stateless.MapLogic.GetLocationContainers(distance, maxDegreeOfParallelism, configuration, ticks, personContainers, eDistanceContentDirectory, skipCollection, records));
|
||||
int lossCount = records.Count - locationContainers.Count;
|
||||
ReadOnlyCollection<Stateless.MapLogic.PersonKeyFormattedIdThenWholePercentages> personKeyFormattedIdThenWholePercentagesCollection = Stateless.MapLogic.GetPersonKeyFormattedIdThenWholePercentages(configuration, ticks, records);
|
||||
int unableToMatchCount = records.Count - personKeyFormattedIdThenWholePercentagesCollection.Count;
|
||||
if (lossCount != 0 || unableToMatchCount != 0)
|
||||
if (lossCount != 0 || unableToMatchCount != 0)
|
||||
{ }
|
||||
//
|
||||
{
|
||||
Dictionary<long, int> personKeyToCount = new();
|
||||
@ -314,6 +308,20 @@ public partial class MapLogic : Shared.Models.Methods.IMapLogic
|
||||
ticks,
|
||||
personContainers,
|
||||
readOnlyPersonKeyToCount));
|
||||
locationContainers.AddRange(Stateless.MapLogic.GetLocationContainers(distance,
|
||||
maxDegreeOfParallelism,
|
||||
configuration,
|
||||
ticks,
|
||||
personContainers,
|
||||
skipCollection,
|
||||
records));
|
||||
int lossCount = records.Count - locationContainers.Count;
|
||||
int unableToMatchCount = records.Count - personKeyFormattedIdThenWholePercentagesCollection.Count;
|
||||
if (lossCount != 0 || unableToMatchCount != 0)
|
||||
if (lossCount != 0 || unableToMatchCount != 0)
|
||||
{ }
|
||||
if (!string.IsNullOrEmpty(a2PeopleContentDirectory) && configuration.SaveMappedRelations)
|
||||
Stateless.MapLogic.SaveMappedRelations(configuration, distance, a2PeopleContentDirectory, eDistanceContentDirectory, ticks, locationContainers, readOnlyPersonKeyFormattedToPersonContainer, readOnlyPersonKeyToPersonContainerCollection);
|
||||
}
|
||||
_PersonKeyToCount = readOnlyPersonKeyToCount;
|
||||
_EDistanceContentTicksDirectory = eDistanceContentTicksDirectory;
|
||||
@ -548,11 +556,11 @@ public partial class MapLogic : Shared.Models.Methods.IMapLogic
|
||||
(ticks, directory) = GetDirectory(_Configuration, saveIndividually, padLeft, mapping.SegmentC, by, mapping.MappingFromItem);
|
||||
if (ticks is null || string.IsNullOrEmpty(directory))
|
||||
continue;
|
||||
personDirectory = Path.Combine(directory, $"X]{ticks}");
|
||||
personDirectory = Path.Combine(directory, $"X+{ticks}");
|
||||
if (saveIndividually)
|
||||
{
|
||||
directory = Path.Combine(directory, mapping.MappingFromItem.Id.ToString());
|
||||
results.Add(new(Path.Combine(directory, $"X]{ticks}")));
|
||||
results.Add(new(Path.Combine(directory, $"X+{ticks}")));
|
||||
}
|
||||
distinct.Add(mapping.MappingFromItem.Id);
|
||||
distinct.Add(mapping.SortingContainer.Sorting.Id);
|
||||
@ -686,6 +694,7 @@ public partial class MapLogic : Shared.Models.Methods.IMapLogic
|
||||
FaceDistance faceDistanceLength;
|
||||
List<int>? wholePercentagesCollection;
|
||||
bool skipNotSkipCollectionAny = _SkipNotSkipCollection.Count > 0;
|
||||
float distanceTolerance = _Configuration.RangeDistanceTolerance[1];
|
||||
for (int j = 0; j < faceDistanceLengths.Count; j++)
|
||||
{
|
||||
if (faceDistanceEncoding.WholePercentages is null)
|
||||
@ -705,7 +714,7 @@ public partial class MapLogic : Shared.Models.Methods.IMapLogic
|
||||
throw new NotSupportedException();
|
||||
if (faceDistanceLength.Length == 0)
|
||||
continue;
|
||||
sorting = ISorting.Get(_Configuration.FaceDistancePermyriad, _Configuration.RangeDistanceTolerance, faceDistanceEncoding, faceDistanceLength);
|
||||
sorting = ISorting.Get(_Configuration.FaceDistancePermyriad, distanceTolerance, faceDistanceEncoding, faceDistanceLength);
|
||||
if (sorting.DistancePermyriad == 0)
|
||||
continue;
|
||||
if (sorting.Id == faceDistanceEncoding.Id)
|
||||
|
Reference in New Issue
Block a user