Shortcut to reference

This commit is contained in:
2022-10-01 07:12:13 -07:00
parent b81d9e9862
commit 5d257b0bec
3 changed files with 62 additions and 40 deletions

View File

@ -654,28 +654,25 @@ internal abstract class MapLogic
return result;
}
internal static Dictionary<int, Dictionary<int, Mapping>> GetKeyValuePairs(Mapping[] mappingCollection)
private static SaveContainer GetSaveContainer(string directory, SortingContainer sortingContainer, Mapping mapping)
{
Dictionary<int, Dictionary<int, Mapping>> results = new();
Dictionary<int, Mapping> keyValuePairs;
foreach (Mapping mapping in mappingCollection)
{
if (!results.ContainsKey(mapping.MappingFromItem.Id))
results.Add(mapping.MappingFromItem.Id, new());
keyValuePairs = results[mapping.MappingFromItem.Id];
if (keyValuePairs.ContainsKey(mapping.MappingFromLocation.NormalizedPixelPercentage))
throw new NotSupportedException();
keyValuePairs.Add(mapping.MappingFromLocation.NormalizedPixelPercentage, mapping);
}
return results;
SaveContainer result;
string checkFile = string.Empty;
FileHolder? faceFileHolder = null;
FileHolder? facePartsFileHolder = null;
FileHolder? hiddenFaceFileHolder = null;
string shortcutFile = Path.Combine(directory, $"{sortingContainer.Mapping.MappingFromLocation.DeterministicHashCodeKey}{sortingContainer.Mapping.MappingFromItem.ImageFileHolder.ExtensionLowered}.lnk");
result = new(checkFile, directory, faceFileHolder, hiddenFaceFileHolder, facePartsFileHolder, mapping.MappingFromItem.ResizedFileHolder, shortcutFile);
return result;
}
internal static List<SaveContainer> GetSaveContainers(Configuration configuration, string eDistanceContentTicksDirectory, string dFacesContentDirectory, string d2FacePartsContentDirectory, Mapping[] mappingCollection, int? useFiltersCounter, bool saveMapped)
internal static List<SaveContainer> GetSaveContainers(Configuration configuration, string eDistanceContentTicksDirectory, string dFacesContentDirectory, string d2FacePartsContentDirectory, Mapping[] mappingCollection, Dictionary<int, Dictionary<int, Mapping>> idToNormalizedPixelPercentageToMapping, int? useFiltersCounter, bool saveMapped)
{
List<SaveContainer> results = new();
string by;
string checkFile;
bool isByMapping;
bool isBySorting;
string directory;
string shortcutFile;
string facesDirectory;
@ -687,6 +684,7 @@ internal abstract class MapLogic
SaveContainer saveContainer;
FileHolder facePartsFileHolder;
FileHolder hiddenFaceFileHolder;
Dictionary<int, Mapping>? normalizedPixelPercentageToMapping;
string forceSingleImageHumanized = nameof(IMapLogic.ForceSingleImage).Humanize(LetterCasing.Title);
foreach (Mapping mapping in mappingCollection)
{
@ -700,25 +698,27 @@ internal abstract class MapLogic
if (mapping.MappingFromPerson.By is null)
{
isByMapping = false;
isBySorting = false;
by = $"{nameof(IMapLogic.Mapping)}Null";
}
else if (useFiltersCounter.HasValue && mapping.MappingFromPerson.By.Value == IMapLogic.Sorting)
{
isByMapping = false;
by = $"{nameof(IMapLogic.Sorting)} Modified Filters - {useFiltersCounter.Value}";
}
else
{
isByMapping = mapping.MappingFromPerson.By == IMapLogic.Mapping;
isBySorting = mapping.MappingFromPerson.By == IMapLogic.Sorting;
if (isByMapping && !saveMapped)
continue;
by = mapping.MappingFromPerson.By.Value switch
if (isBySorting && useFiltersCounter.HasValue)
by = $"{nameof(IMapLogic.Sorting)} Modified Filters - {useFiltersCounter.Value}";
else
{
IMapLogic.Mapping => nameof(IMapLogic.Mapping),
IMapLogic.Sorting => nameof(IMapLogic.Sorting),
IMapLogic.ForceSingleImage => forceSingleImageHumanized,
_ => throw new NotImplementedException()
};
by = mapping.MappingFromPerson.By.Value switch
{
IMapLogic.Mapping => nameof(IMapLogic.Mapping),
IMapLogic.Sorting => nameof(IMapLogic.Sorting),
IMapLogic.ForceSingleImage => forceSingleImageHumanized,
_ => throw new NotImplementedException()
};
}
}
personKeyFormatted = IPersonBirthday.GetFormatted(configuration.PersonBirthdayFormat, mapping.MappingFromPerson.PersonBirthday);
directory = Path.Combine(eDistanceContentTicksDirectory, by, personKeyFormatted, mapping.MappingFromPerson.SegmentB);
@ -747,6 +747,14 @@ internal abstract class MapLogic
saveContainer = new(checkFile, directory, faceFileHolder, hiddenFaceFileHolder, facePartsFileHolder, mapping.MappingFromItem.ResizedFileHolder, shortcutFile);
}
results.Add(saveContainer);
if (!isBySorting || mapping.SortingContainer is null)
continue;
if (!idToNormalizedPixelPercentageToMapping.TryGetValue(mapping.SortingContainer.Sorting.Id, out normalizedPixelPercentageToMapping))
continue;
if (!normalizedPixelPercentageToMapping.ContainsKey(mapping.SortingContainer.Sorting.NormalizedPixelPercentage))
continue;
saveContainer = GetSaveContainer(directory, mapping.SortingContainer, normalizedPixelPercentageToMapping[mapping.SortingContainer.Sorting.NormalizedPixelPercentage]);
results.Add(saveContainer);
}
return results;
}