Tested first run
This commit is contained in:
@ -147,19 +147,15 @@ public class Container
|
||||
private static Shared.Models.Container[] GetContainers(Configuration configuration, bool firstRun, string aPropertySingletonDirectory, List<(int, string, FileHolder[], int)> fileHolderGroupCollection, List<(int, string, List<(string, Shared.Models.Property?)>, int)> collectionFromJson)
|
||||
{
|
||||
Shared.Models.Container[] results;
|
||||
Item item;
|
||||
int length;
|
||||
int additional;
|
||||
string inferred;
|
||||
string fileName;
|
||||
string extension;
|
||||
List<Item> items;
|
||||
string[] existing;
|
||||
string keyWithJson;
|
||||
string relativePath;
|
||||
string? directoryName;
|
||||
string extensionLowered;
|
||||
FileHolder keyFileHolder;
|
||||
string? fileNameWithoutExtension;
|
||||
bool isValidImageFormatExtension;
|
||||
Shared.Models.Container container;
|
||||
List<string> keySourceDirectories;
|
||||
@ -170,22 +166,8 @@ public class Container
|
||||
{
|
||||
foreach (FileHolder sourceDirectoryFileHolder in sourceDirectoryFileHolderCollection)
|
||||
{
|
||||
relativePath = Shared.Models.Stateless.Methods.IPath.GetRelativePath(sourceDirectoryFileHolder.FullName, length);
|
||||
relativePath = Shared.Models.Stateless.Methods.IPath.GetRelativePath(sourceDirectoryFileHolder.FullName, length, forceExtensionToLower: true);
|
||||
fileHolderKeyValuePairs.Add(relativePath, new(sourceDirectory, sourceDirectoryFileHolder));
|
||||
extension = Path.GetExtension(sourceDirectoryFileHolder.FullName);
|
||||
extensionLowered = Path.GetExtension(sourceDirectoryFileHolder.FullName).ToLower();
|
||||
if (extension != extensionLowered)
|
||||
{
|
||||
directoryName = Path.GetDirectoryName(sourceDirectoryFileHolder.FullName);
|
||||
if (string.IsNullOrEmpty(directoryName))
|
||||
continue;
|
||||
fileNameWithoutExtension = Path.GetFileNameWithoutExtension(sourceDirectoryFileHolder.FullName);
|
||||
if (string.IsNullOrEmpty(fileNameWithoutExtension))
|
||||
continue;
|
||||
fileName = Path.Combine(directoryName, $"{fileNameWithoutExtension}{extensionLowered}");
|
||||
relativePath = Shared.Models.Stateless.Methods.IPath.GetRelativePath(fileName, length);
|
||||
fileHolderKeyValuePairs.Add(relativePath, new(sourceDirectory, sourceDirectoryFileHolder));
|
||||
}
|
||||
}
|
||||
}
|
||||
length = aPropertySingletonDirectory.Length;
|
||||
@ -197,7 +179,7 @@ public class Container
|
||||
keySourceDirectories = new();
|
||||
foreach ((string sourceDirectoryFile, Shared.Models.Property? property) in collection)
|
||||
{
|
||||
keyWithJson = Shared.Models.Stateless.Methods.IPath.GetRelativePath(sourceDirectoryFile, length);
|
||||
keyWithJson = Shared.Models.Stateless.Methods.IPath.GetRelativePath(sourceDirectoryFile, length, forceExtensionToLower: false);
|
||||
relativePath = keyWithJson[..^5];
|
||||
if (!fileHolderKeyValuePairs.ContainsKey(relativePath))
|
||||
{
|
||||
@ -207,7 +189,8 @@ public class Container
|
||||
continue;
|
||||
keySourceDirectories.Add(string.Concat(keyFileHolder.DirectoryName));
|
||||
isValidImageFormatExtension = configuration.ValidImageFormatExtensions.Contains(keyFileHolder.ExtensionLowered);
|
||||
items.Add(new(sourceDirectoryFile, relativePath, keyFileHolder, isValidImageFormatExtension, property, true, null));
|
||||
item = new(sourceDirectoryFile, relativePath, keyFileHolder, isValidImageFormatExtension, property, true, null);
|
||||
items.Add(item);
|
||||
}
|
||||
else
|
||||
{
|
||||
@ -219,11 +202,12 @@ public class Container
|
||||
continue;
|
||||
isValidImageFormatExtension = configuration.ValidImageFormatExtensions.Contains(keyFileHolder.ExtensionLowered);
|
||||
if (property?.Id is null || property?.Width is null || property?.Height is null)
|
||||
items.Add(new(sourceDirectoryFile, relativePath, keyFileHolder, isValidImageFormatExtension, property, false, null));
|
||||
item = new(sourceDirectoryFile, relativePath, keyFileHolder, isValidImageFormatExtension, property, false, null);
|
||||
else if (configuration.PropertiesChangedForProperty || property.LastWriteTime != keyFileHolder.LastWriteTime || property.FileSize != keyFileHolder.Length)
|
||||
items.Add(new(sourceDirectoryFile, relativePath, keyFileHolder, isValidImageFormatExtension, property, false, true));
|
||||
item = new(sourceDirectoryFile, relativePath, keyFileHolder, isValidImageFormatExtension, property, false, true);
|
||||
else
|
||||
items.Add(new(sourceDirectoryFile, relativePath, keyFileHolder, isValidImageFormatExtension, property, false, false));
|
||||
item = new(sourceDirectoryFile, relativePath, keyFileHolder, isValidImageFormatExtension, property, false, false);
|
||||
items.Add(item);
|
||||
}
|
||||
}
|
||||
if (items.Any())
|
||||
@ -240,7 +224,7 @@ public class Container
|
||||
items = new();
|
||||
foreach (FileHolder sourceDirectoryFileHolder in sourceDirectoryFileHolderCollection)
|
||||
{
|
||||
relativePath = Shared.Models.Stateless.Methods.IPath.GetRelativePath(sourceDirectoryFileHolder.FullName, length);
|
||||
relativePath = Shared.Models.Stateless.Methods.IPath.GetRelativePath(sourceDirectoryFileHolder.FullName, length, forceExtensionToLower: true);
|
||||
if (!fileHolderKeyValuePairs.ContainsKey(relativePath))
|
||||
continue;
|
||||
if (!fileHolderKeyValuePairs.Remove(relativePath))
|
||||
@ -248,7 +232,13 @@ public class Container
|
||||
if (sourceDirectoryFileHolder.ExtensionLowered is ".json")
|
||||
continue;
|
||||
isValidImageFormatExtension = configuration.ValidImageFormatExtensions.Contains(sourceDirectoryFileHolder.ExtensionLowered);
|
||||
items.Add(new(relativePath, sourceDirectoryFileHolder.FullName, sourceDirectoryFileHolder, isValidImageFormatExtension, null, null, null));
|
||||
if (firstRun)
|
||||
item = new(sourceDirectoryFileHolder.FullName, relativePath, sourceDirectoryFileHolder, isValidImageFormatExtension, null, null, null);
|
||||
else if (!isValidImageFormatExtension)
|
||||
item = new(sourceDirectoryFileHolder.FullName, relativePath, sourceDirectoryFileHolder, isValidImageFormatExtension, null, null, null);
|
||||
else
|
||||
item = new(sourceDirectoryFileHolder.FullName, relativePath, sourceDirectoryFileHolder, isValidImageFormatExtension, null, null, null);
|
||||
items.Add(item);
|
||||
}
|
||||
if (items.Any())
|
||||
{
|
||||
@ -261,9 +251,11 @@ public class Container
|
||||
{
|
||||
additional = 0;
|
||||
container = keyValuePairs[sourceDirectory];
|
||||
length = items.Count;
|
||||
existing = (from l in container.Items select l.ImageFileHolder?.FullName).ToArray();
|
||||
foreach (Item item in items)
|
||||
for (int i = 0; i < length; i++)
|
||||
{
|
||||
item = items[i];
|
||||
if (item.ImageFileHolder is null || existing.Contains(item.ImageFileHolder.FullName))
|
||||
continue;
|
||||
additional += 1;
|
||||
|
Reference in New Issue
Block a user