Format
This commit is contained in:
parent
0a940b4cee
commit
669762bdc9
@ -270,7 +270,7 @@ public partial class DlibDotNet
|
|||||||
mapLogic = new(_AppSettings.MaxDegreeOfParallelism, _Configuration.PropertyConfiguration, _MapConfiguration, _Distance, personContainers, ticks, a2PeopleContentDirectory, a2PeopleSingletonDirectory, eDistanceContentDirectory);
|
mapLogic = new(_AppSettings.MaxDegreeOfParallelism, _Configuration.PropertyConfiguration, _MapConfiguration, _Distance, personContainers, ticks, a2PeopleContentDirectory, a2PeopleSingletonDirectory, eDistanceContentDirectory);
|
||||||
foreach (string outputResolution in _Configuration.OutputResolutions)
|
foreach (string outputResolution in _Configuration.OutputResolutions)
|
||||||
{
|
{
|
||||||
if (outputResolution.Any(l => char.IsNumber(l)))
|
if (outputResolution.Any(char.IsNumber))
|
||||||
continue;
|
continue;
|
||||||
configurationOutputResolutionsHas = true;
|
configurationOutputResolutionsHas = true;
|
||||||
if (!runToDoCollectionFirst)
|
if (!runToDoCollectionFirst)
|
||||||
|
@ -38,7 +38,7 @@ public class Face : Properties.IFace
|
|||||||
{
|
{
|
||||||
DateTime?[] dateTimes;
|
DateTime?[] dateTimes;
|
||||||
_OutputResolution = new(outputResolutionHeight, outputResolutionOrientation, outputResolutionWidth);
|
_OutputResolution = new(outputResolutionHeight, outputResolutionOrientation, outputResolutionWidth);
|
||||||
dateTimes = new DateTime?[] { property.CreationTime, property.LastWriteTime, property.DateTime, property.DateTimeDigitized, property.DateTimeFromName, property.DateTimeOriginal, property.GPSDateStamp };
|
dateTimes = [property.CreationTime, property.LastWriteTime, property.DateTime, property.DateTimeDigitized, property.DateTimeFromName, property.DateTimeOriginal, property.GPSDateStamp];
|
||||||
_DateTime = (from l in dateTimes where l.HasValue select l.Value).Min();
|
_DateTime = (from l in dateTimes where l.HasValue select l.Value).Min();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -189,7 +189,7 @@ public class FaceFileSystem : FileSystem, Properties.IFaceFileSystem
|
|||||||
{
|
{
|
||||||
int order = 0;
|
int order = 0;
|
||||||
double len = _SourceSize.Value;
|
double len = _SourceSize.Value;
|
||||||
string[] sizes = { "B", "KB", "MB", "GB", "TB" };
|
string[] sizes = ["B", "KB", "MB", "GB", "TB"];
|
||||||
while (len >= 1024 && order < sizes.Length - 1)
|
while (len >= 1024 && order < sizes.Length - 1)
|
||||||
{
|
{
|
||||||
order++;
|
order++;
|
||||||
|
@ -52,7 +52,7 @@ public class Item : Properties.IItem
|
|||||||
}
|
}
|
||||||
|
|
||||||
public Item(FileHolder sourceDirectoryFileHolder, string relativePath, FileHolder imageFileInfo, bool? isNotUniqueAndNeedsReview, bool isUniqueFileName, bool isValidImageFormatExtension, Property? property, string[] alternateFileLines, bool? abandoned, bool? fileSizeChanged, bool? lastWriteTimeChanged) :
|
public Item(FileHolder sourceDirectoryFileHolder, string relativePath, FileHolder imageFileInfo, bool? isNotUniqueAndNeedsReview, bool isUniqueFileName, bool isValidImageFormatExtension, Property? property, string[] alternateFileLines, bool? abandoned, bool? fileSizeChanged, bool? lastWriteTimeChanged) :
|
||||||
this(alternateFileLines, new(), fileSizeChanged, imageFileInfo, isNotUniqueAndNeedsReview, isUniqueFileName, isValidImageFormatExtension, lastWriteTimeChanged, null, property, relativePath, null, sourceDirectoryFileHolder)
|
this(alternateFileLines, [], fileSizeChanged, imageFileInfo, isNotUniqueAndNeedsReview, isUniqueFileName, isValidImageFormatExtension, lastWriteTimeChanged, null, property, relativePath, null, sourceDirectoryFileHolder)
|
||||||
{
|
{
|
||||||
if (relativePath.EndsWith(".json"))
|
if (relativePath.EndsWith(".json"))
|
||||||
throw new ArgumentException("Can not be a *.json file!");
|
throw new ArgumentException("Can not be a *.json file!");
|
||||||
@ -61,7 +61,7 @@ public class Item : Properties.IItem
|
|||||||
}
|
}
|
||||||
|
|
||||||
public Item(FileHolder sourceDirectoryFileHolder, string relativePath, bool isValidImageFormatExtension) :
|
public Item(FileHolder sourceDirectoryFileHolder, string relativePath, bool isValidImageFormatExtension) :
|
||||||
this(sourceDirectoryFileHolder, relativePath, sourceDirectoryFileHolder, null, false, isValidImageFormatExtension, null, Array.Empty<string>(), null, null, null)
|
this(sourceDirectoryFileHolder, relativePath, sourceDirectoryFileHolder, null, false, isValidImageFormatExtension, null, [], null, null, null)
|
||||||
{ }
|
{ }
|
||||||
|
|
||||||
public override string ToString()
|
public override string ToString()
|
||||||
|
@ -35,7 +35,7 @@ public record MappingFromItem(DateTime[] ContainerDateTimes,
|
|||||||
List<DateTime> dateTimes = item.Property.GetDateTimes();
|
List<DateTime> dateTimes = item.Property.GetDateTimes();
|
||||||
DateTime minimumDateTime = Stateless.Methods.IProperty.GetMinimumDateTime(item.Property);
|
DateTime minimumDateTime = Stateless.Methods.IProperty.GetMinimumDateTime(item.Property);
|
||||||
(bool? isWrongYear, _) = Stateless.Methods.IProperty.IsWrongYear(item.ImageFileHolder, item.Property.DateTimeOriginal, dateTimes);
|
(bool? isWrongYear, _) = Stateless.Methods.IProperty.IsWrongYear(item.ImageFileHolder, item.Property.DateTimeOriginal, dateTimes);
|
||||||
result = new(containerDateTimes, item.Property.DateTimeDigitized, item.Property.DateTimeOriginal, item.Property.Id.Value, item.ImageFileHolder, isWrongYear, item.Property.Keywords ?? Array.Empty<string>(), minimumDateTime, item.Property.Model, item.RelativePath, resizedFileHolder);
|
result = new(containerDateTimes, item.Property.DateTimeDigitized, item.Property.DateTimeOriginal, item.Property.Id.Value, item.ImageFileHolder, isWrongYear, item.Property.Keywords ?? [], minimumDateTime, item.Property.Model, item.RelativePath, resizedFileHolder);
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -27,15 +27,15 @@ public class PersonContainer : Properties.IPersonContainer
|
|||||||
}
|
}
|
||||||
|
|
||||||
public PersonContainer(char[] personCharacters, PersonBirthday birthday, string displayDirectoryName, PersonDirectory personDirectory) :
|
public PersonContainer(char[] personCharacters, PersonBirthday birthday, string displayDirectoryName, PersonDirectory personDirectory) :
|
||||||
this(Stateless.Methods.IAge.GetApproximateYears(personCharacters, displayDirectoryName), new PersonBirthday[] { birthday }, Array.Empty<string>(), displayDirectoryName, birthday.Value.Ticks, personDirectory)
|
this(Stateless.Methods.IAge.GetApproximateYears(personCharacters, displayDirectoryName), [birthday], [], displayDirectoryName, birthday.Value.Ticks, personDirectory)
|
||||||
{ }
|
{ }
|
||||||
|
|
||||||
public PersonContainer(int? approximateYears, PersonBirthday birthdays, string displayDirectoryName, long key) :
|
public PersonContainer(int? approximateYears, PersonBirthday birthdays, string displayDirectoryName, long key) :
|
||||||
this(approximateYears, new PersonBirthday[] { birthdays }, Array.Empty<string>(), displayDirectoryName, key, null)
|
this(approximateYears, [birthdays], [], displayDirectoryName, key, null)
|
||||||
{ }
|
{ }
|
||||||
|
|
||||||
public PersonContainer(int? approximateYears, PersonBirthday birthdays, PersonDirectory? personDirectory, string displayDirectoryName, long key) :
|
public PersonContainer(int? approximateYears, PersonBirthday birthdays, PersonDirectory? personDirectory, string displayDirectoryName, long key) :
|
||||||
this(approximateYears, new PersonBirthday[] { birthdays }, Array.Empty<string>(), displayDirectoryName, key, personDirectory)
|
this(approximateYears, [birthdays], [], displayDirectoryName, key, personDirectory)
|
||||||
{ }
|
{ }
|
||||||
|
|
||||||
public PersonContainer(int? approximateYears, string[] displayDirectoryAllFiles, string displayDirectoryName, PersonDirectory? personDirectory) :
|
public PersonContainer(int? approximateYears, string[] displayDirectoryAllFiles, string displayDirectoryName, PersonDirectory? personDirectory) :
|
||||||
|
@ -19,15 +19,15 @@ internal abstract class Container
|
|||||||
else
|
else
|
||||||
containerMaximumDateTime = (from l in items select l.ImageFileHolder.LastWriteTime).Max();
|
containerMaximumDateTime = (from l in items select l.ImageFileHolder.LastWriteTime).Max();
|
||||||
if (containerMinimumDateTime is null || containerMaximumDateTime is null)
|
if (containerMinimumDateTime is null || containerMaximumDateTime is null)
|
||||||
results = Array.Empty<DateTime>();
|
results = [];
|
||||||
else
|
else
|
||||||
results = new DateTime[] { containerMinimumDateTime.Value, containerMaximumDateTime.Value };
|
results = [containerMinimumDateTime.Value, containerMaximumDateTime.Value];
|
||||||
return results;
|
return results;
|
||||||
}
|
}
|
||||||
|
|
||||||
internal static Models.Item[] GetFilterItems(Properties.IPropertyConfiguration propertyConfiguration, Models.Container container)
|
internal static Models.Item[] GetFilterItems(Properties.IPropertyConfiguration propertyConfiguration, Models.Container container)
|
||||||
{
|
{
|
||||||
List<Models.Item> results = new();
|
List<Models.Item> results = [];
|
||||||
foreach (Models.Item item in container.Items)
|
foreach (Models.Item item in container.Items)
|
||||||
{
|
{
|
||||||
if (item.ImageFileHolder is not null
|
if (item.ImageFileHolder is not null
|
||||||
@ -68,7 +68,7 @@ internal abstract class Container
|
|||||||
string pathDirectoryName = Path.GetFileName(Path.GetDirectoryName(filePair.Path) ?? filePair.Path);
|
string pathDirectoryName = Path.GetFileName(Path.GetDirectoryName(filePair.Path) ?? filePair.Path);
|
||||||
string? alternateFile = alternateFilesCollectionDirectory is null ? null : Path.Combine(alternateFilesCollectionDirectory, pathDirectoryName, $"{Path.GetFileName(filePair.Path)}.tsv");
|
string? alternateFile = alternateFilesCollectionDirectory is null ? null : Path.Combine(alternateFilesCollectionDirectory, pathDirectoryName, $"{Path.GetFileName(filePair.Path)}.tsv");
|
||||||
if (!File.Exists(alternateFile))
|
if (!File.Exists(alternateFile))
|
||||||
results = Array.Empty<string>();
|
results = [];
|
||||||
else
|
else
|
||||||
results = File.ReadAllLines(alternateFile);
|
results = File.ReadAllLines(alternateFile);
|
||||||
return results;
|
return results;
|
||||||
@ -79,24 +79,24 @@ internal abstract class Container
|
|||||||
string[] results;
|
string[] results;
|
||||||
Models.Property? result;
|
Models.Property? result;
|
||||||
if (filePair.Match is null)
|
if (filePair.Match is null)
|
||||||
(result, results) = (null, Array.Empty<string>());
|
(result, results) = (null, []);
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
string json = File.ReadAllText(filePair.Match);
|
string json = File.ReadAllText(filePair.Match);
|
||||||
if (string.IsNullOrEmpty(json))
|
if (string.IsNullOrEmpty(json))
|
||||||
(result, results) = (null, Array.Empty<string>());
|
(result, results) = (null, []);
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
result = JsonSerializer.Deserialize(json, PropertyGenerationContext.Default.Property);
|
result = JsonSerializer.Deserialize(json, PropertyGenerationContext.Default.Property);
|
||||||
if (result is null)
|
if (result is null)
|
||||||
results = Array.Empty<string>();
|
results = [];
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
results = alternateFilesCollectionDirectory is null ? Array.Empty<string>() : GetAlternateFileLines(alternateFilesCollectionDirectory, filePair);
|
results = alternateFilesCollectionDirectory is null ? [] : GetAlternateFileLines(alternateFilesCollectionDirectory, filePair);
|
||||||
if (results.Any(l => l.Contains('!')))
|
if (results.Any(l => l.Contains('!')))
|
||||||
{
|
{
|
||||||
if (result.Keywords is null)
|
if (result.Keywords is null)
|
||||||
result = Models.Property.GetProperty(result, new string[] { "!" });
|
result = Models.Property.GetProperty(result, ["!"]);
|
||||||
else
|
else
|
||||||
result = Models.Property.GetProperty(result, result.Keywords.Concat(new string[] { "!" }).ToArray());
|
result = Models.Property.GetProperty(result, result.Keywords.Concat(new string[] { "!" }).ToArray());
|
||||||
}
|
}
|
||||||
@ -139,7 +139,7 @@ internal abstract class Container
|
|||||||
|
|
||||||
private static List<FilePair> GetFilePairs(Properties.IPropertyConfiguration propertyConfiguration, string aPropertySingletonDirectory, string filesCollectionDirectory, string extension, List<Models.FilePair> filePairs)
|
private static List<FilePair> GetFilePairs(Properties.IPropertyConfiguration propertyConfiguration, string aPropertySingletonDirectory, string filesCollectionDirectory, string extension, List<Models.FilePair> filePairs)
|
||||||
{
|
{
|
||||||
List<FilePair> results = new();
|
List<FilePair> results = [];
|
||||||
int maxDegreeOfParallelism = Environment.ProcessorCount;
|
int maxDegreeOfParallelism = Environment.ProcessorCount;
|
||||||
string? alternateResultAllInOne = !propertyConfiguration.ResultAllInOne.Contains(' ') ? null : propertyConfiguration.ResultAllInOne.Replace(' ', '-');
|
string? alternateResultAllInOne = !propertyConfiguration.ResultAllInOne.Contains(' ') ? null : propertyConfiguration.ResultAllInOne.Replace(' ', '-');
|
||||||
string? alternateFilesCollectionDirectory = alternateResultAllInOne is null ? null : Path.Combine(Path.GetDirectoryName(filesCollectionDirectory) ?? filesCollectionDirectory, alternateResultAllInOne);
|
string? alternateFilesCollectionDirectory = alternateResultAllInOne is null ? null : Path.Combine(Path.GetDirectoryName(filesCollectionDirectory) ?? filesCollectionDirectory, alternateResultAllInOne);
|
||||||
@ -151,13 +151,13 @@ internal abstract class Container
|
|||||||
|
|
||||||
private static (int, Models.Container[]) GetContainers(Properties.IPropertyConfiguration propertyConfiguration, string aPropertySingletonDirectory, string filesCollectionDirectory, List<string[]> filesCollection, string directorySearchFilter)
|
private static (int, Models.Container[]) GetContainers(Properties.IPropertyConfiguration propertyConfiguration, string aPropertySingletonDirectory, string filesCollectionDirectory, List<string[]> filesCollection, string directorySearchFilter)
|
||||||
{
|
{
|
||||||
List<Models.Container> results = new();
|
List<Models.Container> results = [];
|
||||||
string? directory;
|
string? directory;
|
||||||
List<Models.Item>? items;
|
List<Models.Item>? items;
|
||||||
Models.Container container;
|
Models.Container container;
|
||||||
const string extension = ".json";
|
const string extension = ".json";
|
||||||
List<string> directories = new();
|
List<string> directories = [];
|
||||||
Dictionary<string, List<Models.Item>> directoryToItems = new();
|
Dictionary<string, List<Models.Item>> directoryToItems = [];
|
||||||
foreach (string[] files in filesCollection)
|
foreach (string[] files in filesCollection)
|
||||||
{
|
{
|
||||||
if (files.Length == 0)
|
if (files.Length == 0)
|
||||||
@ -169,7 +169,7 @@ internal abstract class Container
|
|||||||
directories.Add(directory);
|
directories.Add(directory);
|
||||||
if (!directoryToItems.TryGetValue(directory, out items))
|
if (!directoryToItems.TryGetValue(directory, out items))
|
||||||
{
|
{
|
||||||
directoryToItems.Add(directory, new());
|
directoryToItems.Add(directory, []);
|
||||||
if (!directoryToItems.TryGetValue(directory, out items))
|
if (!directoryToItems.TryGetValue(directory, out items))
|
||||||
throw new Exception();
|
throw new Exception();
|
||||||
}
|
}
|
||||||
@ -182,7 +182,7 @@ internal abstract class Container
|
|||||||
continue;
|
continue;
|
||||||
if (!directoryToItems.TryGetValue(filePair.Directory, out items))
|
if (!directoryToItems.TryGetValue(filePair.Directory, out items))
|
||||||
{
|
{
|
||||||
directoryToItems.Add(filePair.Directory, new());
|
directoryToItems.Add(filePair.Directory, []);
|
||||||
if (!directoryToItems.TryGetValue(filePair.Directory, out items))
|
if (!directoryToItems.TryGetValue(filePair.Directory, out items))
|
||||||
throw new Exception();
|
throw new Exception();
|
||||||
}
|
}
|
||||||
@ -221,7 +221,7 @@ internal abstract class Container
|
|||||||
|
|
||||||
internal static List<int> GetFilteredDistinctIds(Properties.IPropertyConfiguration propertyConfiguration, Models.Container[] containers)
|
internal static List<int> GetFilteredDistinctIds(Properties.IPropertyConfiguration propertyConfiguration, Models.Container[] containers)
|
||||||
{
|
{
|
||||||
List<int> results = new();
|
List<int> results = [];
|
||||||
Models.Item[] filteredItems;
|
Models.Item[] filteredItems;
|
||||||
foreach (Models.Container container in containers)
|
foreach (Models.Container container in containers)
|
||||||
{
|
{
|
||||||
@ -244,8 +244,8 @@ internal abstract class Container
|
|||||||
|
|
||||||
internal static ReadOnlyCollection<Models.Item> GetItems(Properties.IPropertyConfiguration propertyConfiguration, ReadOnlyCollection<Models.Container> containers, bool distinctItems, bool filterItems)
|
internal static ReadOnlyCollection<Models.Item> GetItems(Properties.IPropertyConfiguration propertyConfiguration, ReadOnlyCollection<Models.Container> containers, bool distinctItems, bool filterItems)
|
||||||
{
|
{
|
||||||
List<Models.Item> results = new();
|
List<Models.Item> results = [];
|
||||||
List<int> distinct = new();
|
List<int> distinct = [];
|
||||||
IEnumerable<Models.Item> filteredItems;
|
IEnumerable<Models.Item> filteredItems;
|
||||||
foreach (Models.Container container in containers)
|
foreach (Models.Container container in containers)
|
||||||
{
|
{
|
||||||
|
@ -37,7 +37,7 @@ internal abstract class Face
|
|||||||
|
|
||||||
private static List<Models.Face> GetFaces(string jsonFileFullName, int? maximum)
|
private static List<Models.Face> GetFaces(string jsonFileFullName, int? maximum)
|
||||||
{
|
{
|
||||||
List<Models.Face> results = new();
|
List<Models.Face> results = [];
|
||||||
Tuple<Models.Face, string>? tuple;
|
Tuple<Models.Face, string>? tuple;
|
||||||
JsonElement[] jsonElements = GetJsonElements(jsonFileFullName);
|
JsonElement[] jsonElements = GetJsonElements(jsonFileFullName);
|
||||||
foreach (JsonElement jsonElement in jsonElements)
|
foreach (JsonElement jsonElement in jsonElements)
|
||||||
@ -133,7 +133,7 @@ internal abstract class Face
|
|||||||
internal static (bool, int[]) GetEyeCollection(int threshold, List<Models.Face> faces)
|
internal static (bool, int[]) GetEyeCollection(int threshold, List<Models.Face> faces)
|
||||||
{
|
{
|
||||||
bool result = false;
|
bool result = false;
|
||||||
List<int> results = new();
|
List<int> results = [];
|
||||||
foreach (Models.Face face in faces)
|
foreach (Models.Face face in faces)
|
||||||
{
|
{
|
||||||
if (face.Mapping?.MappingFromLocation?.Eyeα is null || face.Mapping.MappingFromLocation.EyeReview is null)
|
if (face.Mapping?.MappingFromLocation?.Eyeα is null || face.Mapping.MappingFromLocation.EyeReview is null)
|
||||||
|
@ -44,7 +44,7 @@ internal abstract class FaceFileSystem
|
|||||||
|
|
||||||
internal static Models.FaceFileSystem[] GetFaceFileSystemCollection(string requestPath, (string RootResultsDirectoryAbsoluteUri, string C_ResizeContentDirectory, string D_FacesContentDirectory, string E_DistanceCollectionDirectory) tuple, string selectedFileFullName)
|
internal static Models.FaceFileSystem[] GetFaceFileSystemCollection(string requestPath, (string RootResultsDirectoryAbsoluteUri, string C_ResizeContentDirectory, string D_FacesContentDirectory, string E_DistanceCollectionDirectory) tuple, string selectedFileFullName)
|
||||||
{
|
{
|
||||||
List<Models.FaceFileSystem> results = new();
|
List<Models.FaceFileSystem> results = [];
|
||||||
FileInfo fileInfo;
|
FileInfo fileInfo;
|
||||||
int? locationIndex;
|
int? locationIndex;
|
||||||
string jsonFileName;
|
string jsonFileName;
|
||||||
|
@ -5,7 +5,7 @@ internal abstract class FileHolder
|
|||||||
|
|
||||||
internal static List<Models.FileHolder> GetFileHolders((string, string[])[] collection)
|
internal static List<Models.FileHolder> GetFileHolders((string, string[])[] collection)
|
||||||
{
|
{
|
||||||
List<Models.FileHolder> results = new();
|
List<Models.FileHolder> results = [];
|
||||||
foreach ((string _, string[] files) in collection)
|
foreach ((string _, string[] files) in collection)
|
||||||
results.AddRange(files.Select(l => new Models.FileHolder(l)));
|
results.AddRange(files.Select(l => new Models.FileHolder(l)));
|
||||||
return results;
|
return results;
|
||||||
|
@ -42,11 +42,11 @@ internal abstract class FileSystem
|
|||||||
|
|
||||||
internal static List<Models.FileSystem> GetFileSystemCollection(string requestPath, (string RootResultsDirectoryAbsoluteUri, string C_ResizeContentDirectory, string D_FacesContentDirectory, string E_DistanceCollectionDirectory) tuple, string[] directories, string[] files, bool all)
|
internal static List<Models.FileSystem> GetFileSystemCollection(string requestPath, (string RootResultsDirectoryAbsoluteUri, string C_ResizeContentDirectory, string D_FacesContentDirectory, string E_DistanceCollectionDirectory) tuple, string[] directories, string[] files, bool all)
|
||||||
{
|
{
|
||||||
List<Models.FileSystem> results = new();
|
List<Models.FileSystem> results = [];
|
||||||
Models.Face face;
|
Models.Face face;
|
||||||
Models.FaceFileSystem faceFileSystem;
|
Models.FaceFileSystem faceFileSystem;
|
||||||
IEnumerator<string> subDirectoryFiles;
|
IEnumerator<string> subDirectoryFiles;
|
||||||
List<Models.FaceFileSystem> faceFileSystemCollection = new();
|
List<Models.FaceFileSystem> faceFileSystemCollection = [];
|
||||||
for (int i = 0; i < directories.Length; i++)
|
for (int i = 0; i < directories.Length; i++)
|
||||||
{
|
{
|
||||||
subDirectoryFiles = Directory.EnumerateFiles(directories[i], "*.json", SearchOption.TopDirectoryOnly).GetEnumerator();
|
subDirectoryFiles = Directory.EnumerateFiles(directories[i], "*.json", SearchOption.TopDirectoryOnly).GetEnumerator();
|
||||||
|
@ -11,6 +11,6 @@ public interface IMappingFromItem
|
|||||||
MappingFromItem TestStatic_GetMappingFromItem(Models.Item item)
|
MappingFromItem TestStatic_GetMappingFromItem(Models.Item item)
|
||||||
=> GetMappingFromItem(item);
|
=> GetMappingFromItem(item);
|
||||||
static MappingFromItem GetMappingFromItem(Models.Item item)
|
static MappingFromItem GetMappingFromItem(Models.Item item)
|
||||||
=> GetMappingFromItem(containerDateTimes: Array.Empty<DateTime>(), item, item.ResizedFileHolder);
|
=> GetMappingFromItem(containerDateTimes: [], item, item.ResizedFileHolder);
|
||||||
|
|
||||||
}
|
}
|
@ -5,8 +5,8 @@ internal abstract class Item
|
|||||||
|
|
||||||
internal static List<Models.Item> GetMerged(List<Models.Item> itemsA, List<Models.Item> itemsB)
|
internal static List<Models.Item> GetMerged(List<Models.Item> itemsA, List<Models.Item> itemsB)
|
||||||
{
|
{
|
||||||
List<Models.Item> results = new();
|
List<Models.Item> results = [];
|
||||||
List<string> collection = new();
|
List<string> collection = [];
|
||||||
foreach (Models.Item item in itemsA)
|
foreach (Models.Item item in itemsA)
|
||||||
{
|
{
|
||||||
results.Add(item);
|
results.Add(item);
|
||||||
|
@ -124,14 +124,14 @@ internal abstract class Location
|
|||||||
{
|
{
|
||||||
RectangleF? result;
|
RectangleF? result;
|
||||||
int length = (locationDigits - 1) / 4;
|
int length = (locationDigits - 1) / 4;
|
||||||
string[] segments = new string[]
|
string[] segments =
|
||||||
{
|
[
|
||||||
wholePercentages[..1],
|
wholePercentages[..1],
|
||||||
wholePercentages.Substring(1, length),
|
wholePercentages.Substring(1, length),
|
||||||
wholePercentages.Substring(3, length),
|
wholePercentages.Substring(3, length),
|
||||||
wholePercentages.Substring(5, length),
|
wholePercentages.Substring(5, length),
|
||||||
wholePercentages.Substring(7, length)
|
wholePercentages.Substring(7, length)
|
||||||
};
|
];
|
||||||
if (string.Join(string.Empty, segments) != wholePercentages)
|
if (string.Join(string.Empty, segments) != wholePercentages)
|
||||||
result = null;
|
result = null;
|
||||||
else
|
else
|
||||||
@ -247,7 +247,7 @@ internal abstract class Location
|
|||||||
|
|
||||||
internal static List<Models.Location> GetLocations<T>(List<LocationContainer<T>> locationContainers, List<Models.Face> faces, List<MappingFromPhotoPrism> mappingFromPhotoPrismCollection, float rectangleIntersectMinimum)
|
internal static List<Models.Location> GetLocations<T>(List<LocationContainer<T>> locationContainers, List<Models.Face> faces, List<MappingFromPhotoPrism> mappingFromPhotoPrismCollection, float rectangleIntersectMinimum)
|
||||||
{
|
{
|
||||||
List<Models.Location> results = new();
|
List<Models.Location> results = [];
|
||||||
bool any;
|
bool any;
|
||||||
bool matches;
|
bool matches;
|
||||||
float? percent;
|
float? percent;
|
||||||
@ -331,7 +331,7 @@ internal abstract class Location
|
|||||||
|
|
||||||
internal static List<Models.Face> FilterByIntersect(Models.Face[] faces, float rectangleIntersectMinimum, int wholePercentages)
|
internal static List<Models.Face> FilterByIntersect(Models.Face[] faces, float rectangleIntersectMinimum, int wholePercentages)
|
||||||
{
|
{
|
||||||
List<Models.Face> results = new();
|
List<Models.Face> results = [];
|
||||||
float? percent;
|
float? percent;
|
||||||
int width, height;
|
int width, height;
|
||||||
int faceLocationWholePercentages;
|
int faceLocationWholePercentages;
|
||||||
|
@ -89,7 +89,7 @@ internal abstract class PersonBirthday
|
|||||||
|
|
||||||
internal static List<(string, Models.PersonBirthday)> GetPersonBirthdays(string personBirthdayFormat, string[] personKeyDirectories, string personDisplayDirectoryName)
|
internal static List<(string, Models.PersonBirthday)> GetPersonBirthdays(string personBirthdayFormat, string[] personKeyDirectories, string personDisplayDirectoryName)
|
||||||
{
|
{
|
||||||
List<(string, Models.PersonBirthday)> results = new();
|
List<(string, Models.PersonBirthday)> results = [];
|
||||||
string personKeyFormatted;
|
string personKeyFormatted;
|
||||||
Models.PersonBirthday? personBirthday;
|
Models.PersonBirthday? personBirthday;
|
||||||
foreach (string personKeyDirectory in personKeyDirectories)
|
foreach (string personKeyDirectory in personKeyDirectories)
|
||||||
|
@ -5,12 +5,12 @@ internal abstract class PersonContainer
|
|||||||
|
|
||||||
private static List<string> GetFiles(string personDisplayDirectory)
|
private static List<string> GetFiles(string personDisplayDirectory)
|
||||||
{
|
{
|
||||||
List<string> results = new();
|
List<string> results = [];
|
||||||
string[] files;
|
string[] files;
|
||||||
string extension;
|
string extension;
|
||||||
string checkFile;
|
string checkFile;
|
||||||
string directoryName;
|
string directoryName;
|
||||||
List<string> distinct = new();
|
List<string> distinct = [];
|
||||||
string fileNameWithoutExtension;
|
string fileNameWithoutExtension;
|
||||||
string personDisplayDirectoryName = Path.GetFileName(personDisplayDirectory);
|
string personDisplayDirectoryName = Path.GetFileName(personDisplayDirectory);
|
||||||
results.AddRange(Directory.GetFiles(personDisplayDirectory, "*", SearchOption.TopDirectoryOnly));
|
results.AddRange(Directory.GetFiles(personDisplayDirectory, "*", SearchOption.TopDirectoryOnly));
|
||||||
@ -92,7 +92,7 @@ internal abstract class PersonContainer
|
|||||||
|
|
||||||
private static List<Models.PersonContainer> GetPersonContainersCollections(string facesFileNameExtension, PersonDirectory personDirectory, char numberSign, string personDisplayDirectory, string personDisplayDirectoryName, int? approximateYears, List<(string PersonKeyFormatted, Models.PersonBirthday PersonBirthday)> collection)
|
private static List<Models.PersonContainer> GetPersonContainersCollections(string facesFileNameExtension, PersonDirectory personDirectory, char numberSign, string personDisplayDirectory, string personDisplayDirectoryName, int? approximateYears, List<(string PersonKeyFormatted, Models.PersonBirthday PersonBirthday)> collection)
|
||||||
{
|
{
|
||||||
List<Models.PersonContainer> results = new();
|
List<Models.PersonContainer> results = [];
|
||||||
long personKey;
|
long personKey;
|
||||||
string[] files;
|
string[] files;
|
||||||
const int zero = 0;
|
const int zero = 0;
|
||||||
@ -155,11 +155,11 @@ internal abstract class PersonContainer
|
|||||||
|
|
||||||
private static (List<string?>, List<Models.PersonContainer>) GetPersonContainersGroup(string personBirthdayFormat, string facesFileNameExtension, char[] personCharacters, PersonDirectory personDirectory, string[] personDisplayDirectories)
|
private static (List<string?>, List<Models.PersonContainer>) GetPersonContainersGroup(string personBirthdayFormat, string facesFileNameExtension, char[] personCharacters, PersonDirectory personDirectory, string[] personDisplayDirectories)
|
||||||
{
|
{
|
||||||
List<Models.PersonContainer> results = new();
|
List<Models.PersonContainer> results = [];
|
||||||
string? minusOne;
|
string? minusOne;
|
||||||
int? approximateYears;
|
int? approximateYears;
|
||||||
char numberSign = '#';
|
char numberSign = '#';
|
||||||
List<string?> changes = new();
|
List<string?> changes = [];
|
||||||
string[] personKeyDirectories;
|
string[] personKeyDirectories;
|
||||||
string? personDisplayDirectoryName;
|
string? personDisplayDirectoryName;
|
||||||
Models.PersonContainer personContainer;
|
Models.PersonContainer personContainer;
|
||||||
@ -200,13 +200,13 @@ internal abstract class PersonContainer
|
|||||||
|
|
||||||
private static (List<string?>, List<Models.PersonContainer>) GetPersonContainersInnerGroups(string personBirthdayFormat, string facesFileNameExtension, char[] personCharacters, string groupDirectory, string groupDirectoryName)
|
private static (List<string?>, List<Models.PersonContainer>) GetPersonContainersInnerGroups(string personBirthdayFormat, string facesFileNameExtension, char[] personCharacters, string groupDirectory, string groupDirectoryName)
|
||||||
{
|
{
|
||||||
List<Models.PersonContainer> results = new();
|
List<Models.PersonContainer> results = [];
|
||||||
string[] segments;
|
string[] segments;
|
||||||
const int zero = 0;
|
const int zero = 0;
|
||||||
List<string?> changes;
|
List<string?> changes;
|
||||||
string innerGroupDirectoryName;
|
string innerGroupDirectoryName;
|
||||||
PersonDirectory personDirectory;
|
PersonDirectory personDirectory;
|
||||||
List<string?> allChanges = new();
|
List<string?> allChanges = [];
|
||||||
string[] personDisplayDirectories;
|
string[] personDisplayDirectories;
|
||||||
const char exclamationPoint = '!';
|
const char exclamationPoint = '!';
|
||||||
char @char = groupDirectoryName[zero];
|
char @char = groupDirectoryName[zero];
|
||||||
@ -250,9 +250,9 @@ internal abstract class PersonContainer
|
|||||||
List<Models.PersonContainer> results;
|
List<Models.PersonContainer> results;
|
||||||
List<string?> changes;
|
List<string?> changes;
|
||||||
string groupDirectoryName;
|
string groupDirectoryName;
|
||||||
List<string?> allChanges = new();
|
List<string?> allChanges = [];
|
||||||
List<Models.PersonContainer> collection;
|
List<Models.PersonContainer> collection;
|
||||||
List<Models.PersonContainer> personContainers = new();
|
List<Models.PersonContainer> personContainers = [];
|
||||||
for (int i = 0; i < personCharacters.Length; i++)
|
for (int i = 0; i < personCharacters.Length; i++)
|
||||||
{
|
{
|
||||||
foreach (string groupDirectory in groupDirectories)
|
foreach (string groupDirectory in groupDirectories)
|
||||||
@ -285,7 +285,7 @@ internal abstract class PersonContainer
|
|||||||
}
|
}
|
||||||
string[] groupDirectories = Directory.GetDirectories(a2PeopleSingletonDirectory, "*", SearchOption.TopDirectoryOnly);
|
string[] groupDirectories = Directory.GetDirectories(a2PeopleSingletonDirectory, "*", SearchOption.TopDirectoryOnly);
|
||||||
if (groupDirectories.Length == 0)
|
if (groupDirectories.Length == 0)
|
||||||
results = new();
|
results = [];
|
||||||
else
|
else
|
||||||
results = GetPersonContainersGroups(personBirthdayFormat, facesFileNameExtension, personCharacters, groupDirectories);
|
results = GetPersonContainersGroups(personBirthdayFormat, facesFileNameExtension, personCharacters, groupDirectories);
|
||||||
return results;
|
return results;
|
||||||
@ -293,7 +293,7 @@ internal abstract class PersonContainer
|
|||||||
|
|
||||||
internal static List<long> GetPersonKeys(IEnumerable<Models.PersonContainer> personContainers)
|
internal static List<long> GetPersonKeys(IEnumerable<Models.PersonContainer> personContainers)
|
||||||
{
|
{
|
||||||
List<long> results = new();
|
List<long> results = [];
|
||||||
long personKey;
|
long personKey;
|
||||||
foreach (Models.PersonContainer personContainer in personContainers)
|
foreach (Models.PersonContainer personContainer in personContainers)
|
||||||
{
|
{
|
||||||
|
@ -49,12 +49,12 @@ internal abstract class Property
|
|||||||
|
|
||||||
internal static (bool?, string[]) IsWrongYear(Models.FileHolder fileHolder, DateTime? dateTimeOriginal, List<DateTime> dateTimes)
|
internal static (bool?, string[]) IsWrongYear(Models.FileHolder fileHolder, DateTime? dateTimeOriginal, List<DateTime> dateTimes)
|
||||||
{
|
{
|
||||||
string[] results = Array.Empty<string>();
|
string[] results = [];
|
||||||
bool? result = null;
|
bool? result = null;
|
||||||
string year;
|
string year;
|
||||||
string directoryName;
|
string directoryName;
|
||||||
string[] directorySegments;
|
string[] directorySegments;
|
||||||
List<DateTime> collection = new();
|
List<DateTime> collection = [];
|
||||||
string? check = Path.GetFullPath(fileHolder.FullName);
|
string? check = Path.GetFullPath(fileHolder.FullName);
|
||||||
string? pathRoot = Path.GetPathRoot(fileHolder.FullName);
|
string? pathRoot = Path.GetPathRoot(fileHolder.FullName);
|
||||||
if (string.IsNullOrEmpty(pathRoot))
|
if (string.IsNullOrEmpty(pathRoot))
|
||||||
@ -88,21 +88,16 @@ internal abstract class Property
|
|||||||
|
|
||||||
internal static List<DateTime> GetDateTimes(DateTime creationTime, DateTime lastWriteTime, DateTime? dateTime, DateTime? dateTimeDigitized, DateTime? dateTimeFromName, DateTime? dateTimeOriginal, DateTime? gpsDateStamp)
|
internal static List<DateTime> GetDateTimes(DateTime creationTime, DateTime lastWriteTime, DateTime? dateTime, DateTime? dateTimeDigitized, DateTime? dateTimeFromName, DateTime? dateTimeOriginal, DateTime? gpsDateStamp)
|
||||||
{
|
{
|
||||||
List<DateTime> results = new()
|
List<DateTime> results =
|
||||||
{
|
[
|
||||||
creationTime,
|
creationTime,
|
||||||
lastWriteTime
|
lastWriteTime,
|
||||||
};
|
.. dateTime.HasValue ? [dateTime.Value] : [],
|
||||||
if (dateTime.HasValue)
|
.. dateTimeDigitized.HasValue ? [dateTimeDigitized.Value] : [],
|
||||||
results.Add(dateTime.Value);
|
.. dateTimeFromName.HasValue ? [dateTimeFromName.Value] : [],
|
||||||
if (dateTimeDigitized.HasValue)
|
.. dateTimeOriginal.HasValue ? [dateTimeOriginal.Value] : [],
|
||||||
results.Add(dateTimeDigitized.Value);
|
.. gpsDateStamp.HasValue ? [gpsDateStamp.Value] : [],
|
||||||
if (dateTimeFromName.HasValue)
|
];
|
||||||
results.Add(dateTimeFromName.Value);
|
|
||||||
if (dateTimeOriginal.HasValue)
|
|
||||||
results.Add(dateTimeOriginal.Value);
|
|
||||||
if (gpsDateStamp.HasValue)
|
|
||||||
results.Add(gpsDateStamp.Value);
|
|
||||||
return results;
|
return results;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -113,21 +108,16 @@ internal abstract class Property
|
|||||||
result = DateTime.MinValue;
|
result = DateTime.MinValue;
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
List<DateTime> dateTimes = new()
|
List<DateTime> dateTimes =
|
||||||
{
|
[
|
||||||
property.CreationTime,
|
property.CreationTime,
|
||||||
property.LastWriteTime
|
property.LastWriteTime,
|
||||||
};
|
.. property.DateTime.HasValue ? [property.DateTime.Value] : [],
|
||||||
if (property.DateTime.HasValue)
|
.. property.DateTimeDigitized.HasValue ? [property.DateTimeDigitized.Value] : [],
|
||||||
dateTimes.Add(property.DateTime.Value);
|
.. property.DateTimeFromName.HasValue ? [property.DateTimeFromName.Value] : [],
|
||||||
if (property.DateTimeDigitized.HasValue)
|
.. property.DateTimeOriginal.HasValue ? [property.DateTimeOriginal.Value] : [],
|
||||||
dateTimes.Add(property.DateTimeDigitized.Value);
|
.. property.GPSDateStamp.HasValue ? [property.GPSDateStamp.Value] : [],
|
||||||
if (property.DateTimeFromName.HasValue)
|
];
|
||||||
dateTimes.Add(property.DateTimeFromName.Value);
|
|
||||||
if (property.DateTimeOriginal.HasValue)
|
|
||||||
dateTimes.Add(property.DateTimeOriginal.Value);
|
|
||||||
if (property.GPSDateStamp.HasValue)
|
|
||||||
dateTimes.Add(property.GPSDateStamp.Value);
|
|
||||||
result = dateTimes.Min();
|
result = dateTimes.Min();
|
||||||
}
|
}
|
||||||
return result;
|
return result;
|
||||||
@ -191,7 +181,7 @@ internal abstract class Property
|
|||||||
{
|
{
|
||||||
TimeSpan result;
|
TimeSpan result;
|
||||||
DateTime? minimumDateTime;
|
DateTime? minimumDateTime;
|
||||||
List<long> ticksCollection = new();
|
List<long> ticksCollection = [];
|
||||||
foreach (Models.Item item in container.Items)
|
foreach (Models.Item item in container.Items)
|
||||||
{
|
{
|
||||||
if (item.Property is null)
|
if (item.Property is null)
|
||||||
@ -217,7 +207,7 @@ internal abstract class Property
|
|||||||
|
|
||||||
internal static (int, List<DateTime>, List<Models.Item>) Get(Models.Container container, TimeSpan threeStandardDeviationHigh, int i)
|
internal static (int, List<DateTime>, List<Models.Item>) Get(Models.Container container, TimeSpan threeStandardDeviationHigh, int i)
|
||||||
{
|
{
|
||||||
List<Models.Item> results = new();
|
List<Models.Item> results = [];
|
||||||
int j = i;
|
int j = i;
|
||||||
long? ticks;
|
long? ticks;
|
||||||
Models.Item item;
|
Models.Item item;
|
||||||
@ -225,7 +215,7 @@ internal abstract class Property
|
|||||||
Models.Item nextItem;
|
Models.Item nextItem;
|
||||||
DateTime? minimumDateTime;
|
DateTime? minimumDateTime;
|
||||||
DateTime? nextMinimumDateTime;
|
DateTime? nextMinimumDateTime;
|
||||||
List<DateTime> dateTimes = new();
|
List<DateTime> dateTimes = [];
|
||||||
for (; j < container.Items.Count; j++)
|
for (; j < container.Items.Count; j++)
|
||||||
{
|
{
|
||||||
ticks = null;
|
ticks = null;
|
||||||
|
@ -9,15 +9,15 @@ internal abstract class WorkingDirectory
|
|||||||
if (executingAssemblyName is null)
|
if (executingAssemblyName is null)
|
||||||
throw new Exception();
|
throw new Exception();
|
||||||
string traceFile;
|
string traceFile;
|
||||||
List<string> directories = new();
|
List<string> directories = [];
|
||||||
Environment.SpecialFolder[] specialFolders = new Environment.SpecialFolder[]
|
Environment.SpecialFolder[] specialFolders =
|
||||||
{
|
[
|
||||||
Environment.SpecialFolder.LocalApplicationData,
|
Environment.SpecialFolder.LocalApplicationData,
|
||||||
Environment.SpecialFolder.ApplicationData,
|
Environment.SpecialFolder.ApplicationData,
|
||||||
Environment.SpecialFolder.History,
|
Environment.SpecialFolder.History,
|
||||||
Environment.SpecialFolder.CommonApplicationData,
|
Environment.SpecialFolder.CommonApplicationData,
|
||||||
Environment.SpecialFolder.InternetCache
|
Environment.SpecialFolder.InternetCache
|
||||||
};
|
];
|
||||||
foreach (Environment.SpecialFolder specialFolder in specialFolders)
|
foreach (Environment.SpecialFolder specialFolder in specialFolders)
|
||||||
directories.Add(Path.Combine(Environment.GetFolderPath(specialFolder), subDirectoryName, executingAssemblyName));
|
directories.Add(Path.Combine(Environment.GetFolderPath(specialFolder), subDirectoryName, executingAssemblyName));
|
||||||
foreach (string directory in directories)
|
foreach (string directory in directories)
|
||||||
|
@ -7,7 +7,7 @@ internal abstract partial class XDirectory
|
|||||||
|
|
||||||
private static int GetCeilingAverage(List<string[]> fileCollection)
|
private static int GetCeilingAverage(List<string[]> fileCollection)
|
||||||
{
|
{
|
||||||
List<int> counts = new();
|
List<int> counts = [];
|
||||||
foreach (string[] files in fileCollection)
|
foreach (string[] files in fileCollection)
|
||||||
counts.Add(files.Length);
|
counts.Add(files.Length);
|
||||||
int average = (int)Math.Ceiling(counts.Average());
|
int average = (int)Math.Ceiling(counts.Average());
|
||||||
@ -16,7 +16,7 @@ internal abstract partial class XDirectory
|
|||||||
|
|
||||||
private static List<string[]> GetFilesCollection(List<string[]> fileCollection, int ceilingAverage)
|
private static List<string[]> GetFilesCollection(List<string[]> fileCollection, int ceilingAverage)
|
||||||
{
|
{
|
||||||
List<string[]> results = new();
|
List<string[]> results = [];
|
||||||
foreach (string[] files in fileCollection)
|
foreach (string[] files in fileCollection)
|
||||||
{
|
{
|
||||||
if (files.Length < ceilingAverage)
|
if (files.Length < ceilingAverage)
|
||||||
@ -32,7 +32,7 @@ internal abstract partial class XDirectory
|
|||||||
|
|
||||||
internal static List<string[]> GetFilesCollection(string directory, string directorySearchFilter, string fileSearchFilter, bool useCeilingAverage)
|
internal static List<string[]> GetFilesCollection(string directory, string directorySearchFilter, string fileSearchFilter, bool useCeilingAverage)
|
||||||
{
|
{
|
||||||
List<string[]> results = new();
|
List<string[]> results = [];
|
||||||
if (!fileSearchFilter.Contains('*'))
|
if (!fileSearchFilter.Contains('*'))
|
||||||
fileSearchFilter = string.Concat('*', fileSearchFilter);
|
fileSearchFilter = string.Concat('*', fileSearchFilter);
|
||||||
if (!directorySearchFilter.Contains('*'))
|
if (!directorySearchFilter.Contains('*'))
|
||||||
@ -54,7 +54,7 @@ internal abstract partial class XDirectory
|
|||||||
|
|
||||||
internal static IReadOnlyDictionary<string, List<string>> GetFilesKeyValuePairs(List<string[]> filesCollection)
|
internal static IReadOnlyDictionary<string, List<string>> GetFilesKeyValuePairs(List<string[]> filesCollection)
|
||||||
{
|
{
|
||||||
Dictionary<string, List<string>> results = new();
|
Dictionary<string, List<string>> results = [];
|
||||||
string fileName;
|
string fileName;
|
||||||
List<string>? collection;
|
List<string>? collection;
|
||||||
foreach (string[] files in filesCollection)
|
foreach (string[] files in filesCollection)
|
||||||
@ -64,7 +64,7 @@ internal abstract partial class XDirectory
|
|||||||
fileName = Path.GetFileName(file);
|
fileName = Path.GetFileName(file);
|
||||||
if (!results.TryGetValue(fileName, out collection))
|
if (!results.TryGetValue(fileName, out collection))
|
||||||
{
|
{
|
||||||
results.Add(fileName, new());
|
results.Add(fileName, []);
|
||||||
if (!results.TryGetValue(fileName, out collection))
|
if (!results.TryGetValue(fileName, out collection))
|
||||||
throw new Exception();
|
throw new Exception();
|
||||||
}
|
}
|
||||||
@ -81,7 +81,7 @@ internal abstract partial class XDirectory
|
|||||||
List<string>? collection;
|
List<string>? collection;
|
||||||
string fileNameUpperExtension;
|
string fileNameUpperExtension;
|
||||||
int length = extension.Length;
|
int length = extension.Length;
|
||||||
List<string> renameCollection = new();
|
List<string> renameCollection = [];
|
||||||
foreach (string[] files in jsonFilesCollection)
|
foreach (string[] files in jsonFilesCollection)
|
||||||
{
|
{
|
||||||
foreach (string file in files)
|
foreach (string file in files)
|
||||||
@ -127,10 +127,10 @@ internal abstract partial class XDirectory
|
|||||||
{
|
{
|
||||||
string? result = null;
|
string? result = null;
|
||||||
FileInfo possibleFileInfo;
|
FileInfo possibleFileInfo;
|
||||||
List<long> lengths = new();
|
List<long> lengths = [];
|
||||||
List<string> matches = new();
|
List<string> matches = [];
|
||||||
FileInfo fileInfo = new(file);
|
FileInfo fileInfo = new(file);
|
||||||
List<DateTime> creationTimes = new();
|
List<DateTime> creationTimes = [];
|
||||||
foreach (string possible in collection)
|
foreach (string possible in collection)
|
||||||
{
|
{
|
||||||
possibleFileInfo = new(possible);
|
possibleFileInfo = new(possible);
|
||||||
@ -147,7 +147,7 @@ internal abstract partial class XDirectory
|
|||||||
|
|
||||||
internal static List<FilePair> GetFiles(List<string[]> filesCollection, IReadOnlyDictionary<string, List<string>> fileNamesToFiles, string extension, IReadOnlyDictionary<string, List<string>> compareFileNamesToFiles)
|
internal static List<FilePair> GetFiles(List<string[]> filesCollection, IReadOnlyDictionary<string, List<string>> fileNamesToFiles, string extension, IReadOnlyDictionary<string, List<string>> compareFileNamesToFiles)
|
||||||
{
|
{
|
||||||
List<FilePair> results = new();
|
List<FilePair> results = [];
|
||||||
string? match;
|
string? match;
|
||||||
string fileName;
|
string fileName;
|
||||||
bool uniqueFileName;
|
bool uniqueFileName;
|
||||||
@ -165,7 +165,7 @@ internal abstract partial class XDirectory
|
|||||||
if (!uniqueFileName)
|
if (!uniqueFileName)
|
||||||
isNotUniqueAndNeedsReview = GetIsNotUniqueAndNeedsReview(file, collection);
|
isNotUniqueAndNeedsReview = GetIsNotUniqueAndNeedsReview(file, collection);
|
||||||
if (!compareFileNamesToFiles.TryGetValue(string.Concat(fileName, extension), out collection))
|
if (!compareFileNamesToFiles.TryGetValue(string.Concat(fileName, extension), out collection))
|
||||||
results.Add(new(file, uniqueFileName, isNotUniqueAndNeedsReview, new(), null));
|
results.Add(new(file, uniqueFileName, isNotUniqueAndNeedsReview, [], null));
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
if (collection.Count == 0)
|
if (collection.Count == 0)
|
||||||
@ -215,7 +215,7 @@ internal abstract partial class XDirectory
|
|||||||
FileInfo? toFileInfo;
|
FileInfo? toFileInfo;
|
||||||
FileInfo fromFileInfo;
|
FileInfo fromFileInfo;
|
||||||
string checkDirectory;
|
string checkDirectory;
|
||||||
List<(string, string)> rename = new();
|
List<(string, string)> rename = [];
|
||||||
string resultAllInOneDirectory = Path.Combine(jsonGroupDirectory, resultAllInOne);
|
string resultAllInOneDirectory = Path.Combine(jsonGroupDirectory, resultAllInOne);
|
||||||
foreach (FilePair item in filePairs)
|
foreach (FilePair item in filePairs)
|
||||||
{
|
{
|
||||||
@ -256,7 +256,7 @@ internal abstract partial class XDirectory
|
|||||||
{
|
{
|
||||||
string checkFile;
|
string checkFile;
|
||||||
string? checkDirectory;
|
string? checkDirectory;
|
||||||
List<string> directories = new();
|
List<string> directories = [];
|
||||||
foreach (string file in files)
|
foreach (string file in files)
|
||||||
{
|
{
|
||||||
checkDirectory = Path.GetDirectoryName(file.Replace(find, replace));
|
checkDirectory = Path.GetDirectoryName(file.Replace(find, replace));
|
||||||
@ -321,7 +321,7 @@ internal abstract partial class XDirectory
|
|||||||
|
|
||||||
private static SortedRecord[] GetSortedRecords(int offset, List<string[]> filesCollection)
|
private static SortedRecord[] GetSortedRecords(int offset, List<string[]> filesCollection)
|
||||||
{
|
{
|
||||||
List<SortedRecord> results = new();
|
List<SortedRecord> results = [];
|
||||||
int? id;
|
int? id;
|
||||||
Models.FileHolder fileHolder;
|
Models.FileHolder fileHolder;
|
||||||
bool nameWithoutExtensionIsIdFormat;
|
bool nameWithoutExtensionIsIdFormat;
|
||||||
@ -340,7 +340,7 @@ internal abstract partial class XDirectory
|
|||||||
|
|
||||||
internal static (string[], List<(Models.FileHolder, string?, string)>) GetToDoCollection(Properties.IPropertyConfiguration propertyConfiguration, bool copyDuplicates, bool ifCanUseId, List<string[]> filesCollection, string[] directories, Action? tick)
|
internal static (string[], List<(Models.FileHolder, string?, string)>) GetToDoCollection(Properties.IPropertyConfiguration propertyConfiguration, bool copyDuplicates, bool ifCanUseId, List<string[]> filesCollection, string[] directories, Action? tick)
|
||||||
{
|
{
|
||||||
List<(Models.FileHolder, string?, string)> results = new();
|
List<(Models.FileHolder, string?, string)> results = [];
|
||||||
string paddedId;
|
string paddedId;
|
||||||
string checkFile;
|
string checkFile;
|
||||||
string directory;
|
string directory;
|
||||||
@ -355,9 +355,9 @@ internal abstract partial class XDirectory
|
|||||||
string? alternateCheckFile;
|
string? alternateCheckFile;
|
||||||
string? alternateDirectory;
|
string? alternateDirectory;
|
||||||
Models.FileHolder fileHolder;
|
Models.FileHolder fileHolder;
|
||||||
List<int> distinctIds = new();
|
List<int> distinctIds = [];
|
||||||
List<string> distinct = new();
|
List<string> distinct = [];
|
||||||
List<string> distinctDirectories = new();
|
List<string> distinctDirectories = [];
|
||||||
int intMinValueLength = int.MinValue.ToString().Length;
|
int intMinValueLength = int.MinValue.ToString().Length;
|
||||||
SortedRecord[] sortedRecords = GetSortedRecords(propertyConfiguration.Offset, filesCollection);
|
SortedRecord[] sortedRecords = GetSortedRecords(propertyConfiguration.Offset, filesCollection);
|
||||||
string? alternateResultAllInOne = !propertyConfiguration.ResultAllInOne.Contains(' ') ? null : propertyConfiguration.ResultAllInOne.Replace(' ', '-');
|
string? alternateResultAllInOne = !propertyConfiguration.ResultAllInOne.Contains(' ') ? null : propertyConfiguration.ResultAllInOne.Replace(' ', '-');
|
||||||
@ -456,7 +456,7 @@ internal abstract partial class XDirectory
|
|||||||
|
|
||||||
internal static List<string> CopyOrMove(List<(Models.FileHolder, string?, string)> toDoCollection, bool move, bool moveBack, Action? tick)
|
internal static List<string> CopyOrMove(List<(Models.FileHolder, string?, string)> toDoCollection, bool move, bool moveBack, Action? tick)
|
||||||
{
|
{
|
||||||
List<string> results = new();
|
List<string> results = [];
|
||||||
FileInfo fileInfo;
|
FileInfo fileInfo;
|
||||||
foreach ((Models.FileHolder fileHolder, string? alternateFile, string to) in toDoCollection)
|
foreach ((Models.FileHolder fileHolder, string? alternateFile, string to) in toDoCollection)
|
||||||
{
|
{
|
||||||
|
@ -30,7 +30,7 @@ internal abstract class XPath
|
|||||||
internal static bool DeleteEmptyDirectories(string rootDirectory)
|
internal static bool DeleteEmptyDirectories(string rootDirectory)
|
||||||
{
|
{
|
||||||
bool result;
|
bool result;
|
||||||
List<string> results = new();
|
List<string> results = [];
|
||||||
DeleteEmptyDirectories(rootDirectory, results);
|
DeleteEmptyDirectories(rootDirectory, results);
|
||||||
result = results.Count > 0;
|
result = results.Count > 0;
|
||||||
return result;
|
return result;
|
||||||
@ -43,7 +43,7 @@ internal abstract class XPath
|
|||||||
string[] files;
|
string[] files;
|
||||||
string[] directories = Directory.GetDirectories(rootDirectory, "*", SearchOption.TopDirectoryOnly);
|
string[] directories = Directory.GetDirectories(rootDirectory, "*", SearchOption.TopDirectoryOnly);
|
||||||
if (directories.Length > 0)
|
if (directories.Length > 0)
|
||||||
files = Array.Empty<string>();
|
files = [];
|
||||||
else
|
else
|
||||||
files = Directory.GetFiles(rootDirectory, "*", SearchOption.AllDirectories);
|
files = Directory.GetFiles(rootDirectory, "*", SearchOption.AllDirectories);
|
||||||
if (directories.Length == 0 && files.Length == 0)
|
if (directories.Length == 0 && files.Length == 0)
|
||||||
@ -59,7 +59,7 @@ internal abstract class XPath
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
List<string> check = new();
|
List<string> check = [];
|
||||||
foreach (string directory in directories)
|
foreach (string directory in directories)
|
||||||
{
|
{
|
||||||
DeleteEmptyDirectories(directory, check);
|
DeleteEmptyDirectories(directory, check);
|
||||||
@ -112,7 +112,7 @@ internal abstract class XPath
|
|||||||
|
|
||||||
internal static List<string> GetDirectoryNames(string directory)
|
internal static List<string> GetDirectoryNames(string directory)
|
||||||
{
|
{
|
||||||
List<string> results = new();
|
List<string> results = [];
|
||||||
string? fileName;
|
string? fileName;
|
||||||
string? checkDirectory = directory;
|
string? checkDirectory = directory;
|
||||||
string? pathRoot = Path.GetPathRoot(directory);
|
string? pathRoot = Path.GetPathRoot(directory);
|
||||||
@ -148,7 +148,7 @@ internal abstract class XPath
|
|||||||
|
|
||||||
internal static List<string> GetDirectories(string directory)
|
internal static List<string> GetDirectories(string directory)
|
||||||
{
|
{
|
||||||
List<string> results = new();
|
List<string> results = [];
|
||||||
string? checkDirectory = directory;
|
string? checkDirectory = directory;
|
||||||
string? pathRoot = Path.GetPathRoot(directory);
|
string? pathRoot = Path.GetPathRoot(directory);
|
||||||
if (string.IsNullOrEmpty(pathRoot))
|
if (string.IsNullOrEmpty(pathRoot))
|
||||||
@ -172,7 +172,7 @@ internal abstract class XPath
|
|||||||
int result = 0;
|
int result = 0;
|
||||||
string? directory;
|
string? directory;
|
||||||
string? checkDirectory;
|
string? checkDirectory;
|
||||||
List<string> results = new();
|
List<string> results = [];
|
||||||
checkDirectory = sourceDirectory;
|
checkDirectory = sourceDirectory;
|
||||||
for (int i = 0; i < int.MaxValue; i++)
|
for (int i = 0; i < int.MaxValue; i++)
|
||||||
{
|
{
|
||||||
@ -211,7 +211,7 @@ internal abstract class XPath
|
|||||||
IEnumerable<string> fileSystemEntries;
|
IEnumerable<string> fileSystemEntries;
|
||||||
string[] directories;
|
string[] directories;
|
||||||
if (!Directory.Exists(rootDirectory))
|
if (!Directory.Exists(rootDirectory))
|
||||||
directories = Array.Empty<string>();
|
directories = [];
|
||||||
else
|
else
|
||||||
directories = Directory.GetDirectories(rootDirectory, "*", SearchOption.AllDirectories);
|
directories = Directory.GetDirectories(rootDirectory, "*", SearchOption.AllDirectories);
|
||||||
foreach (string directory in directories)
|
foreach (string directory in directories)
|
||||||
@ -285,12 +285,12 @@ internal abstract class XPath
|
|||||||
|
|
||||||
internal static Dictionary<string, string[]> GetKeyValuePairs(IPropertyConfiguration propertyConfiguration, string? resultsFullGroupDirectory, string[]? directories)
|
internal static Dictionary<string, string[]> GetKeyValuePairs(IPropertyConfiguration propertyConfiguration, string? resultsFullGroupDirectory, string[]? directories)
|
||||||
{
|
{
|
||||||
Dictionary<string, string[]> results = new();
|
Dictionary<string, string[]> results = [];
|
||||||
string directory;
|
string directory;
|
||||||
string checkDirectory;
|
string checkDirectory;
|
||||||
int converted = int.Parse($"1{new string('0', propertyConfiguration.ResultAllInOneSubdirectoryLength)}");
|
int converted = int.Parse($"1{new string('0', propertyConfiguration.ResultAllInOneSubdirectoryLength)}");
|
||||||
int plusOne = converted + 1;
|
int plusOne = converted + 1;
|
||||||
List<string> collection = new();
|
List<string> collection = [];
|
||||||
if (directories is not null)
|
if (directories is not null)
|
||||||
{
|
{
|
||||||
foreach (string key in directories)
|
foreach (string key in directories)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user