GetJLinkDirectories, IsFocusPerson and start of
ignoreXMatches
This commit is contained in:
@ -425,11 +425,11 @@ public class MapLogic : Shared.Models.Methods.IMapLogic
|
||||
directory = GetDirectory(_Configuration, saveIndividually, padLeft, mapping.SegmentC, by, mapping.MappingFromItem);
|
||||
if (string.IsNullOrEmpty(directory))
|
||||
continue;
|
||||
personDirectory = Path.Combine(directory, $"Z]{ticks}");
|
||||
personDirectory = Path.Combine(directory, $"X]{ticks}");
|
||||
if (saveIndividually)
|
||||
{
|
||||
directory = Path.Combine(directory, mapping.MappingFromItem.Id.ToString());
|
||||
results.Add(new(Path.Combine(directory, $"Z]{ticks}")));
|
||||
results.Add(new(Path.Combine(directory, $"X]{ticks}")));
|
||||
}
|
||||
distinct.Add(mapping.MappingFromItem.Id);
|
||||
distinct.Add(mapping.SortingContainer.Sorting.Id);
|
||||
@ -556,23 +556,6 @@ public class MapLogic : Shared.Models.Methods.IMapLogic
|
||||
Stateless.MapLogic.SaveMappingShortcuts(mappingDirectory);
|
||||
}
|
||||
|
||||
public bool Used(FaceDistance faceDistanceEncoding)
|
||||
{
|
||||
bool result = false;
|
||||
if (faceDistanceEncoding.WholePercentages is null)
|
||||
throw new NotSupportedException();
|
||||
List<int>? wholePercentagesCollection;
|
||||
Dictionary<int, PersonContainer[]>? wholePercentagesToPersonContainers;
|
||||
if (_SkipCollection.TryGetValue(faceDistanceEncoding.Id, out wholePercentagesCollection) && wholePercentagesCollection.Contains(faceDistanceEncoding.WholePercentages.Value))
|
||||
result = true;
|
||||
if (!result && _IdThenWholePercentagesToPersonContainers.TryGetValue(faceDistanceEncoding.Id, out wholePercentagesToPersonContainers))
|
||||
{
|
||||
if (wholePercentagesToPersonContainers.ContainsKey(faceDistanceEncoding.WholePercentages.Value))
|
||||
result = true;
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
public List<Sorting> GetSortingCollection(int i, FaceDistance faceDistanceEncoding, List<FaceDistance> faceDistanceLengths)
|
||||
{
|
||||
if (_Configuration is null)
|
||||
@ -1107,7 +1090,6 @@ public class MapLogic : Shared.Models.Methods.IMapLogic
|
||||
SaveContainer? saveContainer;
|
||||
bool saveIndividually = false;
|
||||
List<SaveContainer> saveContainers = new();
|
||||
Stateless.MapLogic.BeforeSaveFilteredOriginalImagesFromJLinks(jLinks, a2PeopleContentDirectory);
|
||||
(int, FileHolder, int, string, string, string, string)[] collection = GetCollectionForSaveFilteredOriginalImagesFromJLinks(jLinks, a2PeopleContentDirectory, personContainers, mappingCollection, personKeyToIds);
|
||||
foreach ((int id, FileHolder imageFileHolder, int approximateYears, string personKeyFormatted, string directory, string personDirectory, string checkFile) in collection)
|
||||
{
|
||||
@ -1359,6 +1341,25 @@ public class MapLogic : Shared.Models.Methods.IMapLogic
|
||||
return results;
|
||||
}
|
||||
|
||||
public bool IsUsed(bool ignoreXMatches, int id, MappingFromLocation mappingFromLocation)
|
||||
{
|
||||
bool result;
|
||||
PersonContainer[]? personContainers;
|
||||
List<int>? wholePercentagesCollection;
|
||||
Dictionary<int, PersonContainer[]>? wholePercentagesToPersonContainers;
|
||||
result = _SkipCollection.TryGetValue(id, out wholePercentagesCollection) && wholePercentagesCollection.Contains(mappingFromLocation.WholePercentages);
|
||||
if (!result && _IdThenWholePercentagesToPersonContainers.TryGetValue(id, out wholePercentagesToPersonContainers))
|
||||
{
|
||||
if (wholePercentagesToPersonContainers.TryGetValue(mappingFromLocation.WholePercentages, out personContainers))
|
||||
{
|
||||
result = true;
|
||||
// if (!ignoreXMatches || personContainers.All(l => l.ApproximateYears is null && l.DisplayDirectoryName.First() != 'X'))
|
||||
// result = true;
|
||||
}
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
public bool InSkipCollection(int id, MappingFromLocation mappingFromLocation)
|
||||
{
|
||||
bool result;
|
||||
@ -1366,4 +1367,30 @@ public class MapLogic : Shared.Models.Methods.IMapLogic
|
||||
return result;
|
||||
}
|
||||
|
||||
public bool? IsFocusPerson(List<(string Directory, long PersonKey)> jLinkResolvedDirectories, int id, MappingFromLocation mappingFromLocation)
|
||||
{
|
||||
bool? result;
|
||||
PersonContainer[]? personContainers;
|
||||
Dictionary<int, PersonContainer[]>? wholePercentagesToPersonContainers;
|
||||
if (jLinkResolvedDirectories.Count == 0)
|
||||
result = null;
|
||||
else if (!_IdThenWholePercentagesToPersonContainers.TryGetValue(id, out wholePercentagesToPersonContainers))
|
||||
result = null;
|
||||
else if (!wholePercentagesToPersonContainers.TryGetValue(mappingFromLocation.WholePercentages, out personContainers))
|
||||
result = null;
|
||||
else
|
||||
{
|
||||
result = false;
|
||||
foreach (PersonContainer personContainer in personContainers)
|
||||
{
|
||||
if (jLinkResolvedDirectories.Any(l => personContainer.Key == l.PersonKey))
|
||||
{
|
||||
result = true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
}
|
Reference in New Issue
Block a user