Shared.Models.Properties.IMetadataConfiguration

This commit is contained in:
2023-10-22 12:46:10 -07:00
parent f7573e95e4
commit 42d202e287
17 changed files with 475 additions and 123 deletions

View File

@ -1,3 +1,6 @@
using View_by_Distance.Shared.Models.Properties;
using View_by_Distance.Shared.Models.Stateless.Methods;
namespace View_by_Distance.Shared.Models.Stateless;
internal abstract class Id
@ -17,4 +20,46 @@ internal abstract class Id
return result;
}
internal static NameWithoutExtension GetNameWithoutExtension(IMetadataConfiguration configuration, string file)
{
NameWithoutExtension result;
int? id;
short? multiplier;
char negativeMarker;
int absoluteValueOfId;
string fileNameWithoutExtension = Path.GetFileNameWithoutExtension(file);
short sortOrderOnlyLengthIndex = IId.GetSortOrderOnlyLengthIndex(configuration.Offset);
bool nameWithoutExtensionIsIdFormat = IId.NameWithoutExtensionIsIdFormat(fileNameWithoutExtension);
bool nameWithoutExtensionIsPaddedIdFormat = IId.NameWithoutExtensionIsPaddedIdFormat(fileNameWithoutExtension, sortOrderOnlyLengthIndex);
if (!nameWithoutExtensionIsIdFormat && !nameWithoutExtensionIsPaddedIdFormat)
id = null;
else if (nameWithoutExtensionIsIdFormat)
{
if (!int.TryParse(fileNameWithoutExtension, out absoluteValueOfId))
id = null;
else
id = absoluteValueOfId;
}
else
{
negativeMarker = fileNameWithoutExtension[sortOrderOnlyLengthIndex - 2];
if (negativeMarker == '7')
multiplier = 1;
else if (negativeMarker == '3')
multiplier = -1;
else
multiplier = null;
if (!int.TryParse(fileNameWithoutExtension[sortOrderOnlyLengthIndex..], out absoluteValueOfId))
id = null;
else
{
id = absoluteValueOfId * multiplier;
if (id is null || !fileNameWithoutExtension.EndsWith(id.Value.ToString()[1..]))
id = null;
}
}
result = new(fileNameWithoutExtension, id, nameWithoutExtensionIsIdFormat, nameWithoutExtensionIsPaddedIdFormat);
return result;
}
}

View File

@ -1,3 +1,5 @@
using View_by_Distance.Shared.Models.Properties;
namespace View_by_Distance.Shared.Models.Stateless.Methods;
public interface IId
@ -18,9 +20,9 @@ public interface IId
static string GetPaddedId(int intMinValueLength, int index, int id) =>
id > -1 ? $"{index}070{id.ToString().PadLeft(intMinValueLength, '0')}" : $"{index}030{id.ToString()[1..].PadLeft(intMinValueLength, '0')}";
bool TestStatic_NameWithoutExtensionIsPaddedIdFormat(string fileNameWithoutExtension, int sortOrderOnlyLengthIndex) =>
bool TestStatic_NameWithoutExtensionIsPaddedIdFormat(string fileNameWithoutExtension, short sortOrderOnlyLengthIndex) =>
NameWithoutExtensionIsPaddedIdFormat(fileNameWithoutExtension, sortOrderOnlyLengthIndex);
static bool NameWithoutExtensionIsPaddedIdFormat(string fileNameWithoutExtension, int sortOrderOnlyLengthIndex) =>
static bool NameWithoutExtensionIsPaddedIdFormat(string fileNameWithoutExtension, short sortOrderOnlyLengthIndex) =>
fileNameWithoutExtension.Length > sortOrderOnlyLengthIndex
&& fileNameWithoutExtension[sortOrderOnlyLengthIndex] == '0'
&& fileNameWithoutExtension[sortOrderOnlyLengthIndex - 3] == '0'
@ -31,9 +33,9 @@ public interface IId
static short GetSortOrderOnlyLengthIndex(int offset) =>
(short)(offset.ToString().Length + 3);
bool TestStatic_NameWithoutExtensionIsPaddedIdFormat(FileHolder fileHolder, int sortOrderOnlyLengthIndex) =>
NameWithoutExtensionIsPaddedIdFormat(fileHolder, sortOrderOnlyLengthIndex);
static bool NameWithoutExtensionIsPaddedIdFormat(FileHolder fileHolder, int sortOrderOnlyLengthIndex) =>
NameWithoutExtensionIsPaddedIdFormat(fileHolder.NameWithoutExtension, sortOrderOnlyLengthIndex);
NameWithoutExtension TestStatic_GetNameWithoutExtension(IMetadataConfiguration configuration, string file) =>
GetNameWithoutExtension(configuration, file);
static NameWithoutExtension GetNameWithoutExtension(IMetadataConfiguration configuration, string file) =>
Id.GetNameWithoutExtension(configuration, file);
}

View File

@ -66,9 +66,9 @@ public interface IPath
static (string, int) GetDirectoryNameAndIndex(int resultAllInOneSubdirectoryLength, string fileName) =>
XPath.GetDirectoryNameAndIndex(resultAllInOneSubdirectoryLength, fileName);
Dictionary<string, string[]> TestStatic_GetKeyValuePairs(IAAConfiguration aAConfiguration, string? resultsFullGroupDirectory, string[]? directories) =>
Dictionary<string, string[]> TestStatic_GetKeyValuePairs(IMetadataConfiguration aAConfiguration, string? resultsFullGroupDirectory, string[]? directories) =>
GetKeyValuePairs(aAConfiguration, resultsFullGroupDirectory, directories);
static Dictionary<string, string[]> GetKeyValuePairs(IAAConfiguration propertyConfiguration, string? resultsFullGroupDirectory, string[]? directories) =>
static Dictionary<string, string[]> GetKeyValuePairs(IMetadataConfiguration propertyConfiguration, string? resultsFullGroupDirectory, string[]? directories) =>
XPath.GetKeyValuePairs(propertyConfiguration, resultsFullGroupDirectory, directories);
}

View File

@ -5,44 +5,44 @@ namespace View_by_Distance.Shared.Models.Stateless.Methods;
public interface IResult
{
string TestStatic_GetRelativePath(IAAConfiguration aAConfiguration, string path) =>
string TestStatic_GetRelativePath(IMetadataConfiguration aAConfiguration, string path) =>
GetRelativePath(aAConfiguration, path);
static string GetRelativePath(IAAConfiguration aAConfiguration, string path) =>
static string GetRelativePath(IMetadataConfiguration aAConfiguration, string path) =>
XResult.GetRelativePath(aAConfiguration, path);
string TestStatic_GetResultsGroupDirectory(IAAConfiguration aAConfiguration, string description, bool create) =>
string TestStatic_GetResultsGroupDirectory(IMetadataConfiguration aAConfiguration, string description, bool create) =>
GetResultsGroupDirectory(aAConfiguration, description, create);
static string GetResultsGroupDirectory(IAAConfiguration aAConfiguration, string description, bool create) =>
static string GetResultsGroupDirectory(IMetadataConfiguration aAConfiguration, string description, bool create) =>
XResult.GetResultsGroupDirectory(aAConfiguration, description, create);
string TestStatic_GetResultsGroupDirectory(IAAConfiguration aAConfiguration, string description) =>
string TestStatic_GetResultsGroupDirectory(IMetadataConfiguration aAConfiguration, string description) =>
GetResultsGroupDirectory(aAConfiguration, description);
static string GetResultsGroupDirectory(IAAConfiguration aAConfiguration, string description) =>
static string GetResultsGroupDirectory(IMetadataConfiguration aAConfiguration, string description) =>
XResult.GetResultsGroupDirectory(aAConfiguration, description, create: true);
string TestStatic_GetResultsDateGroupDirectory(IAAConfiguration aAConfiguration, string description) =>
string TestStatic_GetResultsDateGroupDirectory(IMetadataConfiguration aAConfiguration, string description) =>
GetResultsDateGroupDirectory(aAConfiguration, description);
static string GetResultsDateGroupDirectory(IAAConfiguration aAConfiguration, string description) =>
static string GetResultsDateGroupDirectory(IMetadataConfiguration aAConfiguration, string description) =>
XResult.GetResultsDateGroupDirectory(aAConfiguration, description);
string TestStatic_GetResultsDateGroupDirectory(IAAConfiguration aAConfiguration, string description, string jsonGroup) =>
string TestStatic_GetResultsDateGroupDirectory(IMetadataConfiguration aAConfiguration, string description, string jsonGroup) =>
GetResultsDateGroupDirectory(aAConfiguration, description, jsonGroup);
static string GetResultsDateGroupDirectory(IAAConfiguration aAConfiguration, string description, string jsonGroup) =>
static string GetResultsDateGroupDirectory(IMetadataConfiguration aAConfiguration, string description, string jsonGroup) =>
XResult.GetResultsDateGroupDirectory(aAConfiguration, description, jsonGroup);
List<string> TestStatic_GetDirectoryInfoCollection(IAAConfiguration aAConfiguration, string sourceDirectory, string dateGroupDirectory, string contentDescription, string singletonDescription, string collectionDescription, bool converted) =>
List<string> TestStatic_GetDirectoryInfoCollection(IMetadataConfiguration aAConfiguration, string sourceDirectory, string dateGroupDirectory, string contentDescription, string singletonDescription, string collectionDescription, bool converted) =>
GetDirectoryInfoCollection(aAConfiguration, sourceDirectory, dateGroupDirectory, contentDescription, singletonDescription, collectionDescription, converted);
static List<string> GetDirectoryInfoCollection(IAAConfiguration aAConfiguration, string sourceDirectory, string dateGroupDirectory, string contentDescription, string singletonDescription, string collectionDescription, bool converted) =>
static List<string> GetDirectoryInfoCollection(IMetadataConfiguration aAConfiguration, string sourceDirectory, string dateGroupDirectory, string contentDescription, string singletonDescription, string collectionDescription, bool converted) =>
XResult.GetDirectoryInfoCollection(aAConfiguration, sourceDirectory, dateGroupDirectory, contentDescription, singletonDescription, collectionDescription, converted);
string TestStatic_GetResultsFullGroupDirectory(IAAConfiguration aAConfiguration, string description, string outputResolution, bool includeResizeGroup, bool includeModel, bool includePredictorModel) =>
string TestStatic_GetResultsFullGroupDirectory(IMetadataConfiguration aAConfiguration, string description, string outputResolution, bool includeResizeGroup, bool includeModel, bool includePredictorModel) =>
GetResultsFullGroupDirectory(aAConfiguration, description, outputResolution, includeResizeGroup, includeModel, includePredictorModel);
static string GetResultsFullGroupDirectory(IAAConfiguration aAConfiguration, string description, string outputResolution, bool includeResizeGroup, bool includeModel, bool includePredictorModel) =>
static string GetResultsFullGroupDirectory(IMetadataConfiguration aAConfiguration, string description, string outputResolution, bool includeResizeGroup, bool includeModel, bool includePredictorModel) =>
XResult.GetResultsFullGroupDirectory(aAConfiguration, description, outputResolution, includeResizeGroup, includeModel, includePredictorModel);
List<string> TestStatic_GetDirectoryInfoCollection(IAAConfiguration aAConfiguration, string sourceDirectory, string description, string outputResolution, bool includeResizeGroup, bool includeModel, bool includePredictorModel, string contentDescription, string singletonDescription, string collectionDescription) =>
List<string> TestStatic_GetDirectoryInfoCollection(IMetadataConfiguration aAConfiguration, string sourceDirectory, string description, string outputResolution, bool includeResizeGroup, bool includeModel, bool includePredictorModel, string contentDescription, string singletonDescription, string collectionDescription) =>
GetDirectoryInfoCollection(aAConfiguration, sourceDirectory, description, outputResolution, includeResizeGroup, includeModel, includePredictorModel, contentDescription, singletonDescription, collectionDescription);
static List<string> GetDirectoryInfoCollection(IAAConfiguration aAConfiguration, string sourceDirectory, string description, string outputResolution, bool includeResizeGroup, bool includeModel, bool includePredictorModel, string contentDescription, string singletonDescription, string collectionDescription) =>
static List<string> GetDirectoryInfoCollection(IMetadataConfiguration aAConfiguration, string sourceDirectory, string description, string outputResolution, bool includeResizeGroup, bool includeModel, bool includePredictorModel, string contentDescription, string singletonDescription, string collectionDescription) =>
XResult.GetDirectoryInfoCollection(aAConfiguration, sourceDirectory, description, outputResolution, includeResizeGroup, includeModel, includePredictorModel, contentDescription, singletonDescription, collectionDescription);
}

View File

@ -283,7 +283,7 @@ internal abstract class XPath
return (result, converted);
}
internal static Dictionary<string, string[]> GetKeyValuePairs(IAAConfiguration aAConfiguration, string? resultsFullGroupDirectory, string[]? directories)
internal static Dictionary<string, string[]> GetKeyValuePairs(IMetadataConfiguration aAConfiguration, string? resultsFullGroupDirectory, string[]? directories)
{
Dictionary<string, string[]> results = [];
string directory;

View File

@ -5,7 +5,7 @@ namespace View_by_Distance.Shared.Models.Stateless;
internal abstract class XResult
{
internal static string GetResultsDateGroupDirectory(IAAConfiguration aAConfiguration, string description, string jsonGroup)
internal static string GetResultsDateGroupDirectory(IMetadataConfiguration aAConfiguration, string description, string jsonGroup)
{
string result = Path.Combine(GetResultsDateGroupDirectory(aAConfiguration, description), jsonGroup);
if (!Directory.Exists(result))
@ -13,7 +13,7 @@ internal abstract class XResult
return result;
}
internal static string GetResultsDateGroupDirectory(IAAConfiguration aAConfiguration, string description)
internal static string GetResultsDateGroupDirectory(IMetadataConfiguration aAConfiguration, string description)
{
string result = Path.Combine(GetResultsGroupDirectory(aAConfiguration, description, create: true), aAConfiguration.DateGroup);
if (!Directory.Exists(result))
@ -21,13 +21,13 @@ internal abstract class XResult
return result;
}
internal static string GetRelativePath(IAAConfiguration aAConfiguration, string path)
internal static string GetRelativePath(IMetadataConfiguration aAConfiguration, string path)
{
string result = Methods.IPath.GetRelativePath(path, aAConfiguration.RootDirectory.Length);
return result;
}
private static void CheckContent(IAAConfiguration aAConfiguration, string dateGroupDirectory, string contentDescription, string result)
private static void CheckContent(IMetadataConfiguration aAConfiguration, string dateGroupDirectory, string contentDescription, string result)
{
string checkDirectory;
checkDirectory = Path.Combine(dateGroupDirectory, aAConfiguration.ResultContent, aAConfiguration.ResultAllInOne);
@ -41,7 +41,7 @@ internal abstract class XResult
_ = Directory.CreateDirectory(checkDirectory);
}
private static void CheckSingleton(IAAConfiguration aAConfiguration, string dateGroupDirectory, string singletonDescription, bool converted, string result)
private static void CheckSingleton(IMetadataConfiguration aAConfiguration, string dateGroupDirectory, string singletonDescription, bool converted, string result)
{
string checkDirectory;
checkDirectory = Path.Combine(dateGroupDirectory, aAConfiguration.ResultSingleton, aAConfiguration.ResultAllInOne);
@ -58,7 +58,7 @@ internal abstract class XResult
_ = Directory.CreateDirectory(checkDirectory);
}
private static void CheckCollection(IAAConfiguration aAConfiguration, string dateGroupDirectory, string collectionDescription, bool converted, string result)
private static void CheckCollection(IMetadataConfiguration aAConfiguration, string dateGroupDirectory, string collectionDescription, bool converted, string result)
{
string checkDirectory = Path.Combine(dateGroupDirectory, aAConfiguration.ResultCollection, aAConfiguration.ResultAllInOne);
if (!Directory.Exists(checkDirectory))
@ -74,7 +74,7 @@ internal abstract class XResult
_ = Directory.CreateDirectory(checkDirectory);
}
internal static string GetResultsFullGroupDirectory(IAAConfiguration aAConfiguration, string description, string outputResolution, bool includeResizeGroup, bool includeModel, bool includePredictorModel)
internal static string GetResultsFullGroupDirectory(IMetadataConfiguration aAConfiguration, string description, string outputResolution, bool includeResizeGroup, bool includeModel, bool includePredictorModel)
{
string result = GetResultsDateGroupDirectory(aAConfiguration, description);
if (includeResizeGroup)
@ -103,7 +103,7 @@ internal abstract class XResult
return result;
}
internal static List<string> GetDirectoryInfoCollection(IAAConfiguration aAConfiguration, string sourceDirectory, string dateGroupDirectory, string contentDescription, string singletonDescription, string collectionDescription, bool converted)
internal static List<string> GetDirectoryInfoCollection(IMetadataConfiguration aAConfiguration, string sourceDirectory, string dateGroupDirectory, string contentDescription, string singletonDescription, string collectionDescription, bool converted)
{
List<string> results = [];
string sourceDirectorySegment = GetRelativePath(aAConfiguration, sourceDirectory);
@ -118,7 +118,7 @@ internal abstract class XResult
return results;
}
internal static string GetResultsGroupDirectory(IAAConfiguration aAConfiguration, string description, bool create)
internal static string GetResultsGroupDirectory(IMetadataConfiguration aAConfiguration, string description, bool create)
{
string result = Path.Combine($"{aAConfiguration.RootDirectory}-Results", description.Replace('_', ')'));
if (create && !Directory.Exists(result))
@ -126,7 +126,7 @@ internal abstract class XResult
return result;
}
internal static List<string> GetDirectoryInfoCollection(IAAConfiguration aAConfiguration, string sourceDirectory, string description, string outputResolution, bool includeResizeGroup, bool includeModel, bool includePredictorModel, string contentDescription, string singletonDescription, string collectionDescription)
internal static List<string> GetDirectoryInfoCollection(IMetadataConfiguration aAConfiguration, string sourceDirectory, string description, string outputResolution, bool includeResizeGroup, bool includeModel, bool includePredictorModel, string contentDescription, string singletonDescription, string collectionDescription)
{
List<string> results;
bool converted = false;