CopyAtLeastOneMappedFiles
This commit is contained in:
@ -687,11 +687,11 @@ public class MapLogic : Shared.Models.Methods.IMapLogic
|
||||
string mappingSegmentB;
|
||||
string personDirectory;
|
||||
string? facesDirectory;
|
||||
int? normalizedRectangle;
|
||||
string personKeyFormatted;
|
||||
string personDisplayFileName;
|
||||
PersonBirthday personBirthday;
|
||||
string? personDisplayDirectory;
|
||||
int? normalizedRectangle;
|
||||
WindowsShortcut windowsShortcut;
|
||||
Dictionary<int, Mapping>? normalizedRectangleToMapping;
|
||||
string by = nameof(Shared.Models.Stateless.IMapLogic.ManualCopy);
|
||||
@ -731,7 +731,7 @@ public class MapLogic : Shared.Models.Methods.IMapLogic
|
||||
if (string.IsNullOrEmpty(directoryName))
|
||||
throw new NotSupportedException();
|
||||
shortcutFile = Path.Combine(personDisplayDirectory, $"{personDisplayFileName}.lnk");
|
||||
facesDirectory = GetFacesDirectory(dFacesContentDirectory, mapping.MappingFromItem); // Path.Combine($"{dFacesContentDirectory}{directoryName}", mapping.MappingFromItem.ImageFileHolder.NameWithoutExtension);
|
||||
facesDirectory = GetFacesDirectory(dFacesContentDirectory, mapping.MappingFromItem);
|
||||
if (facesDirectory is null)
|
||||
continue;
|
||||
faceFileName = $"{mapping.MappingFromLocation.DeterministicHashCodeKey}{mapping.MappingFromItem.ImageFileHolder.ExtensionLowered}{_Configuration.FacesFileNameExtension}";
|
||||
@ -768,6 +768,61 @@ public class MapLogic : Shared.Models.Methods.IMapLogic
|
||||
}
|
||||
}
|
||||
|
||||
public void CopyAtLeastOneMappedFiles(char personCharactersToCopyTo, string dFacesContentDirectory, string a2PeopleSingletonDirectory, Mapping[] mappingCollection)
|
||||
{
|
||||
if (_Configuration is null)
|
||||
throw new NullReferenceException(nameof(_Configuration));
|
||||
long personKey;
|
||||
string fileName;
|
||||
string faceFile;
|
||||
string directory;
|
||||
string faceFileName;
|
||||
string? directoryName;
|
||||
string? facesDirectory;
|
||||
PersonContainer? personContainer;
|
||||
Dictionary<long, int> personKeyToCount = new();
|
||||
foreach (Mapping mapping in mappingCollection)
|
||||
{
|
||||
directoryName = Path.GetDirectoryName(mapping.MappingFromItem.RelativePath);
|
||||
if (directoryName is null)
|
||||
throw new NotSupportedException();
|
||||
if (mapping.MappingFromItem.ResizedFileHolder.DirectoryName is null || !mapping.MappingFromItem.ResizedFileHolder.Exists)
|
||||
continue;
|
||||
if (mapping.By is null or Shared.Models.Stateless.IMapLogic.Sorting || mapping.MappingFromPerson?.ApproximateYears is null)
|
||||
continue;
|
||||
if (string.IsNullOrEmpty(mapping.MappingFromPerson.SegmentB))
|
||||
throw new NotSupportedException();
|
||||
if (string.IsNullOrEmpty(mapping.MappingFromPerson.DisplayDirectoryName))
|
||||
throw new NotSupportedException();
|
||||
facesDirectory = GetFacesDirectory(dFacesContentDirectory, mapping.MappingFromItem);
|
||||
if (facesDirectory is null)
|
||||
continue;
|
||||
faceFileName = $"{mapping.MappingFromLocation.DeterministicHashCodeKey}{mapping.MappingFromItem.ImageFileHolder.ExtensionLowered}{_Configuration.FacesFileNameExtension}";
|
||||
faceFile = Path.Combine(facesDirectory, faceFileName);
|
||||
personKey = mapping.MappingFromPerson.PersonBirthday.Value.Ticks;
|
||||
if (!personKeyToCount.ContainsKey(personKey))
|
||||
personKeyToCount.Add(personKey, 0);
|
||||
if (personKeyToCount[personKey] > 1)
|
||||
continue;
|
||||
if (!_PersonKeyToPersonContainer.TryGetValue(personKey, out personContainer))
|
||||
continue;
|
||||
if (personContainer.Char is null || personContainer.Char != personCharactersToCopyTo)
|
||||
continue;
|
||||
if (personContainer.DisplayDirectoryAllFiles.Any(l => l.EndsWith(faceFileName)))
|
||||
continue;
|
||||
if (!File.Exists(faceFile))
|
||||
continue;
|
||||
directory = Path.Combine(a2PeopleSingletonDirectory, personCharactersToCopyTo.ToString(), personContainer.DisplayDirectoryName);
|
||||
if (!Directory.Exists(directory))
|
||||
continue;
|
||||
fileName = Path.Combine(directory, faceFileName);
|
||||
if (File.Exists(fileName))
|
||||
continue;
|
||||
personKeyToCount[personKey] += 1;
|
||||
File.Copy(faceFile, fileName);
|
||||
}
|
||||
}
|
||||
|
||||
public void SaveNotMappedTicks()
|
||||
{
|
||||
if (_Configuration is null)
|
||||
@ -1000,18 +1055,6 @@ public class MapLogic : Shared.Models.Methods.IMapLogic
|
||||
}
|
||||
}
|
||||
foreach (Mapping mapping in mappingCollection)
|
||||
{
|
||||
if (mapping.MappingFromItem.ResizedFileHolder.DirectoryName is null || !mapping.MappingFromItem.ResizedFileHolder.Exists)
|
||||
continue;
|
||||
if (mapping.By is null or Shared.Models.Stateless.IMapLogic.Sorting || mapping.MappingFromPerson?.ApproximateYears is null)
|
||||
continue;
|
||||
if (string.IsNullOrEmpty(mapping.MappingFromPerson.SegmentB))
|
||||
throw new NotSupportedException();
|
||||
if (string.IsNullOrEmpty(mapping.MappingFromPerson.DisplayDirectoryName))
|
||||
throw new NotSupportedException();
|
||||
personKeyFormatted = IPersonBirthday.GetFormatted(_Configuration.PersonBirthdayFormat, mapping.MappingFromPerson.PersonBirthday);
|
||||
}
|
||||
foreach (Mapping mapping in mappingCollection)
|
||||
{
|
||||
directoryName = Path.GetDirectoryName(mapping.MappingFromItem.RelativePath);
|
||||
if (directoryName is null)
|
||||
@ -1119,7 +1162,7 @@ public class MapLogic : Shared.Models.Methods.IMapLogic
|
||||
if (normalizedRectangles is not null && normalizedRectangles.Contains(mapping.MappingFromLocation.NormalizedRectangle))
|
||||
continue;
|
||||
directoryName = Path.GetDirectoryName(mapping.MappingFromItem.RelativePath);
|
||||
facesDirectory = GetFacesDirectory(dFacesContentDirectory, mapping.MappingFromItem); // Path.Combine($"{dFacesContentDirectory}{directoryName}", mapping.MappingFromItem.ImageFileHolder.NameWithoutExtension);
|
||||
facesDirectory = GetFacesDirectory(dFacesContentDirectory, mapping.MappingFromItem);
|
||||
if (facesDirectory is null)
|
||||
continue;
|
||||
faceFileHolder = new(Path.Combine(facesDirectory, $"{mapping.MappingFromLocation.DeterministicHashCodeKey}{mapping.MappingFromItem.ImageFileHolder.ExtensionLowered}{_Configuration.FacesFileNameExtension}"));
|
||||
|
Reference in New Issue
Block a user