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);
|
||||
foreach (string outputResolution in _Configuration.OutputResolutions)
|
||||
{
|
||||
if (outputResolution.Any(l => char.IsNumber(l)))
|
||||
if (outputResolution.Any(char.IsNumber))
|
||||
continue;
|
||||
configurationOutputResolutionsHas = true;
|
||||
if (!runToDoCollectionFirst)
|
||||
|
@ -38,7 +38,7 @@ public class Face : Properties.IFace
|
||||
{
|
||||
DateTime?[] dateTimes;
|
||||
_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();
|
||||
}
|
||||
|
||||
|
@ -189,7 +189,7 @@ public class FaceFileSystem : FileSystem, Properties.IFaceFileSystem
|
||||
{
|
||||
int order = 0;
|
||||
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)
|
||||
{
|
||||
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) :
|
||||
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"))
|
||||
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) :
|
||||
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()
|
||||
|
@ -35,7 +35,7 @@ public record MappingFromItem(DateTime[] ContainerDateTimes,
|
||||
List<DateTime> dateTimes = item.Property.GetDateTimes();
|
||||
DateTime minimumDateTime = Stateless.Methods.IProperty.GetMinimumDateTime(item.Property);
|
||||
(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;
|
||||
}
|
||||
|
||||
|
@ -27,15 +27,15 @@ public class PersonContainer : Properties.IPersonContainer
|
||||
}
|
||||
|
||||
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) :
|
||||
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) :
|
||||
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) :
|
||||
|
@ -19,15 +19,15 @@ internal abstract class Container
|
||||
else
|
||||
containerMaximumDateTime = (from l in items select l.ImageFileHolder.LastWriteTime).Max();
|
||||
if (containerMinimumDateTime is null || containerMaximumDateTime is null)
|
||||
results = Array.Empty<DateTime>();
|
||||
results = [];
|
||||
else
|
||||
results = new DateTime[] { containerMinimumDateTime.Value, containerMaximumDateTime.Value };
|
||||
results = [containerMinimumDateTime.Value, containerMaximumDateTime.Value];
|
||||
return results;
|
||||
}
|
||||
|
||||
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)
|
||||
{
|
||||
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? alternateFile = alternateFilesCollectionDirectory is null ? null : Path.Combine(alternateFilesCollectionDirectory, pathDirectoryName, $"{Path.GetFileName(filePair.Path)}.tsv");
|
||||
if (!File.Exists(alternateFile))
|
||||
results = Array.Empty<string>();
|
||||
results = [];
|
||||
else
|
||||
results = File.ReadAllLines(alternateFile);
|
||||
return results;
|
||||
@ -79,24 +79,24 @@ internal abstract class Container
|
||||
string[] results;
|
||||
Models.Property? result;
|
||||
if (filePair.Match is null)
|
||||
(result, results) = (null, Array.Empty<string>());
|
||||
(result, results) = (null, []);
|
||||
else
|
||||
{
|
||||
string json = File.ReadAllText(filePair.Match);
|
||||
if (string.IsNullOrEmpty(json))
|
||||
(result, results) = (null, Array.Empty<string>());
|
||||
(result, results) = (null, []);
|
||||
else
|
||||
{
|
||||
result = JsonSerializer.Deserialize(json, PropertyGenerationContext.Default.Property);
|
||||
if (result is null)
|
||||
results = Array.Empty<string>();
|
||||
results = [];
|
||||
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 (result.Keywords is null)
|
||||
result = Models.Property.GetProperty(result, new string[] { "!" });
|
||||
result = Models.Property.GetProperty(result, ["!"]);
|
||||
else
|
||||
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)
|
||||
{
|
||||
List<FilePair> results = new();
|
||||
List<FilePair> results = [];
|
||||
int maxDegreeOfParallelism = Environment.ProcessorCount;
|
||||
string? alternateResultAllInOne = !propertyConfiguration.ResultAllInOne.Contains(' ') ? null : propertyConfiguration.ResultAllInOne.Replace(' ', '-');
|
||||
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)
|
||||
{
|
||||
List<Models.Container> results = new();
|
||||
List<Models.Container> results = [];
|
||||
string? directory;
|
||||
List<Models.Item>? items;
|
||||
Models.Container container;
|
||||
const string extension = ".json";
|
||||
List<string> directories = new();
|
||||
Dictionary<string, List<Models.Item>> directoryToItems = new();
|
||||
List<string> directories = [];
|
||||
Dictionary<string, List<Models.Item>> directoryToItems = [];
|
||||
foreach (string[] files in filesCollection)
|
||||
{
|
||||
if (files.Length == 0)
|
||||
@ -169,7 +169,7 @@ internal abstract class Container
|
||||
directories.Add(directory);
|
||||
if (!directoryToItems.TryGetValue(directory, out items))
|
||||
{
|
||||
directoryToItems.Add(directory, new());
|
||||
directoryToItems.Add(directory, []);
|
||||
if (!directoryToItems.TryGetValue(directory, out items))
|
||||
throw new Exception();
|
||||
}
|
||||
@ -182,7 +182,7 @@ internal abstract class Container
|
||||
continue;
|
||||
if (!directoryToItems.TryGetValue(filePair.Directory, out items))
|
||||
{
|
||||
directoryToItems.Add(filePair.Directory, new());
|
||||
directoryToItems.Add(filePair.Directory, []);
|
||||
if (!directoryToItems.TryGetValue(filePair.Directory, out items))
|
||||
throw new Exception();
|
||||
}
|
||||
@ -221,7 +221,7 @@ internal abstract class Container
|
||||
|
||||
internal static List<int> GetFilteredDistinctIds(Properties.IPropertyConfiguration propertyConfiguration, Models.Container[] containers)
|
||||
{
|
||||
List<int> results = new();
|
||||
List<int> results = [];
|
||||
Models.Item[] filteredItems;
|
||||
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)
|
||||
{
|
||||
List<Models.Item> results = new();
|
||||
List<int> distinct = new();
|
||||
List<Models.Item> results = [];
|
||||
List<int> distinct = [];
|
||||
IEnumerable<Models.Item> filteredItems;
|
||||
foreach (Models.Container container in containers)
|
||||
{
|
||||
|
@ -37,7 +37,7 @@ internal abstract class Face
|
||||
|
||||
private static List<Models.Face> GetFaces(string jsonFileFullName, int? maximum)
|
||||
{
|
||||
List<Models.Face> results = new();
|
||||
List<Models.Face> results = [];
|
||||
Tuple<Models.Face, string>? tuple;
|
||||
JsonElement[] jsonElements = GetJsonElements(jsonFileFullName);
|
||||
foreach (JsonElement jsonElement in jsonElements)
|
||||
@ -133,7 +133,7 @@ internal abstract class Face
|
||||
internal static (bool, int[]) GetEyeCollection(int threshold, List<Models.Face> faces)
|
||||
{
|
||||
bool result = false;
|
||||
List<int> results = new();
|
||||
List<int> results = [];
|
||||
foreach (Models.Face face in faces)
|
||||
{
|
||||
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)
|
||||
{
|
||||
List<Models.FaceFileSystem> results = new();
|
||||
List<Models.FaceFileSystem> results = [];
|
||||
FileInfo fileInfo;
|
||||
int? locationIndex;
|
||||
string jsonFileName;
|
||||
|
@ -5,7 +5,7 @@ internal abstract class FileHolder
|
||||
|
||||
internal static List<Models.FileHolder> GetFileHolders((string, string[])[] collection)
|
||||
{
|
||||
List<Models.FileHolder> results = new();
|
||||
List<Models.FileHolder> results = [];
|
||||
foreach ((string _, string[] files) in collection)
|
||||
results.AddRange(files.Select(l => new Models.FileHolder(l)));
|
||||
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)
|
||||
{
|
||||
List<Models.FileSystem> results = new();
|
||||
List<Models.FileSystem> results = [];
|
||||
Models.Face face;
|
||||
Models.FaceFileSystem faceFileSystem;
|
||||
IEnumerator<string> subDirectoryFiles;
|
||||
List<Models.FaceFileSystem> faceFileSystemCollection = new();
|
||||
List<Models.FaceFileSystem> faceFileSystemCollection = [];
|
||||
for (int i = 0; i < directories.Length; i++)
|
||||
{
|
||||
subDirectoryFiles = Directory.EnumerateFiles(directories[i], "*.json", SearchOption.TopDirectoryOnly).GetEnumerator();
|
||||
|
@ -11,6 +11,6 @@ public interface IMappingFromItem
|
||||
MappingFromItem TestStatic_GetMappingFromItem(Models.Item item)
|
||||
=> GetMappingFromItem(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)
|
||||
{
|
||||
List<Models.Item> results = new();
|
||||
List<string> collection = new();
|
||||
List<Models.Item> results = [];
|
||||
List<string> collection = [];
|
||||
foreach (Models.Item item in itemsA)
|
||||
{
|
||||
results.Add(item);
|
||||
|
@ -124,14 +124,14 @@ internal abstract class Location
|
||||
{
|
||||
RectangleF? result;
|
||||
int length = (locationDigits - 1) / 4;
|
||||
string[] segments = new string[]
|
||||
{
|
||||
string[] segments =
|
||||
[
|
||||
wholePercentages[..1],
|
||||
wholePercentages.Substring(1, length),
|
||||
wholePercentages.Substring(3, length),
|
||||
wholePercentages.Substring(5, length),
|
||||
wholePercentages.Substring(7, length)
|
||||
};
|
||||
];
|
||||
if (string.Join(string.Empty, segments) != wholePercentages)
|
||||
result = null;
|
||||
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)
|
||||
{
|
||||
List<Models.Location> results = new();
|
||||
List<Models.Location> results = [];
|
||||
bool any;
|
||||
bool matches;
|
||||
float? percent;
|
||||
@ -331,7 +331,7 @@ internal abstract class Location
|
||||
|
||||
internal static List<Models.Face> FilterByIntersect(Models.Face[] faces, float rectangleIntersectMinimum, int wholePercentages)
|
||||
{
|
||||
List<Models.Face> results = new();
|
||||
List<Models.Face> results = [];
|
||||
float? percent;
|
||||
int width, height;
|
||||
int faceLocationWholePercentages;
|
||||
|
@ -89,7 +89,7 @@ internal abstract class PersonBirthday
|
||||
|
||||
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;
|
||||
Models.PersonBirthday? personBirthday;
|
||||
foreach (string personKeyDirectory in personKeyDirectories)
|
||||
|
@ -5,12 +5,12 @@ internal abstract class PersonContainer
|
||||
|
||||
private static List<string> GetFiles(string personDisplayDirectory)
|
||||
{
|
||||
List<string> results = new();
|
||||
List<string> results = [];
|
||||
string[] files;
|
||||
string extension;
|
||||
string checkFile;
|
||||
string directoryName;
|
||||
List<string> distinct = new();
|
||||
List<string> distinct = [];
|
||||
string fileNameWithoutExtension;
|
||||
string personDisplayDirectoryName = Path.GetFileName(personDisplayDirectory);
|
||||
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)
|
||||
{
|
||||
List<Models.PersonContainer> results = new();
|
||||
List<Models.PersonContainer> results = [];
|
||||
long personKey;
|
||||
string[] files;
|
||||
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)
|
||||
{
|
||||
List<Models.PersonContainer> results = new();
|
||||
List<Models.PersonContainer> results = [];
|
||||
string? minusOne;
|
||||
int? approximateYears;
|
||||
char numberSign = '#';
|
||||
List<string?> changes = new();
|
||||
List<string?> changes = [];
|
||||
string[] personKeyDirectories;
|
||||
string? personDisplayDirectoryName;
|
||||
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)
|
||||
{
|
||||
List<Models.PersonContainer> results = new();
|
||||
List<Models.PersonContainer> results = [];
|
||||
string[] segments;
|
||||
const int zero = 0;
|
||||
List<string?> changes;
|
||||
string innerGroupDirectoryName;
|
||||
PersonDirectory personDirectory;
|
||||
List<string?> allChanges = new();
|
||||
List<string?> allChanges = [];
|
||||
string[] personDisplayDirectories;
|
||||
const char exclamationPoint = '!';
|
||||
char @char = groupDirectoryName[zero];
|
||||
@ -250,9 +250,9 @@ internal abstract class PersonContainer
|
||||
List<Models.PersonContainer> results;
|
||||
List<string?> changes;
|
||||
string groupDirectoryName;
|
||||
List<string?> allChanges = new();
|
||||
List<string?> allChanges = [];
|
||||
List<Models.PersonContainer> collection;
|
||||
List<Models.PersonContainer> personContainers = new();
|
||||
List<Models.PersonContainer> personContainers = [];
|
||||
for (int i = 0; i < personCharacters.Length; i++)
|
||||
{
|
||||
foreach (string groupDirectory in groupDirectories)
|
||||
@ -285,7 +285,7 @@ internal abstract class PersonContainer
|
||||
}
|
||||
string[] groupDirectories = Directory.GetDirectories(a2PeopleSingletonDirectory, "*", SearchOption.TopDirectoryOnly);
|
||||
if (groupDirectories.Length == 0)
|
||||
results = new();
|
||||
results = [];
|
||||
else
|
||||
results = GetPersonContainersGroups(personBirthdayFormat, facesFileNameExtension, personCharacters, groupDirectories);
|
||||
return results;
|
||||
@ -293,7 +293,7 @@ internal abstract class PersonContainer
|
||||
|
||||
internal static List<long> GetPersonKeys(IEnumerable<Models.PersonContainer> personContainers)
|
||||
{
|
||||
List<long> results = new();
|
||||
List<long> results = [];
|
||||
long personKey;
|
||||
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)
|
||||
{
|
||||
string[] results = Array.Empty<string>();
|
||||
string[] results = [];
|
||||
bool? result = null;
|
||||
string year;
|
||||
string directoryName;
|
||||
string[] directorySegments;
|
||||
List<DateTime> collection = new();
|
||||
List<DateTime> collection = [];
|
||||
string? check = Path.GetFullPath(fileHolder.FullName);
|
||||
string? pathRoot = Path.GetPathRoot(fileHolder.FullName);
|
||||
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)
|
||||
{
|
||||
List<DateTime> results = new()
|
||||
{
|
||||
List<DateTime> results =
|
||||
[
|
||||
creationTime,
|
||||
lastWriteTime
|
||||
};
|
||||
if (dateTime.HasValue)
|
||||
results.Add(dateTime.Value);
|
||||
if (dateTimeDigitized.HasValue)
|
||||
results.Add(dateTimeDigitized.Value);
|
||||
if (dateTimeFromName.HasValue)
|
||||
results.Add(dateTimeFromName.Value);
|
||||
if (dateTimeOriginal.HasValue)
|
||||
results.Add(dateTimeOriginal.Value);
|
||||
if (gpsDateStamp.HasValue)
|
||||
results.Add(gpsDateStamp.Value);
|
||||
lastWriteTime,
|
||||
.. dateTime.HasValue ? [dateTime.Value] : [],
|
||||
.. dateTimeDigitized.HasValue ? [dateTimeDigitized.Value] : [],
|
||||
.. dateTimeFromName.HasValue ? [dateTimeFromName.Value] : [],
|
||||
.. dateTimeOriginal.HasValue ? [dateTimeOriginal.Value] : [],
|
||||
.. gpsDateStamp.HasValue ? [gpsDateStamp.Value] : [],
|
||||
];
|
||||
return results;
|
||||
}
|
||||
|
||||
@ -113,21 +108,16 @@ internal abstract class Property
|
||||
result = DateTime.MinValue;
|
||||
else
|
||||
{
|
||||
List<DateTime> dateTimes = new()
|
||||
{
|
||||
List<DateTime> dateTimes =
|
||||
[
|
||||
property.CreationTime,
|
||||
property.LastWriteTime
|
||||
};
|
||||
if (property.DateTime.HasValue)
|
||||
dateTimes.Add(property.DateTime.Value);
|
||||
if (property.DateTimeDigitized.HasValue)
|
||||
dateTimes.Add(property.DateTimeDigitized.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);
|
||||
property.LastWriteTime,
|
||||
.. property.DateTime.HasValue ? [property.DateTime.Value] : [],
|
||||
.. property.DateTimeDigitized.HasValue ? [property.DateTimeDigitized.Value] : [],
|
||||
.. property.DateTimeFromName.HasValue ? [property.DateTimeFromName.Value] : [],
|
||||
.. property.DateTimeOriginal.HasValue ? [property.DateTimeOriginal.Value] : [],
|
||||
.. property.GPSDateStamp.HasValue ? [property.GPSDateStamp.Value] : [],
|
||||
];
|
||||
result = dateTimes.Min();
|
||||
}
|
||||
return result;
|
||||
@ -191,7 +181,7 @@ internal abstract class Property
|
||||
{
|
||||
TimeSpan result;
|
||||
DateTime? minimumDateTime;
|
||||
List<long> ticksCollection = new();
|
||||
List<long> ticksCollection = [];
|
||||
foreach (Models.Item item in container.Items)
|
||||
{
|
||||
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)
|
||||
{
|
||||
List<Models.Item> results = new();
|
||||
List<Models.Item> results = [];
|
||||
int j = i;
|
||||
long? ticks;
|
||||
Models.Item item;
|
||||
@ -225,7 +215,7 @@ internal abstract class Property
|
||||
Models.Item nextItem;
|
||||
DateTime? minimumDateTime;
|
||||
DateTime? nextMinimumDateTime;
|
||||
List<DateTime> dateTimes = new();
|
||||
List<DateTime> dateTimes = [];
|
||||
for (; j < container.Items.Count; j++)
|
||||
{
|
||||
ticks = null;
|
||||
|
@ -9,15 +9,15 @@ internal abstract class WorkingDirectory
|
||||
if (executingAssemblyName is null)
|
||||
throw new Exception();
|
||||
string traceFile;
|
||||
List<string> directories = new();
|
||||
Environment.SpecialFolder[] specialFolders = new Environment.SpecialFolder[]
|
||||
{
|
||||
List<string> directories = [];
|
||||
Environment.SpecialFolder[] specialFolders =
|
||||
[
|
||||
Environment.SpecialFolder.LocalApplicationData,
|
||||
Environment.SpecialFolder.ApplicationData,
|
||||
Environment.SpecialFolder.History,
|
||||
Environment.SpecialFolder.CommonApplicationData,
|
||||
Environment.SpecialFolder.InternetCache
|
||||
};
|
||||
];
|
||||
foreach (Environment.SpecialFolder specialFolder in specialFolders)
|
||||
directories.Add(Path.Combine(Environment.GetFolderPath(specialFolder), subDirectoryName, executingAssemblyName));
|
||||
foreach (string directory in directories)
|
||||
|
@ -7,7 +7,7 @@ internal abstract partial class XDirectory
|
||||
|
||||
private static int GetCeilingAverage(List<string[]> fileCollection)
|
||||
{
|
||||
List<int> counts = new();
|
||||
List<int> counts = [];
|
||||
foreach (string[] files in fileCollection)
|
||||
counts.Add(files.Length);
|
||||
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)
|
||||
{
|
||||
List<string[]> results = new();
|
||||
List<string[]> results = [];
|
||||
foreach (string[] files in fileCollection)
|
||||
{
|
||||
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)
|
||||
{
|
||||
List<string[]> results = new();
|
||||
List<string[]> results = [];
|
||||
if (!fileSearchFilter.Contains('*'))
|
||||
fileSearchFilter = string.Concat('*', fileSearchFilter);
|
||||
if (!directorySearchFilter.Contains('*'))
|
||||
@ -54,7 +54,7 @@ internal abstract partial class XDirectory
|
||||
|
||||
internal static IReadOnlyDictionary<string, List<string>> GetFilesKeyValuePairs(List<string[]> filesCollection)
|
||||
{
|
||||
Dictionary<string, List<string>> results = new();
|
||||
Dictionary<string, List<string>> results = [];
|
||||
string fileName;
|
||||
List<string>? collection;
|
||||
foreach (string[] files in filesCollection)
|
||||
@ -64,7 +64,7 @@ internal abstract partial class XDirectory
|
||||
fileName = Path.GetFileName(file);
|
||||
if (!results.TryGetValue(fileName, out collection))
|
||||
{
|
||||
results.Add(fileName, new());
|
||||
results.Add(fileName, []);
|
||||
if (!results.TryGetValue(fileName, out collection))
|
||||
throw new Exception();
|
||||
}
|
||||
@ -81,7 +81,7 @@ internal abstract partial class XDirectory
|
||||
List<string>? collection;
|
||||
string fileNameUpperExtension;
|
||||
int length = extension.Length;
|
||||
List<string> renameCollection = new();
|
||||
List<string> renameCollection = [];
|
||||
foreach (string[] files in jsonFilesCollection)
|
||||
{
|
||||
foreach (string file in files)
|
||||
@ -127,10 +127,10 @@ internal abstract partial class XDirectory
|
||||
{
|
||||
string? result = null;
|
||||
FileInfo possibleFileInfo;
|
||||
List<long> lengths = new();
|
||||
List<string> matches = new();
|
||||
List<long> lengths = [];
|
||||
List<string> matches = [];
|
||||
FileInfo fileInfo = new(file);
|
||||
List<DateTime> creationTimes = new();
|
||||
List<DateTime> creationTimes = [];
|
||||
foreach (string possible in collection)
|
||||
{
|
||||
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)
|
||||
{
|
||||
List<FilePair> results = new();
|
||||
List<FilePair> results = [];
|
||||
string? match;
|
||||
string fileName;
|
||||
bool uniqueFileName;
|
||||
@ -165,7 +165,7 @@ internal abstract partial class XDirectory
|
||||
if (!uniqueFileName)
|
||||
isNotUniqueAndNeedsReview = GetIsNotUniqueAndNeedsReview(file, 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
|
||||
{
|
||||
if (collection.Count == 0)
|
||||
@ -215,7 +215,7 @@ internal abstract partial class XDirectory
|
||||
FileInfo? toFileInfo;
|
||||
FileInfo fromFileInfo;
|
||||
string checkDirectory;
|
||||
List<(string, string)> rename = new();
|
||||
List<(string, string)> rename = [];
|
||||
string resultAllInOneDirectory = Path.Combine(jsonGroupDirectory, resultAllInOne);
|
||||
foreach (FilePair item in filePairs)
|
||||
{
|
||||
@ -256,7 +256,7 @@ internal abstract partial class XDirectory
|
||||
{
|
||||
string checkFile;
|
||||
string? checkDirectory;
|
||||
List<string> directories = new();
|
||||
List<string> directories = [];
|
||||
foreach (string file in files)
|
||||
{
|
||||
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)
|
||||
{
|
||||
List<SortedRecord> results = new();
|
||||
List<SortedRecord> results = [];
|
||||
int? id;
|
||||
Models.FileHolder fileHolder;
|
||||
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)
|
||||
{
|
||||
List<(Models.FileHolder, string?, string)> results = new();
|
||||
List<(Models.FileHolder, string?, string)> results = [];
|
||||
string paddedId;
|
||||
string checkFile;
|
||||
string directory;
|
||||
@ -355,9 +355,9 @@ internal abstract partial class XDirectory
|
||||
string? alternateCheckFile;
|
||||
string? alternateDirectory;
|
||||
Models.FileHolder fileHolder;
|
||||
List<int> distinctIds = new();
|
||||
List<string> distinct = new();
|
||||
List<string> distinctDirectories = new();
|
||||
List<int> distinctIds = [];
|
||||
List<string> distinct = [];
|
||||
List<string> distinctDirectories = [];
|
||||
int intMinValueLength = int.MinValue.ToString().Length;
|
||||
SortedRecord[] sortedRecords = GetSortedRecords(propertyConfiguration.Offset, filesCollection);
|
||||
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)
|
||||
{
|
||||
List<string> results = new();
|
||||
List<string> results = [];
|
||||
FileInfo fileInfo;
|
||||
foreach ((Models.FileHolder fileHolder, string? alternateFile, string to) in toDoCollection)
|
||||
{
|
||||
|
@ -30,7 +30,7 @@ internal abstract class XPath
|
||||
internal static bool DeleteEmptyDirectories(string rootDirectory)
|
||||
{
|
||||
bool result;
|
||||
List<string> results = new();
|
||||
List<string> results = [];
|
||||
DeleteEmptyDirectories(rootDirectory, results);
|
||||
result = results.Count > 0;
|
||||
return result;
|
||||
@ -43,7 +43,7 @@ internal abstract class XPath
|
||||
string[] files;
|
||||
string[] directories = Directory.GetDirectories(rootDirectory, "*", SearchOption.TopDirectoryOnly);
|
||||
if (directories.Length > 0)
|
||||
files = Array.Empty<string>();
|
||||
files = [];
|
||||
else
|
||||
files = Directory.GetFiles(rootDirectory, "*", SearchOption.AllDirectories);
|
||||
if (directories.Length == 0 && files.Length == 0)
|
||||
@ -59,7 +59,7 @@ internal abstract class XPath
|
||||
}
|
||||
else
|
||||
{
|
||||
List<string> check = new();
|
||||
List<string> check = [];
|
||||
foreach (string directory in directories)
|
||||
{
|
||||
DeleteEmptyDirectories(directory, check);
|
||||
@ -112,7 +112,7 @@ internal abstract class XPath
|
||||
|
||||
internal static List<string> GetDirectoryNames(string directory)
|
||||
{
|
||||
List<string> results = new();
|
||||
List<string> results = [];
|
||||
string? fileName;
|
||||
string? checkDirectory = directory;
|
||||
string? pathRoot = Path.GetPathRoot(directory);
|
||||
@ -148,7 +148,7 @@ internal abstract class XPath
|
||||
|
||||
internal static List<string> GetDirectories(string directory)
|
||||
{
|
||||
List<string> results = new();
|
||||
List<string> results = [];
|
||||
string? checkDirectory = directory;
|
||||
string? pathRoot = Path.GetPathRoot(directory);
|
||||
if (string.IsNullOrEmpty(pathRoot))
|
||||
@ -172,7 +172,7 @@ internal abstract class XPath
|
||||
int result = 0;
|
||||
string? directory;
|
||||
string? checkDirectory;
|
||||
List<string> results = new();
|
||||
List<string> results = [];
|
||||
checkDirectory = sourceDirectory;
|
||||
for (int i = 0; i < int.MaxValue; i++)
|
||||
{
|
||||
@ -211,7 +211,7 @@ internal abstract class XPath
|
||||
IEnumerable<string> fileSystemEntries;
|
||||
string[] directories;
|
||||
if (!Directory.Exists(rootDirectory))
|
||||
directories = Array.Empty<string>();
|
||||
directories = [];
|
||||
else
|
||||
directories = Directory.GetDirectories(rootDirectory, "*", SearchOption.AllDirectories);
|
||||
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)
|
||||
{
|
||||
Dictionary<string, string[]> results = new();
|
||||
Dictionary<string, string[]> results = [];
|
||||
string directory;
|
||||
string checkDirectory;
|
||||
int converted = int.Parse($"1{new string('0', propertyConfiguration.ResultAllInOneSubdirectoryLength)}");
|
||||
int plusOne = converted + 1;
|
||||
List<string> collection = new();
|
||||
List<string> collection = [];
|
||||
if (directories is not null)
|
||||
{
|
||||
foreach (string key in directories)
|
||||
|
Loading…
x
Reference in New Issue
Block a user