Range
This commit is contained in:
@ -25,12 +25,14 @@ public class MapLogic
|
||||
private readonly int _MaxDegreeOfParallelism;
|
||||
private readonly Configuration? _Configuration;
|
||||
private readonly string _EDistanceContentTicksDirectory;
|
||||
private readonly Shared.Models.Methods.IMapLogicSupport? _MapLogicSupport;
|
||||
private readonly Shared.Models.Properties.IPropertyConfiguration _PropertyConfiguration;
|
||||
|
||||
public MapLogic(int maxDegreeOfParallelism, Shared.Models.Properties.IPropertyConfiguration propertyConfiguration, Configuration? configuration, long ticks, PersonContainer[] personContainers, string a2PeopleSingletonDirectory, string eDistanceContentDirectory, Mapping[] mappingCollection, Shared.Models.Methods.IMapLogicSupport? faceDistance)
|
||||
public MapLogic(int maxDegreeOfParallelism, Shared.Models.Properties.IPropertyConfiguration propertyConfiguration, Configuration? configuration, long ticks, PersonContainer[] personContainers, string a2PeopleSingletonDirectory, string eDistanceContentDirectory, Mapping[] mappingCollection, Shared.Models.Methods.IMapLogicSupport? mapLogicSupport)
|
||||
{
|
||||
_Ticks = ticks;
|
||||
_Configuration = configuration;
|
||||
_MapLogicSupport = mapLogicSupport;
|
||||
_Log = Serilog.Log.ForContext<MapLogic>();
|
||||
_PropertyConfiguration = propertyConfiguration;
|
||||
_MaxDegreeOfParallelism = maxDegreeOfParallelism;
|
||||
@ -59,7 +61,7 @@ public class MapLogic
|
||||
_ = Directory.CreateDirectory(eDistanceContentDirectory);
|
||||
if (!Directory.Exists(eDistanceContentTicksDirectory))
|
||||
_ = Directory.CreateDirectory(eDistanceContentTicksDirectory);
|
||||
if (configuration is not null && faceDistance is not null)
|
||||
if (configuration is not null && mapLogicSupport is not null)
|
||||
{
|
||||
List<PersonContainer> personContainerCollection = new(personContainers);
|
||||
Stateless.MapLogic.Set(propertyConfiguration,
|
||||
@ -69,7 +71,7 @@ public class MapLogic
|
||||
a2PeopleSingletonDirectory,
|
||||
eDistanceContentDirectory,
|
||||
mappingCollection,
|
||||
faceDistance,
|
||||
mapLogicSupport,
|
||||
personKeyToPersonContainer,
|
||||
personKeyToRanges,
|
||||
notMappedPersonContainers,
|
||||
@ -193,6 +195,8 @@ public class MapLogic
|
||||
if (File.Exists(checkFile))
|
||||
continue;
|
||||
File.Copy(sourceFile, checkFile);
|
||||
if (saveContainer.MakeAllHidden)
|
||||
File.SetAttributes(checkFile, FileAttributes.Hidden);
|
||||
if (saveContainer.HiddenFaceFileHolder is not null && saveContainer.HiddenFaceFileHolder.Exists)
|
||||
{
|
||||
sourceFile = saveContainer.HiddenFaceFileHolder.FullName;
|
||||
@ -206,16 +210,23 @@ public class MapLogic
|
||||
if (File.Exists(checkFile))
|
||||
continue;
|
||||
File.Copy(sourceFile, checkFile);
|
||||
if (saveContainer.MakeAllHidden)
|
||||
File.SetAttributes(checkFile, FileAttributes.Hidden);
|
||||
}
|
||||
foreach (SaveContainer saveContainer in saveContainers)
|
||||
if (updated is null)
|
||||
{
|
||||
if (string.IsNullOrEmpty(saveContainer.Directory) || string.IsNullOrEmpty(saveContainer.CheckFile) || saveContainer.ResizedFileHolder is null || !saveContainer.ResizedFileHolder.Exists)
|
||||
continue;
|
||||
checkFile = saveContainer.CheckFile;
|
||||
sourceFile = saveContainer.ResizedFileHolder.FullName;
|
||||
if (File.Exists(checkFile))
|
||||
continue;
|
||||
File.Copy(sourceFile, checkFile);
|
||||
foreach (SaveContainer saveContainer in saveContainers)
|
||||
{
|
||||
if (string.IsNullOrEmpty(saveContainer.Directory) || string.IsNullOrEmpty(saveContainer.CheckFile) || saveContainer.ResizedFileHolder is null || !saveContainer.ResizedFileHolder.Exists)
|
||||
continue;
|
||||
checkFile = saveContainer.CheckFile;
|
||||
sourceFile = saveContainer.ResizedFileHolder.FullName;
|
||||
if (File.Exists(checkFile))
|
||||
continue;
|
||||
File.Copy(sourceFile, checkFile);
|
||||
if (saveContainer.MakeAllHidden)
|
||||
File.SetAttributes(checkFile, FileAttributes.Hidden);
|
||||
}
|
||||
}
|
||||
foreach (SaveContainer saveContainer in saveContainers)
|
||||
{
|
||||
@ -226,6 +237,8 @@ public class MapLogic
|
||||
windowsShortcut = new() { Path = saveContainer.ResizedFileHolder.FullName };
|
||||
windowsShortcut.Save(saveContainer.ShortcutFile);
|
||||
windowsShortcut.Dispose();
|
||||
if (saveContainer.MakeAllHidden)
|
||||
File.SetAttributes(saveContainer.ShortcutFile, FileAttributes.Hidden);
|
||||
}
|
||||
catch (Exception)
|
||||
{ }
|
||||
@ -413,8 +426,13 @@ public class MapLogic
|
||||
|
||||
public void UpdateFromSortingContainersThenSaveContainers(string dFacesContentDirectory, string d2FacePartsContentDirectory, Mapping[] mappingCollection, Dictionary<int, Dictionary<int, Mapping>> idToNormalizedPixelPercentageToMapping, int? useFiltersCounter, SortingContainer[] sortingContainers, int totalNotMapped)
|
||||
{
|
||||
int updated = UpdateFromSortingContainers(sortingContainers);
|
||||
if (_MapLogicSupport is not null)
|
||||
{
|
||||
string counts = _MapLogicSupport.GetCounts();
|
||||
_ = Directory.CreateDirectory(Path.Combine(_EDistanceContentTicksDirectory, counts));
|
||||
}
|
||||
Dictionary<long, int> personKeyToCount = new();
|
||||
int updated = UpdateFromSortingContainers(sortingContainers);
|
||||
List<SaveContainer> saveContainers = GetSaveContainers(dFacesContentDirectory, d2FacePartsContentDirectory, mappingCollection, idToNormalizedPixelPercentageToMapping, personKeyToCount, useFiltersCounter, saveMapped: false);
|
||||
SaveContainers(totalNotMapped, updated, saveContainers);
|
||||
}
|
||||
@ -507,7 +525,7 @@ public class MapLogic
|
||||
else
|
||||
personKeysRangesCollection = GetPersonKeysRangesCollection(normalizedPixelPercentageToPersonContainers[faceDistanceLength.NormalizedPixelPercentage.Value]);
|
||||
}
|
||||
sorting = ISorting.Get(_Configuration.FaceDistancePermyriad, _Configuration.FaceDistanceTolerance, faceDistanceEncoding, faceDistanceLength, personKeysRangesCollection);
|
||||
sorting = ISorting.Get(_Configuration.FaceDistancePermyriad, _Configuration.RangeDistanceTolerance, faceDistanceEncoding, faceDistanceLength, personKeysRangesCollection);
|
||||
if (sorting.DistancePermyriad == 0)
|
||||
continue;
|
||||
if (sorting.Id == faceDistanceEncoding.Id)
|
||||
@ -968,7 +986,7 @@ public class MapLogic
|
||||
}
|
||||
}
|
||||
|
||||
private List<(string, FileHolder, string)> GetCollection(int faceDistanceAreaPermilleTolerance, string dFacesContentDirectory, Dictionary<int, Dictionary<int, Mapping>> idToNormalizedPixelPercentageToMapping)
|
||||
private List<(string, FileHolder, string)> GetCollection(string dFacesContentDirectory, Dictionary<int, Dictionary<int, Mapping>> idToNormalizedPixelPercentageToMapping)
|
||||
{
|
||||
if (_Configuration is null)
|
||||
throw new NullReferenceException(nameof(_Configuration));
|
||||
@ -988,8 +1006,6 @@ public class MapLogic
|
||||
foreach (KeyValuePair<int, Mapping> normalizedPixelPercentageAndMapping in keyValuePair.Value)
|
||||
{
|
||||
mapping = normalizedPixelPercentageAndMapping.Value;
|
||||
if (mapping.MappingFromLocation.AreaPermille < faceDistanceAreaPermilleTolerance)
|
||||
continue;
|
||||
if (normalizedPixelPercentageToPersonContainers is not null && normalizedPixelPercentageToPersonContainers.ContainsKey(mapping.MappingFromLocation.NormalizedPixelPercentage))
|
||||
continue;
|
||||
_ = _SkipCollection.TryGetValue(keyValuePair.Key, out normalizedPixelPercentages);
|
||||
@ -1008,11 +1024,11 @@ public class MapLogic
|
||||
return results;
|
||||
}
|
||||
|
||||
public void CopyNotMappedFaces(int faceDistanceAreaPermilleTolerance, string dFacesContentDirectory, Dictionary<int, Dictionary<int, Mapping>> idToNormalizedPixelPercentageToMapping)
|
||||
public void CopyNotMappedFaces(int[] rangeFaceAreaPermilleTolerance, string dFacesContentDirectory, Dictionary<int, Dictionary<int, Mapping>> idToNormalizedPixelPercentageToMapping)
|
||||
{
|
||||
if (_Configuration is null)
|
||||
throw new NullReferenceException(nameof(_Configuration));
|
||||
List<(string Directory, FileHolder FaceFileHolder, string CheckFile)> collection = GetCollection(faceDistanceAreaPermilleTolerance, dFacesContentDirectory, idToNormalizedPixelPercentageToMapping);
|
||||
List<(string Directory, FileHolder FaceFileHolder, string CheckFile)> collection = GetCollection(dFacesContentDirectory, idToNormalizedPixelPercentageToMapping);
|
||||
string[] directories = (from l in collection select l.Directory).Distinct().ToArray();
|
||||
foreach (string directory in directories)
|
||||
{
|
||||
|
Reference in New Issue
Block a user