127 lines
6.7 KiB
C#
127 lines
6.7 KiB
C#
// using System.Text.Json;
|
|
// using System.Text.Json.Serialization;
|
|
|
|
// namespace View_by_Distance.Metadata.Models;
|
|
|
|
// public class ZMetadataConfiguration : Shared.Models.Properties.IAAConfiguration
|
|
// {
|
|
|
|
// protected string _RootDirectory;
|
|
|
|
// public string RootDirectory => _RootDirectory;
|
|
|
|
// public string DateGroup { init; get; }
|
|
// public string FileNameDirectorySeparator { init; get; }
|
|
// public bool ForcePropertyLastWriteTimeToCreationTime { init; get; }
|
|
// public string[] IgnoreExtensions { init; get; }
|
|
// public string[] IgnoreRulesKeyWords { init; get; }
|
|
// public int MaxImagesInDirectoryForTopLevelFirstPass { init; get; }
|
|
// public string? ModelName { init; get; }
|
|
// public int? NumberOfJitters { init; get; }
|
|
// public int? NumberOfTimesToUpsample { init; get; }
|
|
// public int Offset { init; get; }
|
|
// public string Pattern { init; get; }
|
|
// public string PersonBirthdayFormat { init; get; }
|
|
// public bool PopulatePropertyId { init; get; }
|
|
// public string? PredictorModelName { init; get; }
|
|
// public bool PropertiesChangedForProperty { init; get; }
|
|
// public string[] PropertyContentCollectionFiles { init; get; }
|
|
// public string ResultAllInOne { init; get; }
|
|
// public int ResultAllInOneSubdirectoryLength { init; get; }
|
|
// public string ResultCollection { init; get; }
|
|
// public string ResultContent { init; get; }
|
|
// public string ResultSingleton { init; get; }
|
|
// public string[] ValidImageFormatExtensions { init; get; }
|
|
|
|
// [JsonConstructor]
|
|
// public MetadataConfiguration(string dateGroup,
|
|
// string fileNameDirectorySeparator,
|
|
// bool forcePropertyLastWriteTimeToCreationTime,
|
|
// string[] ignoreExtensions,
|
|
// string[] ignoreRulesKeyWords,
|
|
// int maxImagesInDirectoryForTopLevelFirstPass,
|
|
// string? modelName,
|
|
// int? numberOfJitters,
|
|
// int? numberOfTimesToUpsample,
|
|
// int offset,
|
|
// string pattern,
|
|
// string personBirthdayFormat,
|
|
// bool populatePropertyId,
|
|
// string? predictorModelName,
|
|
// bool propertiesChangedForProperty,
|
|
// string[] propertyContentCollectionFiles,
|
|
// string resultAllInOne,
|
|
// int resultAllInOneSubdirectoryLength,
|
|
// string resultCollection,
|
|
// string resultContent,
|
|
// string resultSingleton,
|
|
// string rootDirectory,
|
|
// string[] validImageFormatExtensions)
|
|
// {
|
|
// DateGroup = dateGroup;
|
|
// FileNameDirectorySeparator = fileNameDirectorySeparator;
|
|
// ForcePropertyLastWriteTimeToCreationTime = forcePropertyLastWriteTimeToCreationTime;
|
|
// IgnoreExtensions = ignoreExtensions;
|
|
// IgnoreRulesKeyWords = ignoreRulesKeyWords;
|
|
// MaxImagesInDirectoryForTopLevelFirstPass = maxImagesInDirectoryForTopLevelFirstPass;
|
|
// ModelName = modelName;
|
|
// NumberOfJitters = numberOfJitters;
|
|
// NumberOfTimesToUpsample = numberOfTimesToUpsample;
|
|
// Offset = offset;
|
|
// Pattern = pattern;
|
|
// PersonBirthdayFormat = personBirthdayFormat;
|
|
// PredictorModelName = predictorModelName;
|
|
// PopulatePropertyId = populatePropertyId;
|
|
// PropertiesChangedForProperty = propertiesChangedForProperty;
|
|
// PropertyContentCollectionFiles = propertyContentCollectionFiles;
|
|
// ResultAllInOne = resultAllInOne;
|
|
// ResultAllInOneSubdirectoryLength = resultAllInOneSubdirectoryLength;
|
|
// ResultCollection = resultCollection;
|
|
// ResultContent = resultContent;
|
|
// ResultSingleton = resultSingleton;
|
|
// _RootDirectory = rootDirectory;
|
|
// ValidImageFormatExtensions = validImageFormatExtensions;
|
|
// }
|
|
|
|
// public override string ToString()
|
|
// {
|
|
// string result = JsonSerializer.Serialize(this, MetadataConfigurationSourceGenerationContext.Default.MetadataConfiguration);
|
|
// return result;
|
|
// }
|
|
|
|
// public void ChangeRootDirectory(string rootDirectory) =>
|
|
// _RootDirectory = Path.GetFullPath(rootDirectory);
|
|
|
|
// public static void Verify(MetadataConfiguration propertyConfiguration, bool requireExist)
|
|
// {
|
|
// if (propertyConfiguration is null)
|
|
// throw new NullReferenceException(nameof(propertyConfiguration));
|
|
// if (propertyConfiguration.IgnoreExtensions is null || propertyConfiguration.IgnoreExtensions.Length == 0)
|
|
// throw new NullReferenceException(nameof(propertyConfiguration.IgnoreExtensions));
|
|
// if (propertyConfiguration.IgnoreRulesKeyWords is null || propertyConfiguration.IgnoreRulesKeyWords.Length == 0)
|
|
// throw new NullReferenceException(nameof(propertyConfiguration.IgnoreRulesKeyWords));
|
|
// if (propertyConfiguration.PropertyContentCollectionFiles is null)
|
|
// throw new NullReferenceException(nameof(propertyConfiguration.PropertyContentCollectionFiles));
|
|
// if (propertyConfiguration.ValidImageFormatExtensions is null || propertyConfiguration.ValidImageFormatExtensions.Length == 0)
|
|
// throw new NullReferenceException(nameof(propertyConfiguration.ValidImageFormatExtensions));
|
|
// if (propertyConfiguration is null)
|
|
// throw new NullReferenceException(nameof(propertyConfiguration));
|
|
// if (string.IsNullOrEmpty(propertyConfiguration.DateGroup))
|
|
// throw new NullReferenceException(nameof(propertyConfiguration.DateGroup));
|
|
// if (string.IsNullOrEmpty(propertyConfiguration.FileNameDirectorySeparator))
|
|
// throw new NullReferenceException(nameof(propertyConfiguration.FileNameDirectorySeparator));
|
|
// if (string.IsNullOrEmpty(propertyConfiguration.Pattern))
|
|
// throw new NullReferenceException(nameof(propertyConfiguration.Pattern));
|
|
// if (string.IsNullOrEmpty(propertyConfiguration.RootDirectory) || (requireExist && !Directory.Exists(propertyConfiguration.RootDirectory)))
|
|
// throw new NullReferenceException(nameof(propertyConfiguration.RootDirectory));
|
|
// if (propertyConfiguration.RootDirectory != Path.GetFullPath(propertyConfiguration.RootDirectory))
|
|
// throw new Exception();
|
|
// }
|
|
|
|
// }
|
|
|
|
// [JsonSourceGenerationOptions(WriteIndented = true)]
|
|
// [JsonSerializable(typeof(MetadataConfiguration))]
|
|
// internal partial class MetadataConfigurationSourceGenerationContext : JsonSerializerContext
|
|
// {
|
|
// } |