98 lines
4.9 KiB
C#
98 lines
4.9 KiB
C#
namespace View_by_Distance.Property.Models.Stateless;
|
|
|
|
internal class Result
|
|
{
|
|
|
|
internal static string GetRelativePath(Models.Configuration configuration, string path)
|
|
{
|
|
string result = XPath.GetRelativePath(path, configuration.RootDirectory.Length);
|
|
return result;
|
|
}
|
|
|
|
internal static string GetResultsGroupDirectory(Models.Configuration configuration, string description)
|
|
{
|
|
string result = Path.Combine($"{configuration.RootDirectory} - Results", description.Replace("_", ") "));
|
|
if (!Directory.Exists(result))
|
|
_ = Directory.CreateDirectory(result);
|
|
return result;
|
|
}
|
|
|
|
internal static string GetResultsDateGroupDirectory(Models.Configuration configuration, string description)
|
|
{
|
|
string result = Path.Combine(GetResultsGroupDirectory(configuration, description), configuration.DateGroup);
|
|
if (!Directory.Exists(result))
|
|
_ = Directory.CreateDirectory(result);
|
|
return result;
|
|
}
|
|
|
|
internal static string GetResultsDateGroupDirectory(Models.Configuration configuration, string description, string jsonGroup)
|
|
{
|
|
string result = Path.Combine(GetResultsDateGroupDirectory(configuration, description), jsonGroup);
|
|
if (!Directory.Exists(result))
|
|
_ = Directory.CreateDirectory(result);
|
|
return result;
|
|
}
|
|
|
|
internal static string GetResultsFullGroupDirectory(Models.Configuration configuration, string modelName, string predictorModelName, string description, string outputResolution, bool includeResizeGroup, bool includeModel, bool includePredictorModel)
|
|
{
|
|
string result = GetResultsDateGroupDirectory(configuration, description);
|
|
if (includeResizeGroup)
|
|
result = Path.Combine(result, outputResolution);
|
|
if (includeModel && includePredictorModel)
|
|
{
|
|
string dateGroupDirectory = string.Concat(outputResolution.Replace(" ", string.Empty), " - ", modelName, " - ", predictorModelName);
|
|
result = Path.Combine(result, dateGroupDirectory);
|
|
}
|
|
else if (includeModel)
|
|
throw new Exception();
|
|
else if (includePredictorModel)
|
|
throw new Exception();
|
|
if (!Directory.Exists(result))
|
|
_ = Directory.CreateDirectory(result);
|
|
return result;
|
|
}
|
|
|
|
internal static List<string> GetDirectoryInfoCollection(Models.Configuration configuration, string modelName, string predictorModelName, string sourceDirectory, string description, string outputResolution, bool includeResizeGroup, bool includeModel, bool includePredictorModel, string contentDescription, string singletonDescription, string collectionDescription)
|
|
{
|
|
List<string> results = new();
|
|
string result = string.Empty;
|
|
string checkDirectory;
|
|
string sourceDirectorySegment = GetRelativePath(configuration, sourceDirectory);
|
|
string dateGroupDirectory = IResult.GetResultsFullGroupDirectory(configuration, modelName, predictorModelName, description, outputResolution, includeResizeGroup, includeModel, includePredictorModel);
|
|
if (!string.IsNullOrEmpty(contentDescription))
|
|
{
|
|
result = string.Concat(Path.Combine(dateGroupDirectory, "<>"), sourceDirectorySegment);
|
|
System.IO.DirectoryInfo contentDirectoryInfo = new(result.Replace("<>", "()"));
|
|
if (!contentDirectoryInfo.Exists)
|
|
contentDirectoryInfo.Create();
|
|
checkDirectory = Path.Combine(dateGroupDirectory, string.Concat("() - ", contentDescription));
|
|
if (!Directory.Exists(checkDirectory))
|
|
_ = Directory.CreateDirectory(checkDirectory);
|
|
}
|
|
if (!string.IsNullOrEmpty(singletonDescription))
|
|
{
|
|
result = string.Concat(Path.Combine(dateGroupDirectory, "<>"), sourceDirectorySegment);
|
|
System.IO.DirectoryInfo singletonDirectoryInfo = new(result.Replace("<>", "{}"));
|
|
if (!singletonDirectoryInfo.Exists)
|
|
singletonDirectoryInfo.Create();
|
|
checkDirectory = Path.Combine(dateGroupDirectory, string.Concat("{} - ", singletonDescription));
|
|
if (!Directory.Exists(checkDirectory))
|
|
_ = Directory.CreateDirectory(checkDirectory);
|
|
}
|
|
if (!string.IsNullOrEmpty(collectionDescription))
|
|
{
|
|
result = string.Concat(Path.Combine(dateGroupDirectory, "<>"), sourceDirectorySegment);
|
|
System.IO.DirectoryInfo collectionDirectoryInfo = new(result.Replace("<>", "[]"));
|
|
if (!collectionDirectoryInfo.Exists)
|
|
collectionDirectoryInfo.Create();
|
|
checkDirectory = Path.Combine(dateGroupDirectory, string.Concat("[] - ", collectionDescription));
|
|
if (!Directory.Exists(checkDirectory))
|
|
_ = Directory.CreateDirectory(checkDirectory);
|
|
}
|
|
if (string.IsNullOrEmpty(result))
|
|
throw new Exception();
|
|
results.Add(result);
|
|
return results;
|
|
}
|
|
|
|
} |