diff --git a/Instance/DlibDotNet.cs b/Instance/DlibDotNet.cs index c18bdb9..64e5470 100644 --- a/Instance/DlibDotNet.cs +++ b/Instance/DlibDotNet.cs @@ -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) diff --git a/Shared/Models/Face.cs b/Shared/Models/Face.cs index 0af7482..922641c 100644 --- a/Shared/Models/Face.cs +++ b/Shared/Models/Face.cs @@ -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(); } diff --git a/Shared/Models/FaceFileSystem.cs b/Shared/Models/FaceFileSystem.cs index 95cec19..0f529bc 100644 --- a/Shared/Models/FaceFileSystem.cs +++ b/Shared/Models/FaceFileSystem.cs @@ -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++; diff --git a/Shared/Models/Item.cs b/Shared/Models/Item.cs index 8d66cc6..44e2459 100644 --- a/Shared/Models/Item.cs +++ b/Shared/Models/Item.cs @@ -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(), null, null, null) + this(sourceDirectoryFileHolder, relativePath, sourceDirectoryFileHolder, null, false, isValidImageFormatExtension, null, [], null, null, null) { } public override string ToString() diff --git a/Shared/Models/MappingFromItem.cs b/Shared/Models/MappingFromItem.cs index 11a5ec6..2226102 100644 --- a/Shared/Models/MappingFromItem.cs +++ b/Shared/Models/MappingFromItem.cs @@ -35,7 +35,7 @@ public record MappingFromItem(DateTime[] ContainerDateTimes, List 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(), 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; } diff --git a/Shared/Models/PersonContainer.cs b/Shared/Models/PersonContainer.cs index be012a3..5ffabcd 100644 --- a/Shared/Models/PersonContainer.cs +++ b/Shared/Models/PersonContainer.cs @@ -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(), 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(), 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(), displayDirectoryName, key, personDirectory) + this(approximateYears, [birthdays], [], displayDirectoryName, key, personDirectory) { } public PersonContainer(int? approximateYears, string[] displayDirectoryAllFiles, string displayDirectoryName, PersonDirectory? personDirectory) : diff --git a/Shared/Models/Stateless/Methods/Container.cs b/Shared/Models/Stateless/Methods/Container.cs index ed83fe4..7572df2 100644 --- a/Shared/Models/Stateless/Methods/Container.cs +++ b/Shared/Models/Stateless/Methods/Container.cs @@ -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(); + 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 results = new(); + List 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(); + 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()); + (result, results) = (null, []); else { string json = File.ReadAllText(filePair.Match); if (string.IsNullOrEmpty(json)) - (result, results) = (null, Array.Empty()); + (result, results) = (null, []); else { result = JsonSerializer.Deserialize(json, PropertyGenerationContext.Default.Property); if (result is null) - results = Array.Empty(); + results = []; else { - results = alternateFilesCollectionDirectory is null ? Array.Empty() : 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 GetFilePairs(Properties.IPropertyConfiguration propertyConfiguration, string aPropertySingletonDirectory, string filesCollectionDirectory, string extension, List filePairs) { - List results = new(); + List 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 filesCollection, string directorySearchFilter) { - List results = new(); + List results = []; string? directory; List? items; Models.Container container; const string extension = ".json"; - List directories = new(); - Dictionary> directoryToItems = new(); + List directories = []; + Dictionary> 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 GetFilteredDistinctIds(Properties.IPropertyConfiguration propertyConfiguration, Models.Container[] containers) { - List results = new(); + List results = []; Models.Item[] filteredItems; foreach (Models.Container container in containers) { @@ -244,8 +244,8 @@ internal abstract class Container internal static ReadOnlyCollection GetItems(Properties.IPropertyConfiguration propertyConfiguration, ReadOnlyCollection containers, bool distinctItems, bool filterItems) { - List results = new(); - List distinct = new(); + List results = []; + List distinct = []; IEnumerable filteredItems; foreach (Models.Container container in containers) { diff --git a/Shared/Models/Stateless/Methods/Face.cs b/Shared/Models/Stateless/Methods/Face.cs index e43f94b..28ee74e 100644 --- a/Shared/Models/Stateless/Methods/Face.cs +++ b/Shared/Models/Stateless/Methods/Face.cs @@ -37,7 +37,7 @@ internal abstract class Face private static List GetFaces(string jsonFileFullName, int? maximum) { - List results = new(); + List results = []; Tuple? 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 faces) { bool result = false; - List results = new(); + List results = []; foreach (Models.Face face in faces) { if (face.Mapping?.MappingFromLocation?.Eyeα is null || face.Mapping.MappingFromLocation.EyeReview is null) diff --git a/Shared/Models/Stateless/Methods/FaceFileSystem.cs b/Shared/Models/Stateless/Methods/FaceFileSystem.cs index 82d1dff..61a9d60 100644 --- a/Shared/Models/Stateless/Methods/FaceFileSystem.cs +++ b/Shared/Models/Stateless/Methods/FaceFileSystem.cs @@ -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 results = new(); + List results = []; FileInfo fileInfo; int? locationIndex; string jsonFileName; diff --git a/Shared/Models/Stateless/Methods/FileHolder.cs b/Shared/Models/Stateless/Methods/FileHolder.cs index 7bae4b7..31b0c2a 100644 --- a/Shared/Models/Stateless/Methods/FileHolder.cs +++ b/Shared/Models/Stateless/Methods/FileHolder.cs @@ -5,7 +5,7 @@ internal abstract class FileHolder internal static List GetFileHolders((string, string[])[] collection) { - List results = new(); + List results = []; foreach ((string _, string[] files) in collection) results.AddRange(files.Select(l => new Models.FileHolder(l))); return results; diff --git a/Shared/Models/Stateless/Methods/FileSystem.cs b/Shared/Models/Stateless/Methods/FileSystem.cs index 8b35816..2c910eb 100644 --- a/Shared/Models/Stateless/Methods/FileSystem.cs +++ b/Shared/Models/Stateless/Methods/FileSystem.cs @@ -42,11 +42,11 @@ internal abstract class FileSystem internal static List GetFileSystemCollection(string requestPath, (string RootResultsDirectoryAbsoluteUri, string C_ResizeContentDirectory, string D_FacesContentDirectory, string E_DistanceCollectionDirectory) tuple, string[] directories, string[] files, bool all) { - List results = new(); + List results = []; Models.Face face; Models.FaceFileSystem faceFileSystem; IEnumerator subDirectoryFiles; - List faceFileSystemCollection = new(); + List faceFileSystemCollection = []; for (int i = 0; i < directories.Length; i++) { subDirectoryFiles = Directory.EnumerateFiles(directories[i], "*.json", SearchOption.TopDirectoryOnly).GetEnumerator(); diff --git a/Shared/Models/Stateless/Methods/IMappingFromItem.cs b/Shared/Models/Stateless/Methods/IMappingFromItem.cs index 6f9a39c..02ebeaf 100644 --- a/Shared/Models/Stateless/Methods/IMappingFromItem.cs +++ b/Shared/Models/Stateless/Methods/IMappingFromItem.cs @@ -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(), item, item.ResizedFileHolder); + => GetMappingFromItem(containerDateTimes: [], item, item.ResizedFileHolder); } \ No newline at end of file diff --git a/Shared/Models/Stateless/Methods/Item.cs b/Shared/Models/Stateless/Methods/Item.cs index 96cec08..5e3b37b 100644 --- a/Shared/Models/Stateless/Methods/Item.cs +++ b/Shared/Models/Stateless/Methods/Item.cs @@ -5,8 +5,8 @@ internal abstract class Item internal static List GetMerged(List itemsA, List itemsB) { - List results = new(); - List collection = new(); + List results = []; + List collection = []; foreach (Models.Item item in itemsA) { results.Add(item); diff --git a/Shared/Models/Stateless/Methods/Location.cs b/Shared/Models/Stateless/Methods/Location.cs index 3fd1784..bbe2c1f 100644 --- a/Shared/Models/Stateless/Methods/Location.cs +++ b/Shared/Models/Stateless/Methods/Location.cs @@ -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 GetLocations(List> locationContainers, List faces, List mappingFromPhotoPrismCollection, float rectangleIntersectMinimum) { - List results = new(); + List results = []; bool any; bool matches; float? percent; @@ -331,7 +331,7 @@ internal abstract class Location internal static List FilterByIntersect(Models.Face[] faces, float rectangleIntersectMinimum, int wholePercentages) { - List results = new(); + List results = []; float? percent; int width, height; int faceLocationWholePercentages; diff --git a/Shared/Models/Stateless/Methods/PersonBirthday.cs b/Shared/Models/Stateless/Methods/PersonBirthday.cs index 5a3b218..1fab3dd 100644 --- a/Shared/Models/Stateless/Methods/PersonBirthday.cs +++ b/Shared/Models/Stateless/Methods/PersonBirthday.cs @@ -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) diff --git a/Shared/Models/Stateless/Methods/PersonContainer.cs b/Shared/Models/Stateless/Methods/PersonContainer.cs index 94883e9..d7c4fee 100644 --- a/Shared/Models/Stateless/Methods/PersonContainer.cs +++ b/Shared/Models/Stateless/Methods/PersonContainer.cs @@ -5,12 +5,12 @@ internal abstract class PersonContainer private static List GetFiles(string personDisplayDirectory) { - List results = new(); + List results = []; string[] files; string extension; string checkFile; string directoryName; - List distinct = new(); + List 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 GetPersonContainersCollections(string facesFileNameExtension, PersonDirectory personDirectory, char numberSign, string personDisplayDirectory, string personDisplayDirectoryName, int? approximateYears, List<(string PersonKeyFormatted, Models.PersonBirthday PersonBirthday)> collection) { - List results = new(); + List results = []; long personKey; string[] files; const int zero = 0; @@ -155,11 +155,11 @@ internal abstract class PersonContainer private static (List, List) GetPersonContainersGroup(string personBirthdayFormat, string facesFileNameExtension, char[] personCharacters, PersonDirectory personDirectory, string[] personDisplayDirectories) { - List results = new(); + List results = []; string? minusOne; int? approximateYears; char numberSign = '#'; - List changes = new(); + List changes = []; string[] personKeyDirectories; string? personDisplayDirectoryName; Models.PersonContainer personContainer; @@ -200,13 +200,13 @@ internal abstract class PersonContainer private static (List, List) GetPersonContainersInnerGroups(string personBirthdayFormat, string facesFileNameExtension, char[] personCharacters, string groupDirectory, string groupDirectoryName) { - List results = new(); + List results = []; string[] segments; const int zero = 0; List changes; string innerGroupDirectoryName; PersonDirectory personDirectory; - List allChanges = new(); + List allChanges = []; string[] personDisplayDirectories; const char exclamationPoint = '!'; char @char = groupDirectoryName[zero]; @@ -250,9 +250,9 @@ internal abstract class PersonContainer List results; List changes; string groupDirectoryName; - List allChanges = new(); + List allChanges = []; List collection; - List personContainers = new(); + List 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 GetPersonKeys(IEnumerable personContainers) { - List results = new(); + List results = []; long personKey; foreach (Models.PersonContainer personContainer in personContainers) { diff --git a/Shared/Models/Stateless/Methods/Property.cs b/Shared/Models/Stateless/Methods/Property.cs index fdb0f31..efe86c5 100644 --- a/Shared/Models/Stateless/Methods/Property.cs +++ b/Shared/Models/Stateless/Methods/Property.cs @@ -49,12 +49,12 @@ internal abstract class Property internal static (bool?, string[]) IsWrongYear(Models.FileHolder fileHolder, DateTime? dateTimeOriginal, List dateTimes) { - string[] results = Array.Empty(); + string[] results = []; bool? result = null; string year; string directoryName; string[] directorySegments; - List collection = new(); + List 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 GetDateTimes(DateTime creationTime, DateTime lastWriteTime, DateTime? dateTime, DateTime? dateTimeDigitized, DateTime? dateTimeFromName, DateTime? dateTimeOriginal, DateTime? gpsDateStamp) { - List results = new() - { + List 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 dateTimes = new() - { + List 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 ticksCollection = new(); + List 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, List) Get(Models.Container container, TimeSpan threeStandardDeviationHigh, int i) { - List results = new(); + List 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 dateTimes = new(); + List dateTimes = []; for (; j < container.Items.Count; j++) { ticks = null; diff --git a/Shared/Models/Stateless/Methods/WorkingDirectory.cs b/Shared/Models/Stateless/Methods/WorkingDirectory.cs index 50580c9..cff088b 100644 --- a/Shared/Models/Stateless/Methods/WorkingDirectory.cs +++ b/Shared/Models/Stateless/Methods/WorkingDirectory.cs @@ -9,15 +9,15 @@ internal abstract class WorkingDirectory if (executingAssemblyName is null) throw new Exception(); string traceFile; - List directories = new(); - Environment.SpecialFolder[] specialFolders = new Environment.SpecialFolder[] - { + List 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) diff --git a/Shared/Models/Stateless/Methods/XDirectory.cs b/Shared/Models/Stateless/Methods/XDirectory.cs index 21bfd68..95c170e 100644 --- a/Shared/Models/Stateless/Methods/XDirectory.cs +++ b/Shared/Models/Stateless/Methods/XDirectory.cs @@ -7,7 +7,7 @@ internal abstract partial class XDirectory private static int GetCeilingAverage(List fileCollection) { - List counts = new(); + List 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 GetFilesCollection(List fileCollection, int ceilingAverage) { - List results = new(); + List results = []; foreach (string[] files in fileCollection) { if (files.Length < ceilingAverage) @@ -32,7 +32,7 @@ internal abstract partial class XDirectory internal static List GetFilesCollection(string directory, string directorySearchFilter, string fileSearchFilter, bool useCeilingAverage) { - List results = new(); + List results = []; if (!fileSearchFilter.Contains('*')) fileSearchFilter = string.Concat('*', fileSearchFilter); if (!directorySearchFilter.Contains('*')) @@ -54,7 +54,7 @@ internal abstract partial class XDirectory internal static IReadOnlyDictionary> GetFilesKeyValuePairs(List filesCollection) { - Dictionary> results = new(); + Dictionary> results = []; string fileName; List? 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? collection; string fileNameUpperExtension; int length = extension.Length; - List renameCollection = new(); + List 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 lengths = new(); - List matches = new(); + List lengths = []; + List matches = []; FileInfo fileInfo = new(file); - List creationTimes = new(); + List creationTimes = []; foreach (string possible in collection) { possibleFileInfo = new(possible); @@ -147,7 +147,7 @@ internal abstract partial class XDirectory internal static List GetFiles(List filesCollection, IReadOnlyDictionary> fileNamesToFiles, string extension, IReadOnlyDictionary> compareFileNamesToFiles) { - List results = new(); + List 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 directories = new(); + List 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 filesCollection) { - List results = new(); + List 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 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 distinctIds = new(); - List distinct = new(); - List distinctDirectories = new(); + List distinctIds = []; + List distinct = []; + List 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 CopyOrMove(List<(Models.FileHolder, string?, string)> toDoCollection, bool move, bool moveBack, Action? tick) { - List results = new(); + List results = []; FileInfo fileInfo; foreach ((Models.FileHolder fileHolder, string? alternateFile, string to) in toDoCollection) { diff --git a/Shared/Models/Stateless/Methods/XPath.cs b/Shared/Models/Stateless/Methods/XPath.cs index 7d2b13a..cdc8dd2 100644 --- a/Shared/Models/Stateless/Methods/XPath.cs +++ b/Shared/Models/Stateless/Methods/XPath.cs @@ -30,7 +30,7 @@ internal abstract class XPath internal static bool DeleteEmptyDirectories(string rootDirectory) { bool result; - List results = new(); + List 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(); + 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 check = new(); + List check = []; foreach (string directory in directories) { DeleteEmptyDirectories(directory, check); @@ -112,7 +112,7 @@ internal abstract class XPath internal static List GetDirectoryNames(string directory) { - List results = new(); + List results = []; string? fileName; string? checkDirectory = directory; string? pathRoot = Path.GetPathRoot(directory); @@ -148,7 +148,7 @@ internal abstract class XPath internal static List GetDirectories(string directory) { - List results = new(); + List 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 results = new(); + List results = []; checkDirectory = sourceDirectory; for (int i = 0; i < int.MaxValue; i++) { @@ -211,7 +211,7 @@ internal abstract class XPath IEnumerable fileSystemEntries; string[] directories; if (!Directory.Exists(rootDirectory)) - directories = Array.Empty(); + directories = []; else directories = Directory.GetDirectories(rootDirectory, "*", SearchOption.AllDirectories); foreach (string directory in directories) @@ -285,12 +285,12 @@ internal abstract class XPath internal static Dictionary GetKeyValuePairs(IPropertyConfiguration propertyConfiguration, string? resultsFullGroupDirectory, string[]? directories) { - Dictionary results = new(); + Dictionary results = []; string directory; string checkDirectory; int converted = int.Parse($"1{new string('0', propertyConfiguration.ResultAllInOneSubdirectoryLength)}"); int plusOne = converted + 1; - List collection = new(); + List collection = []; if (directories is not null) { foreach (string key in directories)