LocationContainerDebugDirectory
This commit is contained in:
@ -18,6 +18,11 @@ public partial class MapLogic : Shared.Models.Methods.IMapLogic
|
||||
[GeneratedRegex("[\\\\,\\/,\\:,\\*,\\?,\\\",\\<,\\>,\\|]")]
|
||||
private static partial Regex FileSystemSafe();
|
||||
|
||||
internal record Record(string? DebugDirectory,
|
||||
string? Directory,
|
||||
long? Ticks,
|
||||
string PersonDirectory);
|
||||
|
||||
public void SaveContainers(int? updated, List<SaveContainer> saveContainers)
|
||||
{
|
||||
if (_Configuration is null)
|
||||
@ -116,7 +121,11 @@ public partial class MapLogic : Shared.Models.Methods.IMapLogic
|
||||
continue;
|
||||
try
|
||||
{
|
||||
string description = saveContainer.FaceFileHolder is not null ? saveContainer.FaceFileHolder.Name : string.Empty;
|
||||
string description;
|
||||
if (saveContainer.FaceFileHolder is not null && saveContainer.FaceFileHolder.Name.StartsWith(saveContainer.ResizedFileHolder.Name))
|
||||
description = saveContainer.FaceFileHolder.Name;
|
||||
else
|
||||
description = saveContainer.ResizedFileHolder.Name;
|
||||
windowsShortcut = new() { Path = saveContainer.ResizedFileHolder.FullName, Description = description };
|
||||
windowsShortcut.Save(saveContainer.ShortcutFile);
|
||||
windowsShortcut.Dispose();
|
||||
@ -307,6 +316,8 @@ public partial class MapLogic : Shared.Models.Methods.IMapLogic
|
||||
{ }
|
||||
if (!string.IsNullOrEmpty(a2PeopleContentDirectory) && configuration.LocationContainerDistanceTolerance is not null)
|
||||
Stateless.MapLogic.SaveMappedRelations(configuration, distance, a2PeopleContentDirectory, eDistanceContentDirectory, ticks, locationContainers, readOnlyPersonKeyFormattedToPersonContainer, readOnlyPersonKeyToPersonContainerCollection);
|
||||
if (!string.IsNullOrEmpty(configuration.LocationContainerDebugDirectory))
|
||||
throw new Exception($"{nameof(configuration.LocationContainerDebugDirectory)} is not IsNullOrEmpty!");
|
||||
}
|
||||
_PersonKeyToCount = readOnlyPersonKeyToCount;
|
||||
_EDistanceContentTicksDirectory = eDistanceContentTicksDirectory;
|
||||
@ -469,7 +480,7 @@ public partial class MapLogic : Shared.Models.Methods.IMapLogic
|
||||
return (ticks, directory);
|
||||
}
|
||||
|
||||
private static bool PreAndPostContinue(Configuration configuration, ReadOnlyDictionary<int, ReadOnlyDictionary<int, Mapping>> idToWholePercentagesToMapping, Sorting sorting, Mapping mapping, Mapping keyMapping)
|
||||
private static bool PreAndPostContinue(Configuration configuration, Mapping mapping, Mapping keyMapping)
|
||||
{
|
||||
bool result = true;
|
||||
if (result && mapping.MappingFromFilterPre.InSkipCollection is not null && mapping.MappingFromFilterPre.InSkipCollection.Value)
|
||||
@ -493,13 +504,15 @@ public partial class MapLogic : Shared.Models.Methods.IMapLogic
|
||||
return result;
|
||||
}
|
||||
|
||||
private (string?, long?, string) Get(Configuration configuration, bool saveIndividually, string by, Mapping question, int padLeft)
|
||||
private Record Get(Configuration configuration, bool saveIndividually, string by, Mapping question, int padLeft)
|
||||
{
|
||||
long? ticks;
|
||||
string? directory;
|
||||
string? debugDirectory;
|
||||
string personDirectory;
|
||||
if (question.MappingFromPerson is null)
|
||||
{
|
||||
debugDirectory = null;
|
||||
(ticks, directory) = GetDirectory(configuration, saveIndividually, padLeft, question.SegmentC, by, question.MappingFromItem);
|
||||
personDirectory = directory is null ? string.Empty : Path.Combine(directory, $"X+{ticks}");
|
||||
}
|
||||
@ -507,34 +520,34 @@ public partial class MapLogic : Shared.Models.Methods.IMapLogic
|
||||
{
|
||||
ticks = null;
|
||||
string personKeyFormatted = IPersonBirthday.GetFormatted(configuration.PersonBirthdayFormat, question.MappingFromPerson.PersonKey);
|
||||
debugDirectory = Path.Combine(_EDistanceContentTicksDirectory, by, personKeyFormatted, question.MappingFromPerson.DisplayDirectoryName);
|
||||
if (string.IsNullOrEmpty(question.SegmentC))
|
||||
directory = Path.Combine(_EDistanceContentTicksDirectory, by, personKeyFormatted, question.MappingFromPerson.SegmentB);
|
||||
else if (saveIndividually)
|
||||
directory = Path.Combine(_EDistanceContentTicksDirectory, by, question.SegmentC.PadLeft(padLeft, '0'), personKeyFormatted, question.MappingFromPerson.SegmentB);
|
||||
else if (!saveIndividually)
|
||||
directory = Path.Combine(_EDistanceContentTicksDirectory, by, personKeyFormatted, $"Z-{question.MappingFromPerson.SegmentB}-{question.SegmentC}");
|
||||
else
|
||||
directory = Path.Combine(_EDistanceContentTicksDirectory, by, personKeyFormatted, question.MappingFromPerson.SegmentB, question.SegmentC);
|
||||
directory = Path.Combine(_EDistanceContentTicksDirectory, by, question.SegmentC.PadLeft(padLeft, '0'), personKeyFormatted, question.MappingFromPerson.SegmentB);
|
||||
personDirectory = Path.Combine(directory, question.MappingFromPerson.DisplayDirectoryName, "lnk");
|
||||
}
|
||||
return (directory, ticks, personDirectory);
|
||||
return new(debugDirectory, directory, ticks, personDirectory);
|
||||
}
|
||||
|
||||
private List<SaveContainer> GetSaveContainers(string dFacesContentDirectory, string d2FacePartsContentDirectory, string d2FacePartsContentCollectionDirectory, ReadOnlyCollection<Mapping> mappingCollection, ReadOnlyDictionary<int, ReadOnlyDictionary<int, Mapping>> idToWholePercentagesToMapping, ReadOnlyDictionary<long, List<int>> personKeyToIds, int? useFiltersCounter, bool saveMapped, bool saveIndividually, bool sortingContainersAny)
|
||||
private List<SaveContainer> GetSaveContainers(string dFacesContentDirectory, string d2FacePartsContentDirectory, ReadOnlyCollection<Mapping> mappingCollection, ReadOnlyDictionary<int, ReadOnlyDictionary<int, Mapping>> idToWholePercentagesToMapping, ReadOnlyDictionary<long, List<int>> personKeyToIds, int? useFiltersCounter, bool saveMapped, bool saveIndividually, bool sortingContainersAny)
|
||||
{
|
||||
if (_Configuration is null)
|
||||
throw new NullReferenceException(nameof(_Configuration));
|
||||
List<SaveContainer> results = new();
|
||||
string by;
|
||||
long? ticks;
|
||||
Record record;
|
||||
List<int>? ids;
|
||||
bool isByMapping;
|
||||
bool isBySorting;
|
||||
Sorting? sorting;
|
||||
string checkFile;
|
||||
string? directory;
|
||||
Mapping? question;
|
||||
string? directory;
|
||||
string shortcutFile;
|
||||
string facesDirectory;
|
||||
string personDirectory;
|
||||
FileHolder faceFileHolder;
|
||||
string facePartsDirectory;
|
||||
SaveContainer? saveContainer;
|
||||
@ -569,12 +582,13 @@ public partial class MapLogic : Shared.Models.Methods.IMapLogic
|
||||
throw new NotSupportedException();
|
||||
if (!wholePercentagesToMapping.TryGetValue(sorting.WholePercentages, out question))
|
||||
throw new NotSupportedException();
|
||||
if (!PreAndPostContinue(_Configuration, idToWholePercentagesToMapping, sorting, mapping, question))
|
||||
if (!PreAndPostContinue(_Configuration, mapping, question))
|
||||
continue;
|
||||
}
|
||||
(directory, ticks, personDirectory) = Get(_Configuration, saveIndividually, by, mapping, padLeft);
|
||||
if (string.IsNullOrEmpty(directory))
|
||||
record = Get(_Configuration, saveIndividually, by, mapping, padLeft);
|
||||
if (string.IsNullOrEmpty(record.Directory))
|
||||
throw new NotSupportedException();
|
||||
directory = record.Directory;
|
||||
if (mapping.MappingFromPerson is not null)
|
||||
{
|
||||
if (saveIndividually)
|
||||
@ -589,15 +603,15 @@ public partial class MapLogic : Shared.Models.Methods.IMapLogic
|
||||
{
|
||||
if (!_Configuration.SaveSortingWithoutPerson)
|
||||
continue;
|
||||
if (ticks is null)
|
||||
if (record.Ticks is null)
|
||||
continue;
|
||||
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+{record.Ticks}")));
|
||||
}
|
||||
}
|
||||
results.Add(new(personDirectory));
|
||||
results.Add(new(record.PersonDirectory));
|
||||
if (question is not null)
|
||||
{
|
||||
if (question.MappingFromLocation is null)
|
||||
@ -611,7 +625,7 @@ public partial class MapLogic : Shared.Models.Methods.IMapLogic
|
||||
continue;
|
||||
if (isByMapping)
|
||||
{
|
||||
checkFile = Path.Combine(personDirectory, $"{mapping.MappingFromLocation.DeterministicHashCodeKey}{mapping.MappingFromItem.ImageFileHolder.ExtensionLowered}");
|
||||
checkFile = Path.Combine(record.PersonDirectory, $"{mapping.MappingFromLocation.DeterministicHashCodeKey}{mapping.MappingFromItem.ImageFileHolder.ExtensionLowered}");
|
||||
saveContainer = new(checkFile, directory, faceFileHolder);
|
||||
}
|
||||
else if (saveIndividually)
|
||||
@ -625,7 +639,7 @@ public partial class MapLogic : Shared.Models.Methods.IMapLogic
|
||||
else
|
||||
{
|
||||
facePartsDirectory = Stateless.MapLogic.GetFacePartsDirectory(_PropertyConfiguration, d2FacePartsContentDirectory, mapping.MappingFromItem);
|
||||
shortcutFile = Path.Combine(personDirectory, $"{mapping.MappingFromLocation.DeterministicHashCodeKey}{mapping.MappingFromItem.ImageFileHolder.ExtensionLowered}.lnk");
|
||||
shortcutFile = Path.Combine(record.PersonDirectory, $"{mapping.MappingFromLocation.DeterministicHashCodeKey}{mapping.MappingFromItem.ImageFileHolder.ExtensionLowered}.lnk");
|
||||
checkFile = Path.Combine(directory, $"{mapping.MappingFromLocation.DeterministicHashCodeKey}{mapping.MappingFromItem.ImageFileHolder.ExtensionLowered}");
|
||||
hiddenFaceFileHolder = new(Path.Combine(facesDirectory, $"{mapping.MappingFromLocation.DeterministicHashCodeKey}{mapping.MappingFromItem.ImageFileHolder.ExtensionLowered}{_Configuration.FacesHiddenFileNameExtension}"));
|
||||
facePartsFileHolder = new(Path.Combine(facePartsDirectory, $"{mapping.MappingFromLocation.DeterministicHashCodeKey}{mapping.MappingFromItem.ImageFileHolder.ExtensionLowered}{_Configuration.FacePartsFileNameExtension}"));
|
||||
@ -644,7 +658,7 @@ public partial class MapLogic : Shared.Models.Methods.IMapLogic
|
||||
bool saveMapped = true;
|
||||
int? useFiltersCounter = null;
|
||||
string mappingDirectory = Path.Combine(_EDistanceContentTicksDirectory, nameof(Shared.Models.Stateless.IMapLogic.Mapping));
|
||||
List<SaveContainer> saveContainers = GetSaveContainers(dFacesContentDirectory, d2FacePartsContentDirectory, d2FacePartsContentCollectionDirectory, mappingCollection, idToWholePercentagesToMapping, personKeyToIds, useFiltersCounter, saveMapped, sortingContainersAny: true, saveIndividually: false);
|
||||
List<SaveContainer> saveContainers = GetSaveContainers(dFacesContentDirectory, d2FacePartsContentDirectory, mappingCollection, idToWholePercentagesToMapping, personKeyToIds, useFiltersCounter, saveMapped, sortingContainersAny: true, saveIndividually: false);
|
||||
SaveContainers(updated, saveContainers);
|
||||
if (!string.IsNullOrEmpty(_EDistanceContentTicksDirectory) && Directory.Exists(mappingDirectory))
|
||||
Stateless.MapLogic.SaveMappingShortcuts(mappingDirectory);
|
||||
@ -759,14 +773,13 @@ public partial class MapLogic : Shared.Models.Methods.IMapLogic
|
||||
}
|
||||
List<SaveContainer> results = new();
|
||||
string by;
|
||||
long? ticks;
|
||||
Record record;
|
||||
bool isBySorting;
|
||||
string checkFile;
|
||||
Mapping? question;
|
||||
string? directory;
|
||||
string shortcutFile;
|
||||
string facesDirectory;
|
||||
string personDirectory;
|
||||
bool isCounterPersonYear;
|
||||
string facePartsDirectory;
|
||||
FileHolder? faceFileHolder;
|
||||
@ -786,9 +799,12 @@ public partial class MapLogic : Shared.Models.Methods.IMapLogic
|
||||
throw new NotSupportedException();
|
||||
if (question.MappingFromLocation is null)
|
||||
continue;
|
||||
(directory, ticks, personDirectory) = Get(_Configuration, _Configuration.SaveIndividually, by, question, padLeft);
|
||||
if (string.IsNullOrEmpty(directory))
|
||||
record = Get(_Configuration, _Configuration.SaveIndividually, by, question, padLeft);
|
||||
if (string.IsNullOrEmpty(record.Directory))
|
||||
throw new NotSupportedException();
|
||||
directory = record.Directory;
|
||||
if (!string.IsNullOrEmpty(record.DebugDirectory))
|
||||
results.Add(new(record.DebugDirectory));
|
||||
if (question.MappingFromPerson is not null)
|
||||
{
|
||||
if (_Configuration.SaveIndividually)
|
||||
@ -801,21 +817,21 @@ public partial class MapLogic : Shared.Models.Methods.IMapLogic
|
||||
{
|
||||
if (!_Configuration.SaveSortingWithoutPerson)
|
||||
throw new NotSupportedException();
|
||||
if (ticks is null)
|
||||
if (record.Ticks is null)
|
||||
continue;
|
||||
if (_Configuration.SaveIndividually)
|
||||
{
|
||||
directory = Path.Combine(directory, question.MappingFromItem.Id.ToString());
|
||||
results.Add(new(Path.Combine(directory, $"X+{ticks}")));
|
||||
results.Add(new(Path.Combine(directory, $"X+{record.Ticks}")));
|
||||
}
|
||||
}
|
||||
results.Add(new(personDirectory));
|
||||
results.Add(new(record.PersonDirectory));
|
||||
if (_Configuration.SaveIndividually && question.MappingFromLocation.WholePercentages == question.MappingFromLocation.WholePercentages)
|
||||
results.Add(new(Path.Combine(directory, "Maybe")));
|
||||
facesDirectory = Stateless.MapLogic.GetFacesDirectory(_PropertyConfiguration, dFacesContentDirectory, question.MappingFromItem);
|
||||
faceFileHolder = new(Path.Combine(facesDirectory, $"{question.MappingFromLocation.DeterministicHashCodeKey}{question.MappingFromItem.ImageFileHolder.ExtensionLowered}{_Configuration.FacesFileNameExtension}"));
|
||||
facePartsDirectory = Stateless.MapLogic.GetFacePartsDirectory(_PropertyConfiguration, d2FacePartsContentDirectory, question.MappingFromItem);
|
||||
shortcutFile = Path.Combine(personDirectory, $"{question.MappingFromLocation.DeterministicHashCodeKey}{question.MappingFromItem.ImageFileHolder.ExtensionLowered}.lnk");
|
||||
shortcutFile = Path.Combine(record.PersonDirectory, $"{question.MappingFromLocation.DeterministicHashCodeKey}{question.MappingFromItem.ImageFileHolder.ExtensionLowered}.lnk");
|
||||
checkFile = Path.Combine(directory, $"{question.MappingFromLocation.DeterministicHashCodeKey}{question.MappingFromItem.ImageFileHolder.ExtensionLowered}");
|
||||
hiddenFaceFileHolder = new(Path.Combine(facesDirectory, $"{question.MappingFromLocation.DeterministicHashCodeKey}{question.MappingFromItem.ImageFileHolder.ExtensionLowered}{_Configuration.FacesHiddenFileNameExtension}"));
|
||||
facePartsFileHolder = new(Path.Combine(facePartsDirectory, $"{question.MappingFromLocation.DeterministicHashCodeKey}{question.MappingFromItem.ImageFileHolder.ExtensionLowered}{_Configuration.FacePartsFileNameExtension}"));
|
||||
@ -893,7 +909,7 @@ public partial class MapLogic : Shared.Models.Methods.IMapLogic
|
||||
throw new NotSupportedException(nameof(GetSortingCollection));
|
||||
if (keyMapping.MappingFromFilterPost.CanReMap is not null && !keyMapping.MappingFromFilterPost.CanReMap.Value)
|
||||
throw new NotSupportedException(nameof(GetSortingCollection));
|
||||
if (!PreAndPostContinue(_Configuration, idToWholePercentagesToMapping, sorting, sortingContainer.Source, keyMapping))
|
||||
if (!PreAndPostContinue(_Configuration, sortingContainer.Source, keyMapping))
|
||||
continue;
|
||||
if (!idToWholePercentagesCollection.TryGetValue(sorting.Id, out wholePercentagesCollection))
|
||||
{
|
||||
|
Reference in New Issue
Block a user