79 lines
3.8 KiB
C#
79 lines
3.8 KiB
C#
using System.Text.Json;
|
|
using System.Text.Json.Serialization;
|
|
|
|
namespace View_by_Distance.Shared.Models;
|
|
|
|
public class Storage : Properties.IStorage
|
|
{
|
|
|
|
protected string _DistanceResultRootDirectory;
|
|
protected string _FaceRootDirectory;
|
|
protected string _IndexInfoRootDirectory;
|
|
protected string _MetadataRootDirectory;
|
|
protected string _PeopleRootDirectory;
|
|
protected string _ResizeRootDirectory;
|
|
protected string _RootDirectory;
|
|
protected string _RootResultsDirectory;
|
|
protected string _UrlRoot;
|
|
public string DistanceResultRootDirectory => _DistanceResultRootDirectory;
|
|
public string FaceRootDirectory => _FaceRootDirectory;
|
|
public string IndexInfoRootDirectory => _IndexInfoRootDirectory;
|
|
public string MetadataRootDirectory => _MetadataRootDirectory;
|
|
public string PeopleRootDirectory => _PeopleRootDirectory;
|
|
public string ResizeRootDirectory => _ResizeRootDirectory;
|
|
public string RootDirectory => _RootDirectory;
|
|
public string RootResultsDirectory => _RootResultsDirectory;
|
|
public string UrlRoot => _UrlRoot;
|
|
|
|
[JsonConstructor]
|
|
public Storage(string distanceResultRootDirectory, string faceRootDirectory, string indexInfoRootDirectory, string metadataRootDirectory, string peopleRootDirectory, string resizeRootDirectory, string rootDirectory, string rootResultsDirectory, string urlRoot)
|
|
{
|
|
_DistanceResultRootDirectory = distanceResultRootDirectory;
|
|
_FaceRootDirectory = faceRootDirectory;
|
|
_IndexInfoRootDirectory = indexInfoRootDirectory;
|
|
_MetadataRootDirectory = metadataRootDirectory;
|
|
_PeopleRootDirectory = peopleRootDirectory;
|
|
_ResizeRootDirectory = resizeRootDirectory;
|
|
_RootDirectory = rootDirectory;
|
|
_RootResultsDirectory = rootResultsDirectory;
|
|
_UrlRoot = urlRoot;
|
|
string fullRootResultsDirectory;
|
|
if (rootResultsDirectory.StartsWith(rootDirectory))
|
|
fullRootResultsDirectory = rootResultsDirectory;
|
|
else
|
|
fullRootResultsDirectory = string.Concat(rootDirectory, rootResultsDirectory);
|
|
_RootResultsDirectory = fullRootResultsDirectory;
|
|
if (!distanceResultRootDirectory.StartsWith(rootDirectory))
|
|
_DistanceResultRootDirectory = string.Concat(fullRootResultsDirectory, distanceResultRootDirectory);
|
|
if (!faceRootDirectory.StartsWith(rootDirectory))
|
|
_FaceRootDirectory = string.Concat(fullRootResultsDirectory, faceRootDirectory);
|
|
if (!indexInfoRootDirectory.StartsWith(rootDirectory))
|
|
_IndexInfoRootDirectory = string.Concat(fullRootResultsDirectory, indexInfoRootDirectory);
|
|
if (!metadataRootDirectory.StartsWith(rootDirectory))
|
|
_MetadataRootDirectory = string.Concat(fullRootResultsDirectory, metadataRootDirectory);
|
|
if (!peopleRootDirectory.StartsWith(rootDirectory))
|
|
_PeopleRootDirectory = string.Concat(fullRootResultsDirectory, peopleRootDirectory);
|
|
if (!resizeRootDirectory.StartsWith(rootDirectory))
|
|
_ResizeRootDirectory = string.Concat(fullRootResultsDirectory, resizeRootDirectory);
|
|
}
|
|
|
|
public Storage(string rootDirectory, string rootResultsDirectory, string peopleRootDirectory)
|
|
{
|
|
_DistanceResultRootDirectory = "distanceResultRootDirectory";
|
|
_FaceRootDirectory = "faceRootDirectory";
|
|
_IndexInfoRootDirectory = "indexInfoRootDirectory";
|
|
_MetadataRootDirectory = "metadataRootDirectory";
|
|
_PeopleRootDirectory = peopleRootDirectory;
|
|
_ResizeRootDirectory = "resizeRootDirectory";
|
|
_RootDirectory = rootDirectory;
|
|
_RootResultsDirectory = rootResultsDirectory;
|
|
_UrlRoot = "urlRoot";
|
|
}
|
|
|
|
public override string ToString()
|
|
{
|
|
string result = JsonSerializer.Serialize(this, new JsonSerializerOptions() { WriteIndented = true });
|
|
return result;
|
|
} // ...
|
|
|
|
} |