Removed CopyManualFiles
Updated Tests
This commit is contained in:
@ -59,7 +59,7 @@ public class MapLogic : Shared.Models.Methods.IMapLogic
|
||||
Stateless.MapLogic.SetSkipCollections(configuration, personContainers, a2PeopleSingletonDirectory, skipCollection, skipNotSkipCollection);
|
||||
List<Stateless.MapLogic.Record> records = Stateless.MapLogic.SetPersonCollectionsAndGetRecords(configuration, ticks, personContainers, eDistanceContentDirectory);
|
||||
ReadOnlyCollection<(Stateless.MapLogic.PersonKeyFormattedIdThenWholePercentages, PersonContainer)> readOnlyPossiblyNewPersonDisplayDirectoryNamesAndPersonContainer;
|
||||
locationContainers.AddRange(Stateless.MapLogic.GetLocationContainers(distance, maxDegreeOfParallelism, configuration, ticks, personContainers, eDistanceContentDirectory, skipCollection, records));
|
||||
locationContainers.AddRange(Stateless.MapLogic.GetLocationContainers(distance, maxDegreeOfParallelism, configuration, ticks, personContainers, eDistanceContentDirectory, eDistanceContentTicksDirectory, skipCollection, records));
|
||||
int lossCount = records.Count - locationContainers.Count;
|
||||
ReadOnlyCollection<Stateless.MapLogic.PersonKeyFormattedIdThenWholePercentages> personKeyFormattedIdThenWholePercentagesCollection = Stateless.MapLogic.GetPersonKeyFormattedIdThenWholePercentages(configuration, ticks, records);
|
||||
int unableToMatchCount = records.Count - personKeyFormattedIdThenWholePercentagesCollection.Count;
|
||||
@ -720,104 +720,6 @@ public class MapLogic : Shared.Models.Methods.IMapLogic
|
||||
return result;
|
||||
}
|
||||
|
||||
public void CopyManualFiles(string dFacesContentDirectory, ReadOnlyDictionary<int, ReadOnlyDictionary<int, Mapping>> idToWholePercentagesToMapping)
|
||||
{
|
||||
if (_Configuration is null)
|
||||
throw new NullReferenceException(nameof(_Configuration));
|
||||
int? id;
|
||||
string faceFile;
|
||||
Mapping? mapping;
|
||||
string checkFile;
|
||||
string directory;
|
||||
FileInfo fileInfo;
|
||||
const int zero = 0;
|
||||
string faceFileName;
|
||||
string shortcutFile;
|
||||
string facesDirectory;
|
||||
int? wholePercentages;
|
||||
string? directoryName;
|
||||
string mappingSegmentB;
|
||||
string personDirectory;
|
||||
string personKeyFormatted;
|
||||
string personDisplayFileName;
|
||||
PersonBirthday personBirthday;
|
||||
string? personDisplayDirectory;
|
||||
WindowsShortcut windowsShortcut;
|
||||
ReadOnlyDictionary<int, Mapping>? wholePercentagesToMapping;
|
||||
string by = nameof(Shared.Models.Stateless.IMapLogic.ManualCopy);
|
||||
ReadOnlyDictionary<int, ReadOnlyCollection<PersonContainer>>? wholePercentagesToPeronContainerCollection;
|
||||
string successful = $"_ {nameof(Shared.Models.Stateless.IMapLogic.ManualCopy).Humanize(LetterCasing.Title)} Successful";
|
||||
foreach (KeyValuePair<long, PersonContainer> personKeyToPersonContainer in _PersonKeyToPersonContainer)
|
||||
{
|
||||
if (personKeyToPersonContainer.Value.Key is null || personKeyToPersonContainer.Value.Birthdays is null || personKeyToPersonContainer.Value.Birthdays.Length == 0 || personKeyToPersonContainer.Value.PersonDirectory is null)
|
||||
continue;
|
||||
personBirthday = personKeyToPersonContainer.Value.Birthdays[zero];
|
||||
foreach (string personDisplayDirectoryAllFile in personKeyToPersonContainer.Value.DisplayDirectoryAllFiles)
|
||||
{
|
||||
if (!personDisplayDirectoryAllFile.EndsWith(_Configuration.FacesFileNameExtension))
|
||||
continue;
|
||||
(id, wholePercentages) = IMapping.GetConverted(_Configuration.FacesFileNameExtension, personDisplayDirectoryAllFile);
|
||||
if (id is null || wholePercentages is null)
|
||||
continue;
|
||||
fileInfo = new(personDisplayDirectoryAllFile);
|
||||
if (!fileInfo.Exists)
|
||||
continue;
|
||||
personDisplayFileName = Path.GetFileName(personDisplayDirectoryAllFile);
|
||||
personDisplayDirectory = Path.GetDirectoryName(personDisplayDirectoryAllFile);
|
||||
personKeyFormatted = IPersonBirthday.GetFormatted(_Configuration.PersonBirthdayFormat, personBirthday);
|
||||
mappingSegmentB = Stateless.MapLogic.GetMappingSegmentB(_Ticks, personBirthday, personKeyToPersonContainer.Value.ApproximateYears, fileInfo.CreationTime, isWrongYear: null);
|
||||
directory = Path.Combine(_EDistanceContentTicksDirectory, by, personKeyFormatted, mappingSegmentB);
|
||||
personDirectory = Path.Combine(directory, personKeyToPersonContainer.Value.DisplayDirectoryName, "lnk");
|
||||
if (!idToWholePercentagesToMapping.TryGetValue(id.Value, out wholePercentagesToMapping))
|
||||
continue;
|
||||
if (!wholePercentagesToMapping.TryGetValue(wholePercentages.Value, out mapping))
|
||||
continue;
|
||||
if (mapping.MappingFromLocation is null)
|
||||
continue;
|
||||
if (string.IsNullOrEmpty(personDisplayDirectory))
|
||||
throw new NotSupportedException();
|
||||
directoryName = Path.GetDirectoryName(mapping.MappingFromItem.RelativePath);
|
||||
if (string.IsNullOrEmpty(directoryName))
|
||||
throw new NotSupportedException();
|
||||
shortcutFile = Path.Combine(personDisplayDirectory, $"{personDisplayFileName}.lnk");
|
||||
facesDirectory = Stateless.MapLogic.GetFacesDirectory(_PropertyConfiguration, dFacesContentDirectory, mapping.MappingFromItem);
|
||||
faceFileName = $"{mapping.MappingFromLocation.DeterministicHashCodeKey}{mapping.MappingFromItem.ImageFileHolder.ExtensionLowered}{_Configuration.FacesFileNameExtension}";
|
||||
checkFile = Path.Combine(directory, fileInfo.Name);
|
||||
if (!_IdThenWholePercentagesToPersonContainers.TryGetValue(id.Value, out wholePercentagesToPeronContainerCollection) || !wholePercentagesToPeronContainerCollection.ContainsKey(wholePercentages.Value))
|
||||
{
|
||||
if (!Directory.Exists(personDirectory))
|
||||
_ = Directory.CreateDirectory(personDirectory);
|
||||
if (!File.Exists(checkFile))
|
||||
File.Copy(personDisplayDirectoryAllFile, checkFile);
|
||||
}
|
||||
if (personDisplayDirectoryAllFile.Contains(successful))
|
||||
continue;
|
||||
directoryName = Path.Combine(personDisplayDirectory, successful);
|
||||
if (!Directory.Exists(directoryName))
|
||||
_ = Directory.CreateDirectory(directoryName);
|
||||
checkFile = Path.Combine(directoryName, personDisplayFileName);
|
||||
if (File.Exists(checkFile))
|
||||
File.Delete(personDisplayDirectoryAllFile);
|
||||
else
|
||||
File.Move(personDisplayDirectoryAllFile, checkFile);
|
||||
faceFile = Path.Combine(facesDirectory, faceFileName);
|
||||
if (!File.Exists(faceFile))
|
||||
continue;
|
||||
if (File.Exists(shortcutFile))
|
||||
continue;
|
||||
if (personKeyToPersonContainer.Value.PersonDirectory.Char == ']')
|
||||
windowsShortcut = new() { Path = faceFile };
|
||||
else
|
||||
windowsShortcut = new() { Path = checkFile };
|
||||
windowsShortcut.Save(shortcutFile);
|
||||
windowsShortcut.Dispose();
|
||||
if (!File.Exists(shortcutFile))
|
||||
continue;
|
||||
File.SetLastWriteTime(shortcutFile, mapping.MappingFromItem.GetDateTimeOriginalThenMinimumDateTime());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private (string, PersonBirthday?) GetPersonBirthday(string[] directoryNames)
|
||||
{
|
||||
if (_Configuration is null)
|
||||
|
Reference in New Issue
Block a user