re-organized configurations - II
This commit is contained in:
parent
9e60e23391
commit
c2757ef46b
@ -12,7 +12,7 @@ public class A_Metadata
|
|||||||
{
|
{
|
||||||
|
|
||||||
private readonly MetadataConfiguration _MetadataConfiguration;
|
private readonly MetadataConfiguration _MetadataConfiguration;
|
||||||
private readonly IReadOnlyDictionary<string, string[]> _FileGroups;
|
private readonly ReadOnlyDictionary<int, ReadOnlyDictionary<string, string[]>> _FileGroups;
|
||||||
|
|
||||||
public A_Metadata(MetadataConfiguration metadataConfiguration)
|
public A_Metadata(MetadataConfiguration metadataConfiguration)
|
||||||
{
|
{
|
||||||
@ -26,17 +26,21 @@ public class A_Metadata
|
|||||||
_FileGroups = IPath.GetKeyValuePairs(metadataConfiguration.ResultConfiguration, bResultsFullGroupDirectory, [metadataConfiguration.ResultConfiguration.ResultSingleton]);
|
_FileGroups = IPath.GetKeyValuePairs(metadataConfiguration.ResultConfiguration, bResultsFullGroupDirectory, [metadataConfiguration.ResultConfiguration.ResultSingleton]);
|
||||||
}
|
}
|
||||||
|
|
||||||
public FileInfo GetFileInfo(FilePath filePath)
|
private FileInfo GetFileInfo(ResultConfiguration resultConfiguration, FilePath filePath)
|
||||||
{
|
{
|
||||||
FileInfo result;
|
FileInfo result;
|
||||||
(_, int directoryIndex) = IPath.GetDirectoryNameAndIndex(_MetadataConfiguration.ResultConfiguration.ResultAllInOneSubdirectoryLength, filePath.Name);
|
FileInfo fileInfo = new(filePath.FullName);
|
||||||
result = new(Path.Combine(_FileGroups[_MetadataConfiguration.ResultConfiguration.ResultSingleton][directoryIndex], $"{filePath.NameWithoutExtension}{filePath.ExtensionLowered}.json"));
|
(_, int directoryIndex) = IPath.GetDirectoryNameAndIndex(resultConfiguration, filePath);
|
||||||
|
DateTime minimumDateTime = fileInfo.CreationTime < fileInfo.LastWriteTime ? fileInfo.CreationTime : fileInfo.LastWriteTime;
|
||||||
|
int minimumYear = minimumDateTime.Year < resultConfiguration.EpicYear ? resultConfiguration.EpicYear : minimumDateTime.Year;
|
||||||
|
result = new(Path.Combine(_FileGroups[minimumYear][_MetadataConfiguration.ResultConfiguration.ResultSingleton][directoryIndex], $"{filePath.NameWithoutExtension}{filePath.ExtensionLowered}.json"));
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
public ExifDirectory GetMetadataCollection(MetadataConfiguration metadataConfiguration, FilePath filePath, FileInfo fileInfo, DeterministicHashCode deterministicHashCode)
|
public (FileInfo, ExifDirectory) GetMetadataCollection(MetadataConfiguration metadataConfiguration, FilePath filePath, DeterministicHashCode deterministicHashCode)
|
||||||
{
|
{
|
||||||
ExifDirectory? results;
|
ExifDirectory? results;
|
||||||
|
FileInfo fileInfo = GetFileInfo(metadataConfiguration.ResultConfiguration, filePath);
|
||||||
if (_MetadataConfiguration.ForceMetadataLastWriteTimeToCreationTime && !fileInfo.Exists && File.Exists(Path.ChangeExtension(fileInfo.FullName, ".delete")))
|
if (_MetadataConfiguration.ForceMetadataLastWriteTimeToCreationTime && !fileInfo.Exists && File.Exists(Path.ChangeExtension(fileInfo.FullName, ".delete")))
|
||||||
{
|
{
|
||||||
File.Move(Path.ChangeExtension(fileInfo.FullName, ".delete"), fileInfo.FullName);
|
File.Move(Path.ChangeExtension(fileInfo.FullName, ".delete"), fileInfo.FullName);
|
||||||
@ -82,7 +86,7 @@ public class A_Metadata
|
|||||||
fileInfo.Refresh();
|
fileInfo.Refresh();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return results;
|
return (fileInfo, results);
|
||||||
}
|
}
|
||||||
|
|
||||||
public static Action<string> SetExifDirectoryCollection(IRename rename, MetadataConfiguration metadataConfiguration, A_Metadata metadata, List<(string, FileInfo, ExifDirectory)> exifDirectories, Action tick)
|
public static Action<string> SetExifDirectoryCollection(IRename rename, MetadataConfiguration metadataConfiguration, A_Metadata metadata, List<(string, FileInfo, ExifDirectory)> exifDirectories, Action tick)
|
||||||
@ -103,9 +107,8 @@ public class A_Metadata
|
|||||||
(ffmpegFiles, ffmpegFilePath) = rename.ConvertAndGetFfmpegFiles(filePath);
|
(ffmpegFiles, ffmpegFilePath) = rename.ConvertAndGetFfmpegFiles(filePath);
|
||||||
if (ffmpegFilePath is not null)
|
if (ffmpegFilePath is not null)
|
||||||
filePath = ffmpegFilePath;
|
filePath = ffmpegFilePath;
|
||||||
fileInfo = metadata.GetFileInfo(filePath);
|
|
||||||
deterministicHashCode = filePath.Id is not null ? deterministicHashCode = new(null, filePath.Id, null) : deterministicHashCode = rename.GetDeterministicHashCode(filePath);
|
deterministicHashCode = filePath.Id is not null ? deterministicHashCode = new(null, filePath.Id, null) : deterministicHashCode = rename.GetDeterministicHashCode(filePath);
|
||||||
exifDirectory = metadata.GetMetadataCollection(metadataConfiguration, filePath, fileInfo, deterministicHashCode);
|
(fileInfo, exifDirectory) = metadata.GetMetadataCollection(metadataConfiguration, filePath, deterministicHashCode);
|
||||||
lock (exifDirectories)
|
lock (exifDirectories)
|
||||||
exifDirectories.Add(new(file, fileInfo, exifDirectory));
|
exifDirectories.Add(new(file, fileInfo, exifDirectory));
|
||||||
foreach (string ffmpegFile in ffmpegFiles)
|
foreach (string ffmpegFile in ffmpegFiles)
|
||||||
|
@ -8,6 +8,7 @@ public class MetadataConfiguration
|
|||||||
{
|
{
|
||||||
|
|
||||||
public bool? ForceMetadataLastWriteTimeToCreationTime { get; set; }
|
public bool? ForceMetadataLastWriteTimeToCreationTime { get; set; }
|
||||||
|
public string[]? IgnoreRulesKeyWords { get; set; }
|
||||||
public int? Offset { get; set; }
|
public int? Offset { get; set; }
|
||||||
public bool? PropertiesChangedForMetadata { get; set; }
|
public bool? PropertiesChangedForMetadata { get; set; }
|
||||||
|
|
||||||
@ -34,8 +35,9 @@ public class MetadataConfiguration
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private static void Verify(MetadataConfiguration _)
|
private static void Verify(MetadataConfiguration configuration)
|
||||||
{
|
{
|
||||||
|
if (configuration.IgnoreRulesKeyWords is null || configuration.IgnoreRulesKeyWords.Length == 0) throw new NullReferenceException(nameof(configuration.IgnoreRulesKeyWords));
|
||||||
}
|
}
|
||||||
|
|
||||||
private static Shared.Models.MetadataConfiguration Get(MetadataConfiguration? configuration, Shared.Models.ResultConfiguration resultConfiguration)
|
private static Shared.Models.MetadataConfiguration Get(MetadataConfiguration? configuration, Shared.Models.ResultConfiguration resultConfiguration)
|
||||||
@ -43,11 +45,13 @@ public class MetadataConfiguration
|
|||||||
Shared.Models.MetadataConfiguration result;
|
Shared.Models.MetadataConfiguration result;
|
||||||
if (configuration is null) throw new NullReferenceException(nameof(configuration));
|
if (configuration is null) throw new NullReferenceException(nameof(configuration));
|
||||||
if (configuration.ForceMetadataLastWriteTimeToCreationTime is null) throw new NullReferenceException(nameof(configuration.ForceMetadataLastWriteTimeToCreationTime));
|
if (configuration.ForceMetadataLastWriteTimeToCreationTime is null) throw new NullReferenceException(nameof(configuration.ForceMetadataLastWriteTimeToCreationTime));
|
||||||
|
if (configuration.IgnoreRulesKeyWords is null) throw new NullReferenceException(nameof(configuration.IgnoreRulesKeyWords));
|
||||||
if (configuration.Offset is null) throw new NullReferenceException(nameof(configuration.Offset));
|
if (configuration.Offset is null) throw new NullReferenceException(nameof(configuration.Offset));
|
||||||
if (configuration.PropertiesChangedForMetadata is null) throw new NullReferenceException(nameof(configuration.PropertiesChangedForMetadata));
|
if (configuration.PropertiesChangedForMetadata is null) throw new NullReferenceException(nameof(configuration.PropertiesChangedForMetadata));
|
||||||
Verify(configuration);
|
Verify(configuration);
|
||||||
result = new(resultConfiguration,
|
result = new(resultConfiguration,
|
||||||
configuration.ForceMetadataLastWriteTimeToCreationTime.Value,
|
configuration.ForceMetadataLastWriteTimeToCreationTime.Value,
|
||||||
|
configuration.IgnoreRulesKeyWords,
|
||||||
configuration.Offset.Value,
|
configuration.Offset.Value,
|
||||||
configuration.PropertiesChangedForMetadata.Value);
|
configuration.PropertiesChangedForMetadata.Value);
|
||||||
return result;
|
return result;
|
||||||
|
@ -8,16 +8,16 @@ public class ResultConfiguration
|
|||||||
{
|
{
|
||||||
|
|
||||||
public string? DateGroup { get; set; }
|
public string? DateGroup { get; set; }
|
||||||
|
public int? EpicYear { get; set; }
|
||||||
public string? ModelName { get; set; }
|
public string? ModelName { get; set; }
|
||||||
public int? NumberOfJitters { get; set; }
|
public int? NumberOfJitters { get; set; }
|
||||||
public int? NumberOfTimesToUpsample { get; set; }
|
public int? NumberOfTimesToUpsample { get; set; }
|
||||||
public string? PredictorModelName { get; set; }
|
public string? PredictorModelName { get; set; }
|
||||||
public string? ResultAllInOne { get; set; }
|
|
||||||
public int? ResultAllInOneSubdirectoryLength { get; set; }
|
public int? ResultAllInOneSubdirectoryLength { get; set; }
|
||||||
public string? ResultCollection { get; set; }
|
public string? ResultCollection { get; set; }
|
||||||
public string? ResultContent { get; set; }
|
public string? ResultContent { get; set; }
|
||||||
public string? RootDirectory { get; set; }
|
|
||||||
public string? ResultSingleton { get; set; }
|
public string? ResultSingleton { get; set; }
|
||||||
|
public string? RootDirectory { get; set; }
|
||||||
|
|
||||||
public override string ToString()
|
public override string ToString()
|
||||||
{
|
{
|
||||||
@ -53,28 +53,28 @@ public class ResultConfiguration
|
|||||||
Shared.Models.ResultConfiguration result;
|
Shared.Models.ResultConfiguration result;
|
||||||
if (configuration is null) throw new NullReferenceException(nameof(configuration));
|
if (configuration is null) throw new NullReferenceException(nameof(configuration));
|
||||||
if (configuration.DateGroup is null) throw new NullReferenceException(nameof(configuration.DateGroup));
|
if (configuration.DateGroup is null) throw new NullReferenceException(nameof(configuration.DateGroup));
|
||||||
|
if (configuration.EpicYear is null) throw new NullReferenceException(nameof(configuration.EpicYear));
|
||||||
// if (configuration.ModelName is null) throw new NullReferenceException(nameof(configuration.ModelName));
|
// if (configuration.ModelName is null) throw new NullReferenceException(nameof(configuration.ModelName));
|
||||||
// if (configuration.NumberOfJitters is null) throw new NullReferenceException(nameof(configuration.NumberOfJitters));
|
// if (configuration.NumberOfJitters is null) throw new NullReferenceException(nameof(configuration.NumberOfJitters));
|
||||||
// if (configuration.NumberOfTimesToUpsample is null) throw new NullReferenceException(nameof(configuration.NumberOfTimesToUpsample));
|
// if (configuration.NumberOfTimesToUpsample is null) throw new NullReferenceException(nameof(configuration.NumberOfTimesToUpsample));
|
||||||
// if (configuration.PredictorModelName is null) throw new NullReferenceException(nameof(configuration.PredictorModelName));
|
// if (configuration.PredictorModelName is null) throw new NullReferenceException(nameof(configuration.PredictorModelName));
|
||||||
if (configuration.ResultAllInOne is null) throw new NullReferenceException(nameof(configuration.ResultAllInOne));
|
|
||||||
if (configuration.ResultAllInOneSubdirectoryLength is null) throw new NullReferenceException(nameof(configuration.ResultAllInOneSubdirectoryLength));
|
if (configuration.ResultAllInOneSubdirectoryLength is null) throw new NullReferenceException(nameof(configuration.ResultAllInOneSubdirectoryLength));
|
||||||
if (configuration.ResultCollection is null) throw new NullReferenceException(nameof(configuration.ResultCollection));
|
if (configuration.ResultCollection is null) throw new NullReferenceException(nameof(configuration.ResultCollection));
|
||||||
if (configuration.ResultContent is null) throw new NullReferenceException(nameof(configuration.ResultContent));
|
if (configuration.ResultContent is null) throw new NullReferenceException(nameof(configuration.ResultContent));
|
||||||
if (configuration.RootDirectory is null) throw new NullReferenceException(nameof(configuration.RootDirectory));
|
|
||||||
if (configuration.ResultSingleton is null) throw new NullReferenceException(nameof(configuration.ResultSingleton));
|
if (configuration.ResultSingleton is null) throw new NullReferenceException(nameof(configuration.ResultSingleton));
|
||||||
|
if (configuration.RootDirectory is null) throw new NullReferenceException(nameof(configuration.RootDirectory));
|
||||||
Verify(configuration, requireRootDirectoryExists);
|
Verify(configuration, requireRootDirectoryExists);
|
||||||
result = new(configuration.DateGroup,
|
result = new(configuration.DateGroup,
|
||||||
|
configuration.EpicYear.Value,
|
||||||
configuration.ModelName,
|
configuration.ModelName,
|
||||||
configuration.NumberOfJitters,
|
configuration.NumberOfJitters,
|
||||||
configuration.NumberOfTimesToUpsample,
|
configuration.NumberOfTimesToUpsample,
|
||||||
configuration.PredictorModelName,
|
configuration.PredictorModelName,
|
||||||
configuration.ResultAllInOne,
|
|
||||||
configuration.ResultAllInOneSubdirectoryLength.Value,
|
configuration.ResultAllInOneSubdirectoryLength.Value,
|
||||||
configuration.ResultCollection,
|
configuration.ResultCollection,
|
||||||
configuration.ResultContent,
|
configuration.ResultContent,
|
||||||
Path.GetFullPath(configuration.RootDirectory),
|
configuration.ResultSingleton,
|
||||||
configuration.ResultSingleton);
|
Path.GetFullPath(configuration.RootDirectory));
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -354,4 +354,14 @@ internal abstract class Exif
|
|||||||
return results;
|
return results;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
internal static string GetMaker(Shared.Models.ExifDirectoryBase exifDirectoryBase)
|
||||||
|
{
|
||||||
|
string result;
|
||||||
|
if (string.IsNullOrEmpty(exifDirectoryBase.Make))
|
||||||
|
result = "Unknown";
|
||||||
|
else
|
||||||
|
result = $"{exifDirectoryBase.Make[0].ToString().ToUpper()}{exifDirectoryBase.Make[1..]}".Trim();
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
@ -11,6 +11,11 @@ public interface IMetadata
|
|||||||
Meters
|
Meters
|
||||||
}
|
}
|
||||||
|
|
||||||
|
string TestStatic_GetMaker(Shared.Models.ExifDirectoryBase exifDirectoryBase) =>
|
||||||
|
GetMaker(exifDirectoryBase);
|
||||||
|
static string GetMaker(Shared.Models.ExifDirectoryBase exifDirectoryBase) =>
|
||||||
|
Exif.GetMaker(exifDirectoryBase);
|
||||||
|
|
||||||
double? TestStatic_GetDistance(double originLatitude, double originLongitude, double destinationLatitude, double destinationLongitude, int decimalPlaces = 1, DistanceUnit distanceUnit = DistanceUnit.Miles) =>
|
double? TestStatic_GetDistance(double originLatitude, double originLongitude, double destinationLatitude, double destinationLongitude, int decimalPlaces = 1, DistanceUnit distanceUnit = DistanceUnit.Miles) =>
|
||||||
GetDistance(originLatitude, originLongitude, destinationLatitude, destinationLongitude, decimalPlaces, distanceUnit);
|
GetDistance(originLatitude, originLongitude, destinationLatitude, destinationLongitude, decimalPlaces, distanceUnit);
|
||||||
static double? GetDistance(double originLatitude, double originLongitude, double destinationLatitude, double destinationLongitude, int decimalPlaces = 1, DistanceUnit distanceUnit = DistanceUnit.Miles) =>
|
static double? GetDistance(double originLatitude, double originLongitude, double destinationLatitude, double destinationLongitude, int decimalPlaces = 1, DistanceUnit distanceUnit = DistanceUnit.Miles) =>
|
||||||
|
@ -7,9 +7,7 @@ namespace View_by_Distance.Rename.Models.Binder;
|
|||||||
public class RenameConfiguration
|
public class RenameConfiguration
|
||||||
{
|
{
|
||||||
|
|
||||||
public int? EpicYear { get; set; }
|
|
||||||
public string[]? IgnoreExtensions { get; set; }
|
public string[]? IgnoreExtensions { get; set; }
|
||||||
public string[]? IgnoreRulesKeyWords { get; set; }
|
|
||||||
public string[]? ValidImageFormatExtensions { get; set; }
|
public string[]? ValidImageFormatExtensions { get; set; }
|
||||||
|
|
||||||
public override string ToString()
|
public override string ToString()
|
||||||
@ -20,7 +18,7 @@ public class RenameConfiguration
|
|||||||
|
|
||||||
private static void PreVerify(IConfigurationRoot configurationRoot, RenameConfiguration? configuration)
|
private static void PreVerify(IConfigurationRoot configurationRoot, RenameConfiguration? configuration)
|
||||||
{
|
{
|
||||||
if (configuration?.EpicYear is null)
|
if (configuration?.IgnoreExtensions is null)
|
||||||
{
|
{
|
||||||
foreach (IConfigurationProvider configurationProvider in configurationRoot.Providers)
|
foreach (IConfigurationProvider configurationProvider in configurationRoot.Providers)
|
||||||
{
|
{
|
||||||
@ -38,7 +36,6 @@ public class RenameConfiguration
|
|||||||
private static void Verify(RenameConfiguration configuration)
|
private static void Verify(RenameConfiguration configuration)
|
||||||
{
|
{
|
||||||
if (configuration.IgnoreExtensions is null || configuration.IgnoreExtensions.Length == 0) throw new NullReferenceException(nameof(configuration.IgnoreExtensions));
|
if (configuration.IgnoreExtensions is null || configuration.IgnoreExtensions.Length == 0) throw new NullReferenceException(nameof(configuration.IgnoreExtensions));
|
||||||
if (configuration.IgnoreRulesKeyWords is null || configuration.IgnoreRulesKeyWords.Length == 0) throw new NullReferenceException(nameof(configuration.IgnoreRulesKeyWords));
|
|
||||||
if (configuration.ValidImageFormatExtensions is null || configuration.ValidImageFormatExtensions.Length == 0) throw new NullReferenceException(nameof(configuration.ValidImageFormatExtensions));
|
if (configuration.ValidImageFormatExtensions is null || configuration.ValidImageFormatExtensions.Length == 0) throw new NullReferenceException(nameof(configuration.ValidImageFormatExtensions));
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -46,15 +43,11 @@ public class RenameConfiguration
|
|||||||
{
|
{
|
||||||
Models.RenameConfiguration result;
|
Models.RenameConfiguration result;
|
||||||
if (configuration is null) throw new NullReferenceException(nameof(configuration));
|
if (configuration is null) throw new NullReferenceException(nameof(configuration));
|
||||||
if (configuration.EpicYear is null) throw new NullReferenceException(nameof(configuration.EpicYear));
|
|
||||||
if (configuration.IgnoreExtensions is null) throw new NullReferenceException(nameof(configuration.IgnoreExtensions));
|
if (configuration.IgnoreExtensions is null) throw new NullReferenceException(nameof(configuration.IgnoreExtensions));
|
||||||
if (configuration.IgnoreRulesKeyWords is null) throw new NullReferenceException(nameof(configuration.IgnoreRulesKeyWords));
|
|
||||||
if (configuration.ValidImageFormatExtensions is null) throw new NullReferenceException(nameof(configuration.ValidImageFormatExtensions));
|
if (configuration.ValidImageFormatExtensions is null) throw new NullReferenceException(nameof(configuration.ValidImageFormatExtensions));
|
||||||
Verify(configuration);
|
Verify(configuration);
|
||||||
result = new(metadataConfiguration,
|
result = new(metadataConfiguration,
|
||||||
configuration.EpicYear.Value,
|
|
||||||
configuration.IgnoreExtensions,
|
configuration.IgnoreExtensions,
|
||||||
configuration.IgnoreRulesKeyWords,
|
|
||||||
configuration.ValidImageFormatExtensions);
|
configuration.ValidImageFormatExtensions);
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
@ -5,9 +5,7 @@ using System.Text.Json.Serialization;
|
|||||||
namespace View_by_Distance.Rename.Models;
|
namespace View_by_Distance.Rename.Models;
|
||||||
|
|
||||||
public record RenameConfiguration(Shared.Models.MetadataConfiguration MetadataConfiguration,
|
public record RenameConfiguration(Shared.Models.MetadataConfiguration MetadataConfiguration,
|
||||||
int EpicYear,
|
|
||||||
string[] IgnoreExtensions,
|
string[] IgnoreExtensions,
|
||||||
string[] IgnoreRulesKeyWords,
|
|
||||||
string[] ValidImageFormatExtensions)
|
string[] ValidImageFormatExtensions)
|
||||||
{
|
{
|
||||||
|
|
||||||
|
@ -7,6 +7,7 @@ using System.Drawing;
|
|||||||
using System.Drawing.Imaging;
|
using System.Drawing.Imaging;
|
||||||
using System.Runtime.InteropServices;
|
using System.Runtime.InteropServices;
|
||||||
using View_by_Distance.Metadata.Models;
|
using View_by_Distance.Metadata.Models;
|
||||||
|
using View_by_Distance.Metadata.Models.Stateless.Methods;
|
||||||
using View_by_Distance.Rename.Models;
|
using View_by_Distance.Rename.Models;
|
||||||
using View_by_Distance.Shared.Models;
|
using View_by_Distance.Shared.Models;
|
||||||
using View_by_Distance.Shared.Models.Stateless.Methods;
|
using View_by_Distance.Shared.Models.Stateless.Methods;
|
||||||
@ -60,8 +61,8 @@ public class Rename : IRename
|
|||||||
else
|
else
|
||||||
{
|
{
|
||||||
CommandTask<CommandResult> commandTask = Cli.Wrap("ffmpeg.exe")
|
CommandTask<CommandResult> commandTask = Cli.Wrap("ffmpeg.exe")
|
||||||
// .WithArguments(new[] { "-ss", "00:00:00", "-t", "00:00:00", "-i", files[i], "-qscale:v", "2", "-r", "0.01", $"{fileHolder.Name}-%4d.jpg" })
|
// .WithArguments(new[] { "-ss", "00:00:00", "-t", "00:00:00", "-i", files[i], "-qScale:v", "2", "-r", "0.01", $"{fileHolder.Name}-%4d.jpg" })
|
||||||
.WithArguments(new[] { "-i", filePath.FullName, "-vframes", "1", $"{filePath.Name}-%4d.jpg" })
|
.WithArguments(new[] { "-i", filePath.FullName, "-vFrames", "1", $"{filePath.Name}-%4d.jpg" })
|
||||||
.WithWorkingDirectory(filePath.DirectoryName)
|
.WithWorkingDirectory(filePath.DirectoryName)
|
||||||
.ExecuteAsync();
|
.ExecuteAsync();
|
||||||
commandTask.Task.Wait();
|
commandTask.Task.Wait();
|
||||||
@ -136,12 +137,11 @@ public class Rename : IRename
|
|||||||
(ffmpegFiles, ffmpegFilePath) = rename.ConvertAndGetFfmpegFiles(filePath);
|
(ffmpegFiles, ffmpegFilePath) = rename.ConvertAndGetFfmpegFiles(filePath);
|
||||||
if (ffmpegFilePath is not null)
|
if (ffmpegFilePath is not null)
|
||||||
filePath = ffmpegFilePath;
|
filePath = ffmpegFilePath;
|
||||||
fileInfo = metadata.GetFileInfo(filePath);
|
|
||||||
if (filePath.Id is not null)
|
if (filePath.Id is not null)
|
||||||
deterministicHashCode = new(null, filePath.Id, null);
|
deterministicHashCode = new(null, filePath.Id, null);
|
||||||
else
|
else
|
||||||
deterministicHashCode = rename.GetDeterministicHashCode(filePath);
|
deterministicHashCode = rename.GetDeterministicHashCode(filePath);
|
||||||
exifDirectory = metadata.GetMetadataCollection(_RenameConfiguration.MetadataConfiguration, filePath, fileInfo, deterministicHashCode);
|
(fileInfo, exifDirectory) = metadata.GetMetadataCollection(_RenameConfiguration.MetadataConfiguration, filePath, deterministicHashCode);
|
||||||
exifDirectories.Add(new(file, fileInfo, exifDirectory));
|
exifDirectories.Add(new(file, fileInfo, exifDirectory));
|
||||||
foreach (string ffmpegFile in ffmpegFiles)
|
foreach (string ffmpegFile in ffmpegFiles)
|
||||||
File.Delete(ffmpegFile);
|
File.Delete(ffmpegFile);
|
||||||
@ -198,17 +198,20 @@ public class Rename : IRename
|
|||||||
{
|
{
|
||||||
List<ToDo> results = [];
|
List<ToDo> results = [];
|
||||||
int season;
|
int season;
|
||||||
|
string maker;
|
||||||
Record record;
|
Record record;
|
||||||
|
string jsonFile;
|
||||||
string paddedId;
|
string paddedId;
|
||||||
string checkFile;
|
string checkFile;
|
||||||
string seasonName;
|
string seasonName;
|
||||||
|
string directoryName;
|
||||||
FileHolder fileHolder;
|
FileHolder fileHolder;
|
||||||
string? seasonDirectory;
|
string? checkDirectory;
|
||||||
string jsonFileDirectory;
|
|
||||||
const string jpg = ".jpg";
|
const string jpg = ".jpg";
|
||||||
string checkFileExtension;
|
string checkFileExtension;
|
||||||
List<string> distinct = [];
|
List<string> distinct = [];
|
||||||
const string jpeg = ".jpeg";
|
const string jpeg = ".jpeg";
|
||||||
|
string jsonFileSubDirectory;
|
||||||
int intMinValueLength = int.MinValue.ToString().Length;
|
int intMinValueLength = int.MinValue.ToString().Length;
|
||||||
VerifyIntMinValueLength(exifDirectories, intMinValueLength);
|
VerifyIntMinValueLength(exifDirectories, intMinValueLength);
|
||||||
ReadOnlyCollection<Record> records = new((from l in exifDirectories orderby l.DateTime select l).ToArray());
|
ReadOnlyCollection<Record> records = new((from l in exifDirectories orderby l.DateTime select l).ToArray());
|
||||||
@ -220,12 +223,13 @@ public class Rename : IRename
|
|||||||
fileHolder = new(record.File);
|
fileHolder = new(record.File);
|
||||||
if (fileHolder.DirectoryName is null)
|
if (fileHolder.DirectoryName is null)
|
||||||
continue;
|
continue;
|
||||||
|
maker = IMetadata.GetMaker(record.ExifDirectory.ExifDirectoryBase);
|
||||||
(season, seasonName) = IDate.GetSeason(record.DateTime.DayOfYear);
|
(season, seasonName) = IDate.GetSeason(record.DateTime.DayOfYear);
|
||||||
jsonFileDirectory = Path.GetDirectoryName(record.JsonFile) ?? throw new Exception();
|
|
||||||
checkFileExtension = fileHolder.ExtensionLowered == jpeg ? jpg : fileHolder.ExtensionLowered;
|
checkFileExtension = fileHolder.ExtensionLowered == jpeg ? jpg : fileHolder.ExtensionLowered;
|
||||||
seasonDirectory = Path.Combine(fileHolder.DirectoryName, $"{record.DateTime.Year}.{season} {seasonName}");
|
checkDirectory = Path.Combine(fileHolder.DirectoryName, $"{record.DateTime.Year}.{season} {seasonName}{maker}");
|
||||||
|
jsonFileSubDirectory = Path.GetDirectoryName(Path.GetDirectoryName(record.JsonFile)) ?? throw new Exception();
|
||||||
paddedId = IId.GetPaddedId(intMinValueLength, _RenameConfiguration.MetadataConfiguration.Offset + i, record.ExifDirectory.Id.Value);
|
paddedId = IId.GetPaddedId(intMinValueLength, _RenameConfiguration.MetadataConfiguration.Offset + i, record.ExifDirectory.Id.Value);
|
||||||
checkFile = Path.Combine(seasonDirectory, $"{paddedId}{checkFileExtension}");
|
checkFile = Path.Combine(checkDirectory, $"{paddedId}{checkFileExtension}");
|
||||||
if (checkFile == fileHolder.FullName)
|
if (checkFile == fileHolder.FullName)
|
||||||
continue;
|
continue;
|
||||||
if (File.Exists(checkFile))
|
if (File.Exists(checkFile))
|
||||||
@ -234,11 +238,14 @@ public class Rename : IRename
|
|||||||
if (File.Exists(checkFile))
|
if (File.Exists(checkFile))
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
results.Add(new(null, new(record.JsonFile), Path.Combine(jsonFileDirectory, $"{record.ExifDirectory.Id.Value}{checkFileExtension}.json"), JsonFile: true));
|
(directoryName, _) = IPath.GetDirectoryNameAndIndex(_RenameConfiguration.MetadataConfiguration.ResultConfiguration, record.ExifDirectory.Id.Value);
|
||||||
|
jsonFile = Path.Combine(jsonFileSubDirectory, directoryName, $"{record.ExifDirectory.Id.Value}{checkFileExtension}.json");
|
||||||
|
if (record.JsonFile != jsonFile)
|
||||||
|
results.Add(new(null, new(record.JsonFile), jsonFile, JsonFile: true));
|
||||||
if (distinct.Contains(checkFile))
|
if (distinct.Contains(checkFile))
|
||||||
continue;
|
continue;
|
||||||
distinct.Add(checkFile);
|
distinct.Add(checkFile);
|
||||||
results.Add(new(seasonDirectory, fileHolder, checkFile, JsonFile: false));
|
results.Add(new(checkDirectory, fileHolder, checkFile, JsonFile: false));
|
||||||
}
|
}
|
||||||
return new(results);
|
return new(results);
|
||||||
}
|
}
|
||||||
@ -263,11 +270,17 @@ public class Rename : IRename
|
|||||||
foreach (ToDo toDo in toDoCollection)
|
foreach (ToDo toDo in toDoCollection)
|
||||||
{
|
{
|
||||||
if (toDo.JsonFile)
|
if (toDo.JsonFile)
|
||||||
|
{
|
||||||
|
if (File.Exists(toDo.File))
|
||||||
|
File.Delete(toDo.File);
|
||||||
File.Move(toDo.FileHolder.FullName, toDo.File);
|
File.Move(toDo.FileHolder.FullName, toDo.File);
|
||||||
|
}
|
||||||
else if (toDo.Directory is null)
|
else if (toDo.Directory is null)
|
||||||
throw new NotSupportedException();
|
throw new NotSupportedException();
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
if (File.Exists(toDo.File))
|
||||||
|
File.Delete(toDo.File);
|
||||||
File.Move(toDo.FileHolder.FullName, toDo.File);
|
File.Move(toDo.FileHolder.FullName, toDo.File);
|
||||||
results.Add($"{toDo.FileHolder.FullName}\t{toDo.File}");
|
results.Add($"{toDo.FileHolder.FullName}\t{toDo.File}");
|
||||||
}
|
}
|
||||||
|
@ -5,6 +5,7 @@ namespace View_by_Distance.Shared.Models;
|
|||||||
|
|
||||||
public record MetadataConfiguration(ResultConfiguration ResultConfiguration,
|
public record MetadataConfiguration(ResultConfiguration ResultConfiguration,
|
||||||
bool ForceMetadataLastWriteTimeToCreationTime,
|
bool ForceMetadataLastWriteTimeToCreationTime,
|
||||||
|
string[] IgnoreRulesKeyWords,
|
||||||
int Offset,
|
int Offset,
|
||||||
bool PropertiesChangedForMetadata)
|
bool PropertiesChangedForMetadata)
|
||||||
{
|
{
|
||||||
|
@ -4,16 +4,16 @@ using System.Text.Json.Serialization;
|
|||||||
namespace View_by_Distance.Shared.Models;
|
namespace View_by_Distance.Shared.Models;
|
||||||
|
|
||||||
public record ResultConfiguration(string DateGroup,
|
public record ResultConfiguration(string DateGroup,
|
||||||
|
int EpicYear,
|
||||||
string? ModelName,
|
string? ModelName,
|
||||||
int? NumberOfJitters,
|
int? NumberOfJitters,
|
||||||
int? NumberOfTimesToUpsample,
|
int? NumberOfTimesToUpsample,
|
||||||
string? PredictorModelName,
|
string? PredictorModelName,
|
||||||
string ResultAllInOne,
|
|
||||||
int ResultAllInOneSubdirectoryLength,
|
int ResultAllInOneSubdirectoryLength,
|
||||||
string ResultCollection,
|
string ResultCollection,
|
||||||
string ResultContent,
|
string ResultContent,
|
||||||
string RootDirectory,
|
string ResultSingleton,
|
||||||
string ResultSingleton)
|
string RootDirectory)
|
||||||
{
|
{
|
||||||
|
|
||||||
public override string ToString()
|
public override string ToString()
|
||||||
|
@ -1,3 +1,5 @@
|
|||||||
|
using System.Collections.ObjectModel;
|
||||||
|
|
||||||
namespace View_by_Distance.Shared.Models.Stateless.Methods;
|
namespace View_by_Distance.Shared.Models.Stateless.Methods;
|
||||||
|
|
||||||
public interface IPath
|
public interface IPath
|
||||||
@ -59,14 +61,24 @@ public interface IPath
|
|||||||
static string GetDirectory(string sourceDirectory, int level, string directoryName) =>
|
static string GetDirectory(string sourceDirectory, int level, string directoryName) =>
|
||||||
XPath.GetDirectory(sourceDirectory, level, directoryName);
|
XPath.GetDirectory(sourceDirectory, level, directoryName);
|
||||||
|
|
||||||
(string, int) TestStatic_GetDirectoryNameAndIndex(int resultAllInOneSubdirectoryLength, string fileName) =>
|
(string, int) TestStatic_GetDirectoryNameAndIndex(ResultConfiguration resultConfiguration, FileHolder fileHolder) =>
|
||||||
GetDirectoryNameAndIndex(resultAllInOneSubdirectoryLength, fileName);
|
GetDirectoryNameAndIndex(resultConfiguration, fileHolder);
|
||||||
static (string, int) GetDirectoryNameAndIndex(int resultAllInOneSubdirectoryLength, string fileName) =>
|
static (string, int) GetDirectoryNameAndIndex(ResultConfiguration resultConfiguration, FileHolder fileHolder) =>
|
||||||
XPath.GetDirectoryNameAndIndex(resultAllInOneSubdirectoryLength, fileName);
|
XPath.GetDirectoryNameAndIndex(resultConfiguration, fileHolder);
|
||||||
|
|
||||||
Dictionary<string, string[]> TestStatic_GetKeyValuePairs(ResultConfiguration resultConfiguration, string? resultsFullGroupDirectory, string[]? directories) =>
|
(string, int) TestStatic_GetDirectoryNameAndIndex(ResultConfiguration resultConfiguration, FilePath filePath) =>
|
||||||
|
GetDirectoryNameAndIndex(resultConfiguration, filePath);
|
||||||
|
static (string, int) GetDirectoryNameAndIndex(ResultConfiguration resultConfiguration, FilePath filePath) =>
|
||||||
|
XPath.GetDirectoryNameAndIndex(resultConfiguration, filePath);
|
||||||
|
|
||||||
|
(string, int) TestStatic_GetDirectoryNameAndIndex(ResultConfiguration resultConfiguration, int id) =>
|
||||||
|
GetDirectoryNameAndIndex(resultConfiguration, id);
|
||||||
|
static (string, int) GetDirectoryNameAndIndex(ResultConfiguration resultConfiguration, int id) =>
|
||||||
|
XPath.GetDirectoryNameAndIndex(resultConfiguration, id);
|
||||||
|
|
||||||
|
ReadOnlyDictionary<int, ReadOnlyDictionary<string, string[]>> TestStatic_GetKeyValuePairs(ResultConfiguration resultConfiguration, string? resultsFullGroupDirectory, string[]? directories) =>
|
||||||
GetKeyValuePairs(resultConfiguration, resultsFullGroupDirectory, directories);
|
GetKeyValuePairs(resultConfiguration, resultsFullGroupDirectory, directories);
|
||||||
static Dictionary<string, string[]> GetKeyValuePairs(ResultConfiguration resultConfiguration, string? resultsFullGroupDirectory, string[]? directories) =>
|
static ReadOnlyDictionary<int, ReadOnlyDictionary<string, string[]>> GetKeyValuePairs(ResultConfiguration resultConfiguration, string? resultsFullGroupDirectory, string[]? directories) =>
|
||||||
XPath.GetKeyValuePairs(resultConfiguration, resultsFullGroupDirectory, directories);
|
XPath.GetKeyValuePairs(resultConfiguration, resultsFullGroupDirectory, directories);
|
||||||
|
|
||||||
}
|
}
|
@ -1,3 +1,5 @@
|
|||||||
|
using System.Collections.ObjectModel;
|
||||||
|
|
||||||
namespace View_by_Distance.Shared.Models.Stateless;
|
namespace View_by_Distance.Shared.Models.Stateless;
|
||||||
|
|
||||||
internal abstract class XPath
|
internal abstract class XPath
|
||||||
@ -263,11 +265,12 @@ internal abstract class XPath
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
internal static (string, int) GetDirectoryNameAndIndex(int resultAllInOneSubdirectoryLength, string fileName)
|
private static (string, int) GetDirectoryNameAndIndex(int resultAllInOneSubdirectoryLength, string fileNameWithoutExtension)
|
||||||
{
|
{
|
||||||
int converted;
|
int converted;
|
||||||
string result;
|
string result;
|
||||||
string check = fileName.Length < resultAllInOneSubdirectoryLength ? new('-', resultAllInOneSubdirectoryLength) : fileName.Split('.')[0][^resultAllInOneSubdirectoryLength..];
|
string fileNameBeforeFirst = fileNameWithoutExtension.Split('.')[0];
|
||||||
|
string check = fileNameBeforeFirst.Length < resultAllInOneSubdirectoryLength ? new('-', resultAllInOneSubdirectoryLength) : fileNameBeforeFirst[^resultAllInOneSubdirectoryLength..];
|
||||||
if (check.Any(l => !char.IsNumber(l)))
|
if (check.Any(l => !char.IsNumber(l)))
|
||||||
{
|
{
|
||||||
result = new('-', resultAllInOneSubdirectoryLength);
|
result = new('-', resultAllInOneSubdirectoryLength);
|
||||||
@ -281,49 +284,97 @@ internal abstract class XPath
|
|||||||
return (result, converted);
|
return (result, converted);
|
||||||
}
|
}
|
||||||
|
|
||||||
internal static Dictionary<string, string[]> GetKeyValuePairs(ResultConfiguration resultConfiguration, string? resultsFullGroupDirectory, string[]? directories)
|
internal static (string, int) GetDirectoryNameAndIndex(ResultConfiguration resultConfiguration, int id)
|
||||||
{
|
{
|
||||||
Dictionary<string, string[]> results = [];
|
(string result, int converted) = GetDirectoryNameAndIndex(resultConfiguration.ResultAllInOneSubdirectoryLength, id.ToString());
|
||||||
|
return (result, converted);
|
||||||
|
}
|
||||||
|
|
||||||
|
internal static (string, int) GetDirectoryNameAndIndex(ResultConfiguration resultConfiguration, FileHolder fileHolder)
|
||||||
|
{
|
||||||
|
(string result, int converted) = GetDirectoryNameAndIndex(resultConfiguration.ResultAllInOneSubdirectoryLength, fileHolder.NameWithoutExtension);
|
||||||
|
return (result, converted);
|
||||||
|
}
|
||||||
|
|
||||||
|
internal static (string, int) GetDirectoryNameAndIndex(ResultConfiguration resultConfiguration, FilePath filePath)
|
||||||
|
{
|
||||||
|
string result;
|
||||||
|
int converted;
|
||||||
|
if (filePath.Id is not null)
|
||||||
|
(result, converted) = GetDirectoryNameAndIndex(resultConfiguration.ResultAllInOneSubdirectoryLength, filePath.Id.Value.ToString());
|
||||||
|
else
|
||||||
|
(result, converted) = GetDirectoryNameAndIndex(resultConfiguration.ResultAllInOneSubdirectoryLength, filePath.NameWithoutExtension);
|
||||||
|
return (result, converted);
|
||||||
|
}
|
||||||
|
|
||||||
|
private static ReadOnlyCollection<int> GetYears(ResultConfiguration resultConfiguration)
|
||||||
|
{
|
||||||
|
List<int> results = [];
|
||||||
|
int currentYear = DateTime.Now.Year;
|
||||||
|
for (int i = resultConfiguration.EpicYear; i < currentYear + 1; i++)
|
||||||
|
results.Add(i);
|
||||||
|
return new(results);
|
||||||
|
}
|
||||||
|
|
||||||
|
private static ReadOnlyDictionary<int, ReadOnlyDictionary<string, string[]>> Convert(Dictionary<int, Dictionary<string, string[]>> collection)
|
||||||
|
{
|
||||||
|
Dictionary<int, ReadOnlyDictionary<string, string[]>> results = [];
|
||||||
|
foreach (KeyValuePair<int, Dictionary<string, string[]>> keyValuePair in collection)
|
||||||
|
results.Add(keyValuePair.Key, new(keyValuePair.Value));
|
||||||
|
return new(results);
|
||||||
|
}
|
||||||
|
|
||||||
|
internal static ReadOnlyDictionary<int, ReadOnlyDictionary<string, string[]>> GetKeyValuePairs(ResultConfiguration resultConfiguration, string? resultsFullGroupDirectory, string[]? directories)
|
||||||
|
{
|
||||||
|
Dictionary<int, Dictionary<string, string[]>> results = [];
|
||||||
string directory;
|
string directory;
|
||||||
string checkDirectory;
|
string checkDirectory;
|
||||||
|
Dictionary<string, string[]>? keyValuePairs;
|
||||||
|
ReadOnlyCollection<int> years = GetYears(resultConfiguration);
|
||||||
int converted = int.Parse($"1{new string('0', resultConfiguration.ResultAllInOneSubdirectoryLength)}");
|
int converted = int.Parse($"1{new string('0', resultConfiguration.ResultAllInOneSubdirectoryLength)}");
|
||||||
int plusOne = converted + 1;
|
int plusOne = converted + 1;
|
||||||
List<string> collection = [];
|
List<string> collection = [];
|
||||||
if (directories is not null)
|
foreach (int year in years)
|
||||||
{
|
{
|
||||||
foreach (string key in directories)
|
results.Add(year, []);
|
||||||
|
if (!results.TryGetValue(year, out keyValuePairs))
|
||||||
|
throw new NullReferenceException(nameof(keyValuePairs));
|
||||||
|
if (directories is not null)
|
||||||
{
|
{
|
||||||
if (resultsFullGroupDirectory is null)
|
foreach (string key in directories)
|
||||||
continue;
|
|
||||||
collection.Clear();
|
|
||||||
for (int i = 0; i < plusOne; i++)
|
|
||||||
{
|
{
|
||||||
if (string.IsNullOrEmpty(key))
|
if (resultsFullGroupDirectory is null)
|
||||||
|
continue;
|
||||||
|
collection.Clear();
|
||||||
|
for (int i = 0; i < plusOne; i++)
|
||||||
{
|
{
|
||||||
if (i == converted)
|
if (string.IsNullOrEmpty(key))
|
||||||
checkDirectory = Path.GetFullPath(Path.Combine(resultsFullGroupDirectory, new('-', resultConfiguration.ResultAllInOneSubdirectoryLength)));
|
{
|
||||||
|
if (i == converted)
|
||||||
|
checkDirectory = Path.GetFullPath(Path.Combine(resultsFullGroupDirectory, new('-', resultConfiguration.ResultAllInOneSubdirectoryLength)));
|
||||||
|
else
|
||||||
|
checkDirectory = Path.GetFullPath(Path.Combine(resultsFullGroupDirectory, i.ToString().PadLeft(resultConfiguration.ResultAllInOneSubdirectoryLength, '0')));
|
||||||
|
}
|
||||||
else
|
else
|
||||||
checkDirectory = Path.GetFullPath(Path.Combine(resultsFullGroupDirectory, i.ToString().PadLeft(resultConfiguration.ResultAllInOneSubdirectoryLength, '0')));
|
{
|
||||||
|
directory = Path.Combine(resultsFullGroupDirectory, key, year.ToString());
|
||||||
|
if (i == converted)
|
||||||
|
checkDirectory = Path.GetFullPath(Path.Combine(directory, new('-', resultConfiguration.ResultAllInOneSubdirectoryLength)));
|
||||||
|
else
|
||||||
|
checkDirectory = Path.GetFullPath(Path.Combine(directory, i.ToString().PadLeft(resultConfiguration.ResultAllInOneSubdirectoryLength, '0')));
|
||||||
|
}
|
||||||
|
if (!Directory.Exists(checkDirectory))
|
||||||
|
_ = Directory.CreateDirectory(checkDirectory);
|
||||||
|
collection.Add(checkDirectory);
|
||||||
}
|
}
|
||||||
|
if (!string.IsNullOrEmpty(key))
|
||||||
|
keyValuePairs.Add(key, collection.ToArray());
|
||||||
else
|
else
|
||||||
{
|
keyValuePairs.Add(year.ToString(), collection.ToArray());
|
||||||
directory = Path.Combine(resultsFullGroupDirectory, key, resultConfiguration.ResultAllInOne);
|
|
||||||
if (i == converted)
|
|
||||||
checkDirectory = Path.GetFullPath(Path.Combine(directory, new('-', resultConfiguration.ResultAllInOneSubdirectoryLength)));
|
|
||||||
else
|
|
||||||
checkDirectory = Path.GetFullPath(Path.Combine(directory, i.ToString().PadLeft(resultConfiguration.ResultAllInOneSubdirectoryLength, '0')));
|
|
||||||
}
|
|
||||||
if (!Directory.Exists(checkDirectory))
|
|
||||||
_ = Directory.CreateDirectory(checkDirectory);
|
|
||||||
collection.Add(checkDirectory);
|
|
||||||
}
|
}
|
||||||
if (!string.IsNullOrEmpty(key))
|
|
||||||
results.Add(key, collection.ToArray());
|
|
||||||
else
|
|
||||||
results.Add(resultConfiguration.ResultAllInOne, collection.ToArray());
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return results;
|
return Convert(results);
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
@ -25,49 +25,53 @@ internal abstract class XResult
|
|||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
private static void CheckContent(ResultConfiguration resultConfiguration, string dateGroupDirectory, string contentDescription, string result)
|
private static void VerifyDirectories(ResultConfiguration resultConfiguration, string dateGroupDirectory, string key)
|
||||||
{
|
{
|
||||||
string checkDirectory;
|
string checkDirectory;
|
||||||
checkDirectory = Path.Combine(dateGroupDirectory, resultConfiguration.ResultContent, resultConfiguration.ResultAllInOne);
|
int currentYear = DateTime.Now.Year;
|
||||||
if (!Directory.Exists(checkDirectory))
|
for (int i = resultConfiguration.EpicYear; i < currentYear + 1; i++)
|
||||||
_ = Directory.CreateDirectory(checkDirectory);
|
{
|
||||||
|
checkDirectory = Path.Combine(dateGroupDirectory, key, i.ToString());
|
||||||
|
if (!Directory.Exists(checkDirectory))
|
||||||
|
_ = Directory.CreateDirectory(checkDirectory);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private static void CheckContent(ResultConfiguration resultConfiguration, string dateGroupDirectory, string contentDescription, string result)
|
||||||
|
{
|
||||||
|
VerifyDirectories(resultConfiguration, dateGroupDirectory, resultConfiguration.ResultContent);
|
||||||
string contentDirectory = new(result.Replace("<>", resultConfiguration.ResultContent));
|
string contentDirectory = new(result.Replace("<>", resultConfiguration.ResultContent));
|
||||||
if (!Directory.Exists(contentDirectory))
|
if (!Directory.Exists(contentDirectory))
|
||||||
_ = Directory.CreateDirectory(contentDirectory);
|
_ = Directory.CreateDirectory(contentDirectory);
|
||||||
checkDirectory = Path.Combine(dateGroupDirectory, string.Concat("() - ", contentDescription));
|
string checkDirectory = Path.Combine(dateGroupDirectory, string.Concat("() - ", contentDescription));
|
||||||
if (!Directory.Exists(checkDirectory))
|
if (!Directory.Exists(checkDirectory))
|
||||||
_ = Directory.CreateDirectory(checkDirectory);
|
_ = Directory.CreateDirectory(checkDirectory);
|
||||||
}
|
}
|
||||||
|
|
||||||
private static void CheckSingleton(ResultConfiguration resultConfiguration, string dateGroupDirectory, string singletonDescription, bool converted, string result)
|
private static void CheckSingleton(ResultConfiguration resultConfiguration, string dateGroupDirectory, string singletonDescription, bool converted, string result)
|
||||||
{
|
{
|
||||||
string checkDirectory;
|
VerifyDirectories(resultConfiguration, dateGroupDirectory, resultConfiguration.ResultSingleton);
|
||||||
checkDirectory = Path.Combine(dateGroupDirectory, resultConfiguration.ResultSingleton, resultConfiguration.ResultAllInOne);
|
|
||||||
if (!Directory.Exists(checkDirectory))
|
|
||||||
_ = Directory.CreateDirectory(checkDirectory);
|
|
||||||
if (!converted)
|
if (!converted)
|
||||||
{
|
{
|
||||||
string singletonDirectory = new(result.Replace("<>", resultConfiguration.ResultSingleton));
|
string singletonDirectory = new(result.Replace("<>", resultConfiguration.ResultSingleton));
|
||||||
if (!Directory.Exists(singletonDirectory))
|
if (!Directory.Exists(singletonDirectory))
|
||||||
_ = Directory.CreateDirectory(singletonDirectory);
|
_ = Directory.CreateDirectory(singletonDirectory);
|
||||||
}
|
}
|
||||||
checkDirectory = Path.Combine(dateGroupDirectory, string.Concat("{} - ", singletonDescription));
|
string checkDirectory = Path.Combine(dateGroupDirectory, string.Concat("{} - ", singletonDescription));
|
||||||
if (!Directory.Exists(checkDirectory))
|
if (!Directory.Exists(checkDirectory))
|
||||||
_ = Directory.CreateDirectory(checkDirectory);
|
_ = Directory.CreateDirectory(checkDirectory);
|
||||||
}
|
}
|
||||||
|
|
||||||
private static void CheckCollection(ResultConfiguration resultConfiguration, string dateGroupDirectory, string collectionDescription, bool converted, string result)
|
private static void CheckCollection(ResultConfiguration resultConfiguration, string dateGroupDirectory, string collectionDescription, bool converted, string result)
|
||||||
{
|
{
|
||||||
string checkDirectory = Path.Combine(dateGroupDirectory, resultConfiguration.ResultCollection, resultConfiguration.ResultAllInOne);
|
VerifyDirectories(resultConfiguration, dateGroupDirectory, resultConfiguration.ResultCollection);
|
||||||
if (!Directory.Exists(checkDirectory))
|
|
||||||
_ = Directory.CreateDirectory(checkDirectory);
|
|
||||||
if (!converted)
|
if (!converted)
|
||||||
{
|
{
|
||||||
string collectionDirectory = new(result.Replace("<>", resultConfiguration.ResultCollection));
|
string collectionDirectory = new(result.Replace("<>", resultConfiguration.ResultCollection));
|
||||||
if (!Directory.Exists(collectionDirectory))
|
if (!Directory.Exists(collectionDirectory))
|
||||||
_ = Directory.CreateDirectory(collectionDirectory);
|
_ = Directory.CreateDirectory(collectionDirectory);
|
||||||
}
|
}
|
||||||
checkDirectory = Path.Combine(dateGroupDirectory, string.Concat("[] - ", collectionDescription));
|
string checkDirectory = Path.Combine(dateGroupDirectory, string.Concat("[] - ", collectionDescription));
|
||||||
if (!Directory.Exists(checkDirectory))
|
if (!Directory.Exists(checkDirectory))
|
||||||
_ = Directory.CreateDirectory(checkDirectory);
|
_ = Directory.CreateDirectory(checkDirectory);
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user