Fix the errors
This commit is contained in:
parent
665fb8ec06
commit
86b13dc00f
@ -855,6 +855,34 @@ public partial class DlibDotNet : IDlibDotNet, IDisposable
|
|||||||
return new(results);
|
return new(results);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public ReadOnlyDictionary<string, LocationContainer> GetOnlyOne(IDistanceLimits distanceLimits, ReadOnlyCollection<LocationContainer> matrix)
|
||||||
|
{
|
||||||
|
Dictionary<string, LocationContainer> results = [];
|
||||||
|
List<string> added = [];
|
||||||
|
LocationContainer? tryGetValue;
|
||||||
|
foreach (LocationContainer locationContainer in matrix)
|
||||||
|
{
|
||||||
|
if (_Configuration.SaveIndividually)
|
||||||
|
break;
|
||||||
|
if (locationContainer.LengthSource is null)
|
||||||
|
continue;
|
||||||
|
if (_Configuration.UseExtraPersonKeyCheck)
|
||||||
|
{
|
||||||
|
if (results.TryGetValue(locationContainer.LengthSource.Name, out tryGetValue))
|
||||||
|
{
|
||||||
|
if (locationContainer.PersonKey is not null && tryGetValue.PersonKey is not null && locationContainer.PersonKey.Value != tryGetValue.PersonKey)
|
||||||
|
_ = results.Remove(locationContainer.LengthSource.Name);
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (added.Contains(locationContainer.LengthSource.Name))
|
||||||
|
continue;
|
||||||
|
added.Add(locationContainer.LengthSource.Name);
|
||||||
|
results.Add(locationContainer.LengthSource.Name, locationContainer);
|
||||||
|
}
|
||||||
|
return new(results);
|
||||||
|
}
|
||||||
|
|
||||||
private List<SaveContainer> GetSaveContainers(long ticks, ReadOnlyCollection<PersonContainer> personContainers, string a2PeopleSingletonDirectory, string eDistanceContentDirectory, ProgressBarOptions options, MapLogic mapLogic, string outputResolution)
|
private List<SaveContainer> GetSaveContainers(long ticks, ReadOnlyCollection<PersonContainer> personContainers, string a2PeopleSingletonDirectory, string eDistanceContentDirectory, ProgressBarOptions options, MapLogic mapLogic, string outputResolution)
|
||||||
{
|
{
|
||||||
List<SaveContainer> results;
|
List<SaveContainer> results;
|
||||||
@ -886,11 +914,14 @@ public partial class DlibDotNet : IDlibDotNet, IDisposable
|
|||||||
_ProgressBar = new(postFiltered.Count, message, options);
|
_ProgressBar = new(postFiltered.Count, message, options);
|
||||||
ReadOnlyCollection<LocationContainer> matrix = E_Distance.GetMatrixLocationContainers(this, _MapConfiguration, ticks, mapLogic, mappedWithEncoding, preFiltered, distanceLimits, postFiltered);
|
ReadOnlyCollection<LocationContainer> matrix = E_Distance.GetMatrixLocationContainers(this, _MapConfiguration, ticks, mapLogic, mappedWithEncoding, preFiltered, distanceLimits, postFiltered);
|
||||||
_ProgressBar.Dispose();
|
_ProgressBar.Dispose();
|
||||||
ReadOnlyDictionary<string, LocationContainer> oneOnly = mapLogic.GetOneOnly(distanceLimits, matrix);
|
ReadOnlyDictionary<string, LocationContainer> onlyOne = GetOnlyOne(distanceLimits, matrix);
|
||||||
if (oneOnly.Count == 0)
|
if (onlyOne.Count == 0)
|
||||||
results = [];
|
results = [];
|
||||||
else
|
else
|
||||||
results = mapLogic.GetSaveContainers(cResultsFullGroupDirectory, dResultsFullGroupDirectory, d2ResultsFullGroupDirectory, distanceLimits, oneOnly);
|
{
|
||||||
|
ReadOnlyDictionary<long, PersonContainer> personKeyToPersonContainer = mapLogic.GetPersonKeyToPersonContainer();
|
||||||
|
results = mapLogic.GetSaveContainers(cResultsFullGroupDirectory, dResultsFullGroupDirectory, d2ResultsFullGroupDirectory, distanceLimits, onlyOne, personKeyToPersonContainer);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return results;
|
return results;
|
||||||
|
@ -94,6 +94,7 @@ public class Configuration
|
|||||||
public int? SortingMaximumPerKey { get; set; }
|
public int? SortingMaximumPerKey { get; set; }
|
||||||
public int? SortingMinimumToUseSigma { get; set; }
|
public int? SortingMinimumToUseSigma { get; set; }
|
||||||
public bool? TestDistanceResults { get; set; }
|
public bool? TestDistanceResults { get; set; }
|
||||||
|
public bool? UseExtraPersonKeyCheck { get; set; }
|
||||||
public int? UseFilterTries { get; set; }
|
public int? UseFilterTries { get; set; }
|
||||||
public string[]? ValidKeyWordsToIgnoreInRandom { get; set; }
|
public string[]? ValidKeyWordsToIgnoreInRandom { get; set; }
|
||||||
public string[]? ValidResolutions { get; set; }
|
public string[]? ValidResolutions { get; set; }
|
||||||
@ -213,6 +214,7 @@ public class Configuration
|
|||||||
if (configuration?.SortingMaximumPerKey is null) throw new NullReferenceException(nameof(configuration.SortingMaximumPerKey));
|
if (configuration?.SortingMaximumPerKey is null) throw new NullReferenceException(nameof(configuration.SortingMaximumPerKey));
|
||||||
if (configuration?.SortingMinimumToUseSigma is null) throw new NullReferenceException(nameof(configuration.SortingMinimumToUseSigma));
|
if (configuration?.SortingMinimumToUseSigma is null) throw new NullReferenceException(nameof(configuration.SortingMinimumToUseSigma));
|
||||||
if (configuration?.TestDistanceResults is null) throw new NullReferenceException(nameof(configuration.TestDistanceResults));
|
if (configuration?.TestDistanceResults is null) throw new NullReferenceException(nameof(configuration.TestDistanceResults));
|
||||||
|
if (configuration?.UseExtraPersonKeyCheck is null) throw new NullReferenceException(nameof(configuration.UseExtraPersonKeyCheck));
|
||||||
if (configuration?.UseFilterTries is null) throw new NullReferenceException(nameof(configuration.UseFilterTries));
|
if (configuration?.UseFilterTries is null) throw new NullReferenceException(nameof(configuration.UseFilterTries));
|
||||||
// if (configuration?.ValidKeyWordsToIgnoreInRandom is null) throw new NullReferenceException(nameof(configuration.ValidKeyWordsToIgnoreInRandom));
|
// if (configuration?.ValidKeyWordsToIgnoreInRandom is null) throw new NullReferenceException(nameof(configuration.ValidKeyWordsToIgnoreInRandom));
|
||||||
// if (configuration?.ValidResolutions is null) throw new NullReferenceException(nameof(configuration.ValidResolutions));
|
// if (configuration?.ValidResolutions is null) throw new NullReferenceException(nameof(configuration.ValidResolutions));
|
||||||
@ -304,6 +306,7 @@ public class Configuration
|
|||||||
configuration.SortingMaximumPerKey.Value,
|
configuration.SortingMaximumPerKey.Value,
|
||||||
configuration.SortingMinimumToUseSigma.Value,
|
configuration.SortingMinimumToUseSigma.Value,
|
||||||
configuration.TestDistanceResults.Value,
|
configuration.TestDistanceResults.Value,
|
||||||
|
configuration.UseExtraPersonKeyCheck.Value,
|
||||||
configuration.UseFilterTries.Value,
|
configuration.UseFilterTries.Value,
|
||||||
configuration.ValidKeyWordsToIgnoreInRandom ?? [],
|
configuration.ValidKeyWordsToIgnoreInRandom ?? [],
|
||||||
configuration.ValidResolutions ?? []);
|
configuration.ValidResolutions ?? []);
|
||||||
|
@ -88,6 +88,7 @@ public record Configuration(Property.Models.Configuration PropertyConfiguration,
|
|||||||
int SortingMaximumPerKey,
|
int SortingMaximumPerKey,
|
||||||
int SortingMinimumToUseSigma,
|
int SortingMinimumToUseSigma,
|
||||||
bool TestDistanceResults,
|
bool TestDistanceResults,
|
||||||
|
bool UseExtraPersonKeyCheck,
|
||||||
int UseFilterTries,
|
int UseFilterTries,
|
||||||
string[] ValidKeyWordsToIgnoreInRandom,
|
string[] ValidKeyWordsToIgnoreInRandom,
|
||||||
string[] ValidResolutions);
|
string[] ValidResolutions);
|
@ -359,6 +359,13 @@ public partial class MapLogic : Shared.Models.Methods.IMapLogic
|
|||||||
return new(results);
|
return new(results);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public ReadOnlyDictionary<long, PersonContainer> GetPersonKeyToPersonContainer()
|
||||||
|
{
|
||||||
|
Dictionary<long, PersonContainer> results = [];
|
||||||
|
();
|
||||||
|
return new(results);
|
||||||
|
}
|
||||||
|
|
||||||
public ReadOnlyDictionary<long, List<int>> GetPersonKeyToIds()
|
public ReadOnlyDictionary<long, List<int>> GetPersonKeyToIds()
|
||||||
{
|
{
|
||||||
Dictionary<long, List<int>> results = [];
|
Dictionary<long, List<int>> results = [];
|
||||||
@ -820,9 +827,10 @@ public partial class MapLogic : Shared.Models.Methods.IMapLogic
|
|||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
private string? GetDisplayDirectoryName(string? displayDirectoryName, LocationContainer locationContainer)
|
private string? GetDisplayDirectoryName(string? displayDirectoryName, LocationContainer locationContainer, ReadOnlyDictionary<long, PersonContainer> personKeyToPersonContainer)
|
||||||
{
|
{
|
||||||
string? result = displayDirectoryName;
|
string? result = displayDirectoryName;
|
||||||
|
personKeyToPersonContainer();
|
||||||
ReadOnlyDictionary<int, ReadOnlyCollection<PersonContainer>>? wholePercentagesToPersonContainers = GetWholePercentagesToPersonContainers(locationContainer.Id);
|
ReadOnlyDictionary<int, ReadOnlyCollection<PersonContainer>>? wholePercentagesToPersonContainers = GetWholePercentagesToPersonContainers(locationContainer.Id);
|
||||||
if (wholePercentagesToPersonContainers is not null)
|
if (wholePercentagesToPersonContainers is not null)
|
||||||
{
|
{
|
||||||
@ -838,34 +846,7 @@ public partial class MapLogic : Shared.Models.Methods.IMapLogic
|
|||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
public ReadOnlyDictionary<string, LocationContainer> GetOneOnly(Shared.Models.Methods.IDistanceLimits distanceLimits, ReadOnlyCollection<LocationContainer> matrix)
|
public List<SaveContainer> GetSaveContainers(string cResultsFullGroupDirectory, string dResultsFullGroupDirectory, string d2ResultsFullGroupDirectory, Shared.Models.Methods.IDistanceLimits distanceLimits, ReadOnlyDictionary<string, LocationContainer> onlyOne, ReadOnlyDictionary<long, PersonContainer> personKeyToPersonContainer)
|
||||||
{
|
|
||||||
if (_Configuration is null)
|
|
||||||
throw new NullReferenceException(nameof(_Configuration));
|
|
||||||
Dictionary<string, LocationContainer> results = [];
|
|
||||||
List<string> added = [];
|
|
||||||
LocationContainer? tryGetValue;
|
|
||||||
foreach (LocationContainer locationContainer in matrix)
|
|
||||||
{
|
|
||||||
if (_Configuration.SaveIndividually)
|
|
||||||
break;
|
|
||||||
if (locationContainer.LengthSource is null)
|
|
||||||
continue;
|
|
||||||
if (results.TryGetValue(locationContainer.LengthSource.Name, out tryGetValue))
|
|
||||||
{
|
|
||||||
if (locationContainer.PersonKey is not null && tryGetValue.PersonKey is not null && locationContainer.PersonKey.Value != tryGetValue.PersonKey)
|
|
||||||
_ = results.Remove(locationContainer.LengthSource.Name);
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
if (added.Contains(locationContainer.LengthSource.Name))
|
|
||||||
continue;
|
|
||||||
added.Add(locationContainer.LengthSource.Name);
|
|
||||||
results.Add(locationContainer.LengthSource.Name, locationContainer);
|
|
||||||
}
|
|
||||||
return new(results);
|
|
||||||
}
|
|
||||||
|
|
||||||
public List<SaveContainer> GetSaveContainers(string cResultsFullGroupDirectory, string dResultsFullGroupDirectory, string d2ResultsFullGroupDirectory, Shared.Models.Methods.IDistanceLimits distanceLimits, ReadOnlyDictionary<string, LocationContainer> oneOnly)
|
|
||||||
{
|
{
|
||||||
if (_Configuration is null)
|
if (_Configuration is null)
|
||||||
throw new NullReferenceException(nameof(_Configuration));
|
throw new NullReferenceException(nameof(_Configuration));
|
||||||
@ -878,7 +859,6 @@ public partial class MapLogic : Shared.Models.Methods.IMapLogic
|
|||||||
string? directory;
|
string? directory;
|
||||||
string shortcutFile;
|
string shortcutFile;
|
||||||
string facesDirectory;
|
string facesDirectory;
|
||||||
List<string> added = [];
|
|
||||||
bool isCounterPersonYear;
|
bool isCounterPersonYear;
|
||||||
string facePartsDirectory;
|
string facePartsDirectory;
|
||||||
FileHolder? faceFileHolder;
|
FileHolder? faceFileHolder;
|
||||||
@ -890,22 +870,20 @@ public partial class MapLogic : Shared.Models.Methods.IMapLogic
|
|||||||
FileHolder? facePartsFileHolder;
|
FileHolder? facePartsFileHolder;
|
||||||
FileHolder? hiddenFaceFileHolder;
|
FileHolder? hiddenFaceFileHolder;
|
||||||
LocationContainer locationContainer;
|
LocationContainer locationContainer;
|
||||||
bool sortingContainersAny = oneOnly.Count > 0;
|
bool sortingContainersAny = onlyOne.Count > 0;
|
||||||
string cContentDirectory = Path.Combine(cResultsFullGroupDirectory, _Configuration.PropertyConfiguration.ResultContent);
|
string cContentDirectory = Path.Combine(cResultsFullGroupDirectory, _Configuration.PropertyConfiguration.ResultContent);
|
||||||
string forceSingleImageHumanized = nameof(Shared.Models.Stateless.IMapLogic.ForceSingleImage).Humanize(LetterCasing.Title);
|
string forceSingleImageHumanized = nameof(Shared.Models.Stateless.IMapLogic.ForceSingleImage).Humanize(LetterCasing.Title);
|
||||||
string d2FacePartsContentDirectory = Path.Combine(d2ResultsFullGroupDirectory, _Configuration.PropertyConfiguration.ResultContent);
|
string d2FacePartsContentDirectory = Path.Combine(d2ResultsFullGroupDirectory, _Configuration.PropertyConfiguration.ResultContent);
|
||||||
foreach (KeyValuePair<string, LocationContainer> keyValuePair in oneOnly)
|
foreach (KeyValuePair<string, LocationContainer> keyValuePair in onlyOne)
|
||||||
{
|
{
|
||||||
if (_Configuration.SaveIndividually)
|
if (_Configuration.SaveIndividually)
|
||||||
break;
|
break;
|
||||||
locationContainer = keyValuePair.Value;
|
locationContainer = keyValuePair.Value;
|
||||||
if (locationContainer.LengthPermyriad is null || locationContainer.LengthSource is null)
|
if (locationContainer.LengthPermyriad is null || locationContainer.LengthSource is null)
|
||||||
continue;
|
continue;
|
||||||
if (added.Contains(keyValuePair.Key))
|
|
||||||
continue;
|
|
||||||
segmentB = locationContainer.LengthPermyriad.Value.ToString().PadLeft(2, '0')[..2];
|
segmentB = locationContainer.LengthPermyriad.Value.ToString().PadLeft(2, '0')[..2];
|
||||||
|
displayDirectoryName = GetDisplayDirectoryName(locationContainer.DisplayDirectoryName, locationContainer, personKeyToPersonContainer);
|
||||||
isCounterPersonYear = locationContainer.PersonKey is not null && IPersonBirthday.IsCounterPersonYear(locationContainer.PersonKey.Value);
|
isCounterPersonYear = locationContainer.PersonKey is not null && IPersonBirthday.IsCounterPersonYear(locationContainer.PersonKey.Value);
|
||||||
displayDirectoryName = isCounterPersonYear ? locationContainer.DisplayDirectoryName : GetDisplayDirectoryName(locationContainer.DisplayDirectoryName, locationContainer);
|
|
||||||
(by, _, isBySorting) = Stateless.MapLogic.Get(useFiltersCounter, _Configuration.SaveIndividually, sortingContainersAny, forceSingleImageHumanized, locationContainer.LengthPermyriad, locationContainer.PersonKey, displayDirectoryName);
|
(by, _, isBySorting) = Stateless.MapLogic.Get(useFiltersCounter, _Configuration.SaveIndividually, sortingContainersAny, forceSingleImageHumanized, locationContainer.LengthPermyriad, locationContainer.PersonKey, displayDirectoryName);
|
||||||
record = Get(_Configuration, by, locationContainer.PersonKey, displayDirectoryName, segmentB);
|
record = Get(_Configuration, by, locationContainer.PersonKey, displayDirectoryName, segmentB);
|
||||||
if (string.IsNullOrEmpty(record.Directory) || string.IsNullOrEmpty(record.PersonDirectory))
|
if (string.IsNullOrEmpty(record.Directory) || string.IsNullOrEmpty(record.PersonDirectory))
|
||||||
@ -932,7 +910,6 @@ public partial class MapLogic : Shared.Models.Methods.IMapLogic
|
|||||||
resizedFileHolder = IFileHolder.Get(Path.Combine(resizeContentDirectory, $"{locationContainer.LengthSource.FileNameFirstSegment}{Path.GetExtension(locationContainer.LengthSource.NameWithoutExtension)}"));
|
resizedFileHolder = IFileHolder.Get(Path.Combine(resizeContentDirectory, $"{locationContainer.LengthSource.FileNameFirstSegment}{Path.GetExtension(locationContainer.LengthSource.NameWithoutExtension)}"));
|
||||||
saveContainer = new(checkFile, directory, faceFileHolder, hiddenFaceFileHolder, facePartsFileHolder, resizedFileHolder, shortcutFile);
|
saveContainer = new(checkFile, directory, faceFileHolder, hiddenFaceFileHolder, facePartsFileHolder, resizedFileHolder, shortcutFile);
|
||||||
results.Add(saveContainer);
|
results.Add(saveContainer);
|
||||||
added.Add(keyValuePair.Key);
|
|
||||||
}
|
}
|
||||||
return results;
|
return results;
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user