Removed SortContainers
useCeilingAverage as parameter
This commit is contained in:
@ -3,29 +3,23 @@ using System.Text.Json.Serialization;
|
||||
|
||||
namespace View_by_Distance.Shared.Models;
|
||||
|
||||
public class MappingFromFilter : Properties.IMappingFromFilter
|
||||
public record MappingFromFilter(bool? IsFocusModel,
|
||||
bool? IsFocusPerson,
|
||||
bool? IsFocusRelativePath,
|
||||
bool? InSkipCollection,
|
||||
bool? IsUsed)
|
||||
{
|
||||
|
||||
public bool? IsFocusModel { init; get; }
|
||||
public bool? IsFocusPerson { init; get; }
|
||||
public bool? IsFocusRelativePath { init; get; }
|
||||
public bool? InSkipCollection { init; get; }
|
||||
public bool? IsUsed { init; get; }
|
||||
|
||||
[JsonConstructor]
|
||||
public MappingFromFilter(bool? isFocusModel, bool? isFocusPerson, bool? isFocusRelativePath, bool? inSkipCollection, bool? isUsed)
|
||||
{
|
||||
IsFocusModel = isFocusModel;
|
||||
IsFocusPerson = isFocusPerson;
|
||||
IsFocusRelativePath = isFocusRelativePath;
|
||||
InSkipCollection = inSkipCollection;
|
||||
IsUsed = isUsed;
|
||||
}
|
||||
|
||||
public override string ToString()
|
||||
{
|
||||
string result = JsonSerializer.Serialize(this, new JsonSerializerOptions() { WriteIndented = true });
|
||||
string result = JsonSerializer.Serialize(this, MappingFromFilterGenerationContext.Default.MappingFromFilter);
|
||||
return result;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
[JsonSourceGenerationOptions(WriteIndented = true)]
|
||||
[JsonSerializable(typeof(MappingFromFilter))]
|
||||
public partial class MappingFromFilterGenerationContext : JsonSerializerContext
|
||||
{
|
||||
}
|
@ -3,38 +3,22 @@ using System.Text.Json.Serialization;
|
||||
|
||||
namespace View_by_Distance.Shared.Models;
|
||||
|
||||
public class MappingFromItem : Properties.IMappingFromItem
|
||||
public record MappingFromItem(DateTime[] ContainerDateTimes,
|
||||
DateTime? DateTimeDigitized,
|
||||
DateTime? DateTimeOriginal,
|
||||
int Id,
|
||||
FileHolder ImageFileHolder,
|
||||
bool? IsWrongYear,
|
||||
string[]? Keywords,
|
||||
DateTime MinimumDateTime,
|
||||
string? Model,
|
||||
string RelativePath,
|
||||
FileHolder ResizedFileHolder)
|
||||
{
|
||||
|
||||
public DateTime[] ContainerDateTimes { init; get; }
|
||||
public DateTime? DateTimeDigitized { init; get; }
|
||||
public DateTime? DateTimeOriginal { init; get; }
|
||||
public int Id { init; get; }
|
||||
public FileHolder ImageFileHolder { init; get; }
|
||||
public bool? IsWrongYear { init; get; }
|
||||
public DateTime MinimumDateTime { init; get; }
|
||||
public string? Model { init; get; }
|
||||
public string RelativePath { init; get; }
|
||||
public FileHolder ResizedFileHolder { init; get; }
|
||||
|
||||
[JsonConstructor]
|
||||
public MappingFromItem(DateTime[] containerDateTimes, DateTime? dateTimeDigitized, DateTime? dateTimeOriginal, int id, FileHolder imageFileHolder, bool? isWrongYear, DateTime minimumDateTime, string? model, string relativePath, FileHolder resizedFileHolder)
|
||||
{
|
||||
ContainerDateTimes = containerDateTimes;
|
||||
DateTimeDigitized = dateTimeDigitized;
|
||||
DateTimeOriginal = dateTimeOriginal;
|
||||
Id = id;
|
||||
ImageFileHolder = imageFileHolder;
|
||||
IsWrongYear = isWrongYear;
|
||||
MinimumDateTime = minimumDateTime;
|
||||
Model = model;
|
||||
RelativePath = relativePath;
|
||||
ResizedFileHolder = resizedFileHolder;
|
||||
}
|
||||
|
||||
public override string ToString()
|
||||
{
|
||||
string result = JsonSerializer.Serialize(this, new JsonSerializerOptions() { WriteIndented = true });
|
||||
string result = JsonSerializer.Serialize(this, MappingFromItemGenerationContext.Default.MappingFromItem);
|
||||
return result;
|
||||
}
|
||||
|
||||
@ -51,8 +35,14 @@ public class MappingFromItem : Properties.IMappingFromItem
|
||||
List<DateTime> dateTimes = item.Property.GetDateTimes();
|
||||
DateTime minimumDateTime = Stateless.Methods.IProperty.GetMinimumDateTime(item.Property);
|
||||
(bool? isWrongYear, _) = Stateless.Methods.IProperty.IsWrongYear(item.ImageFileHolder, item.Property.DateTimeOriginal, dateTimes);
|
||||
result = new(containerDateTimes, item.Property.DateTimeDigitized, item.Property.DateTimeOriginal, item.Property.Id.Value, item.ImageFileHolder, isWrongYear, minimumDateTime, item.Property.Model, item.RelativePath, resizedFileHolder);
|
||||
result = new(containerDateTimes, item.Property.DateTimeDigitized, item.Property.DateTimeOriginal, item.Property.Id.Value, item.ImageFileHolder, isWrongYear, item.Property.Keywords, minimumDateTime, item.Property.Model, item.RelativePath, resizedFileHolder);
|
||||
return result;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
[JsonSourceGenerationOptions(WriteIndented = true)]
|
||||
[JsonSerializable(typeof(MappingFromItem))]
|
||||
public partial class MappingFromItemGenerationContext : JsonSerializerContext
|
||||
{
|
||||
}
|
@ -3,31 +3,24 @@ using System.Text.Json.Serialization;
|
||||
|
||||
namespace View_by_Distance.Shared.Models;
|
||||
|
||||
public class MappingFromLocation : Properties.IMappingFromLocation
|
||||
public record MappingFromLocation(int AreaPermyriad,
|
||||
int ConfidencePercent,
|
||||
string DeterministicHashCodeKey,
|
||||
int? Eyeα,
|
||||
bool? EyeReview,
|
||||
int WholePercentages)
|
||||
{
|
||||
|
||||
public int AreaPermyriad { init; get; }
|
||||
public int ConfidencePercent { init; get; }
|
||||
public string DeterministicHashCodeKey { init; get; }
|
||||
public int? Eyeα { init; get; }
|
||||
public bool? EyeReview { init; get; }
|
||||
public int WholePercentages { init; get; }
|
||||
|
||||
[JsonConstructor]
|
||||
public MappingFromLocation(int areaPermyriad, int confidencePercent, string deterministicHashCodeKey, int? eyeα, bool? eyeReview, int wholePercentages)
|
||||
{
|
||||
AreaPermyriad = areaPermyriad;
|
||||
ConfidencePercent = confidencePercent;
|
||||
DeterministicHashCodeKey = deterministicHashCodeKey;
|
||||
Eyeα = eyeα;
|
||||
EyeReview = eyeReview;
|
||||
WholePercentages = wholePercentages;
|
||||
}
|
||||
|
||||
public override string ToString()
|
||||
{
|
||||
string result = JsonSerializer.Serialize(this, new JsonSerializerOptions() { WriteIndented = true });
|
||||
string result = JsonSerializer.Serialize(this, MappingFromLocationGenerationContext.Default.MappingFromLocation);
|
||||
return result;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
[JsonSourceGenerationOptions(WriteIndented = true)]
|
||||
[JsonSerializable(typeof(MappingFromLocation))]
|
||||
public partial class MappingFromLocationGenerationContext : JsonSerializerContext
|
||||
{
|
||||
}
|
@ -4,29 +4,23 @@ using System.Text.Json.Serialization;
|
||||
|
||||
namespace View_by_Distance.Shared.Models;
|
||||
|
||||
public class MappingFromPerson : Properties.IMappingFromPerson
|
||||
public record MappingFromPerson(int? ApproximateYears,
|
||||
string DisplayDirectoryName,
|
||||
ReadOnlyCollection<string> LocationContainersFiles,
|
||||
PersonBirthday PersonBirthday,
|
||||
string SegmentB)
|
||||
{
|
||||
|
||||
public int? ApproximateYears { init; get; }
|
||||
public string DisplayDirectoryName { init; get; }
|
||||
public ReadOnlyCollection<string> LocationContainersFiles { init; get; }
|
||||
public PersonBirthday PersonBirthday { init; get; }
|
||||
public string SegmentB { init; get; }
|
||||
|
||||
[JsonConstructor]
|
||||
public MappingFromPerson(int? approximateYears, string displayDirectoryName, ReadOnlyCollection<string> locationContainersFiles, PersonBirthday personBirthday, string segmentB)
|
||||
{
|
||||
ApproximateYears = approximateYears;
|
||||
DisplayDirectoryName = displayDirectoryName;
|
||||
LocationContainersFiles = locationContainersFiles;
|
||||
PersonBirthday = personBirthday;
|
||||
SegmentB = segmentB;
|
||||
}
|
||||
|
||||
public override string ToString()
|
||||
{
|
||||
string result = JsonSerializer.Serialize(this, new JsonSerializerOptions() { WriteIndented = true });
|
||||
string result = JsonSerializer.Serialize(this, MappingFromPersonGenerationContext.Default.MappingFromPerson);
|
||||
return result;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
[JsonSourceGenerationOptions(WriteIndented = true)]
|
||||
[JsonSerializable(typeof(MappingFromPerson))]
|
||||
public partial class MappingFromPersonGenerationContext : JsonSerializerContext
|
||||
{
|
||||
}
|
@ -1,18 +1,22 @@
|
||||
using System.Text.Json;
|
||||
using System.Text.Json.Serialization;
|
||||
|
||||
namespace View_by_Distance.Shared.Models;
|
||||
|
||||
public class MappingFromPhotoPrism : Properties.IMappingFromPhotoPrism
|
||||
public record MappingFromPhotoPrism(DatabaseFile DatabaseFile,
|
||||
List<Marker> Markers)
|
||||
{
|
||||
|
||||
public DatabaseFile DatabaseFile { init; get; }
|
||||
public List<Marker> Markers { init; get; }
|
||||
|
||||
[JsonConstructor]
|
||||
public MappingFromPhotoPrism(DatabaseFile databaseFile, List<Marker> markers)
|
||||
public override string ToString()
|
||||
{
|
||||
DatabaseFile = databaseFile;
|
||||
Markers = markers;
|
||||
string result = JsonSerializer.Serialize(this, MappingFromPhotoPrismGenerationContext.Default.MappingFromPhotoPrism);
|
||||
return result;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
[JsonSourceGenerationOptions(WriteIndented = true)]
|
||||
[JsonSerializable(typeof(MappingFromPhotoPrism))]
|
||||
public partial class MappingFromPhotoPrismGenerationContext : JsonSerializerContext
|
||||
{
|
||||
}
|
@ -1,12 +0,0 @@
|
||||
namespace View_by_Distance.Shared.Models.Properties;
|
||||
|
||||
public interface IMappingFromFilter
|
||||
{
|
||||
|
||||
public bool? IsFocusModel { init; get; }
|
||||
public bool? IsFocusPerson { init; get; }
|
||||
public bool? IsFocusRelativePath { init; get; }
|
||||
public bool? InSkipCollection { init; get; }
|
||||
public bool? IsUsed { init; get; }
|
||||
|
||||
}
|
@ -1,17 +0,0 @@
|
||||
namespace View_by_Distance.Shared.Models.Properties;
|
||||
|
||||
public interface IMappingFromItem
|
||||
{
|
||||
|
||||
public DateTime[] ContainerDateTimes { init; get; }
|
||||
public DateTime? DateTimeDigitized { init; get; }
|
||||
public DateTime? DateTimeOriginal { init; get; }
|
||||
public int Id { init; get; }
|
||||
public FileHolder ImageFileHolder { init; get; }
|
||||
public bool? IsWrongYear { init; get; }
|
||||
public DateTime MinimumDateTime { init; get; }
|
||||
public string? Model { init; get; }
|
||||
public string RelativePath { init; get; }
|
||||
public FileHolder ResizedFileHolder { init; get; }
|
||||
|
||||
}
|
@ -1,13 +0,0 @@
|
||||
namespace View_by_Distance.Shared.Models.Properties;
|
||||
|
||||
public interface IMappingFromLocation
|
||||
{
|
||||
|
||||
public int AreaPermyriad { init; get; }
|
||||
public int ConfidencePercent { init; get; }
|
||||
public string DeterministicHashCodeKey { init; get; }
|
||||
public int? Eyeα { init; get; }
|
||||
public bool? EyeReview { init; get; }
|
||||
public int WholePercentages { init; get; }
|
||||
|
||||
}
|
@ -1,14 +0,0 @@
|
||||
using System.Collections.ObjectModel;
|
||||
|
||||
namespace View_by_Distance.Shared.Models.Properties;
|
||||
|
||||
public interface IMappingFromPerson
|
||||
{
|
||||
|
||||
public int? ApproximateYears { init; get; }
|
||||
public string DisplayDirectoryName { init; get; }
|
||||
public ReadOnlyCollection<string> LocationContainersFiles { init; get; }
|
||||
public PersonBirthday PersonBirthday { init; get; }
|
||||
public string SegmentB { init; get; }
|
||||
|
||||
}
|
@ -1,9 +0,0 @@
|
||||
namespace View_by_Distance.Shared.Models.Properties;
|
||||
|
||||
public interface IMappingFromPhotoPrism
|
||||
{
|
||||
|
||||
public DatabaseFile DatabaseFile { init; get; }
|
||||
public List<Marker> Markers { init; get; }
|
||||
|
||||
}
|
@ -12,11 +12,11 @@ public record Property(DateTime CreationTime,
|
||||
DateTime? GPSDateStamp,
|
||||
int? Height,
|
||||
int? Id,
|
||||
string[]? Keywords,
|
||||
DateTime LastWriteTime,
|
||||
string? Make,
|
||||
string? Model,
|
||||
string? Orientation,
|
||||
string[]? Tags,
|
||||
int? Width)
|
||||
{
|
||||
|
||||
@ -32,6 +32,6 @@ public record Property(DateTime CreationTime,
|
||||
|
||||
[JsonSourceGenerationOptions(WriteIndented = true)]
|
||||
[JsonSerializable(typeof(Property))]
|
||||
internal partial class PropertyGenerationContext : JsonSerializerContext
|
||||
public partial class PropertyGenerationContext : JsonSerializerContext
|
||||
{
|
||||
}
|
@ -38,26 +38,10 @@ internal abstract class Container
|
||||
return results.ToArray();
|
||||
}
|
||||
|
||||
internal static Models.Container[] SortContainers(bool argZeroIsConfigurationRootDirectory, string argZero, Models.Container[] containers)
|
||||
{
|
||||
List<Models.Container> results = new();
|
||||
for (int i = 1; i < 3; i++)
|
||||
{
|
||||
foreach (Models.Container container in containers)
|
||||
{
|
||||
if (container.Items.Count == 0)
|
||||
continue;
|
||||
if (!argZeroIsConfigurationRootDirectory && !container.SourceDirectory.StartsWith(argZero))
|
||||
continue;
|
||||
results.Add(container);
|
||||
}
|
||||
}
|
||||
return results.ToArray();
|
||||
}
|
||||
|
||||
internal static List<Models.FilePair> GetFilePairs(Properties.IPropertyConfiguration propertyConfiguration, string directorySearchFilter, string extension, string aPropertySingletonDirectory, List<string[]> filesCollection)
|
||||
{
|
||||
int renamed;
|
||||
const bool useCeilingAverage = true;
|
||||
List<Models.FilePair>? filePairs = null;
|
||||
List<string[]>? jsonFilesCollection = null;
|
||||
IReadOnlyDictionary<string, List<string>>? compareFileNamesToFiles = null;
|
||||
@ -65,7 +49,7 @@ internal abstract class Container
|
||||
for (int i = 0; i < int.MaxValue; i++)
|
||||
{
|
||||
renamed = 0;
|
||||
jsonFilesCollection = IDirectory.GetFilesCollection(aPropertySingletonDirectory, directorySearchFilter, extension);
|
||||
jsonFilesCollection = IDirectory.GetFilesCollection(aPropertySingletonDirectory, directorySearchFilter, extension, useCeilingAverage);
|
||||
compareFileNamesToFiles = IDirectory.GetFilesKeyValuePairs(jsonFilesCollection);
|
||||
renamed += IDirectory.LookForAbandoned(jsonFilesCollection, fileNamesToFiles, extension);
|
||||
filePairs = IDirectory.GetFiles(filesCollection, fileNamesToFiles, extension, compareFileNamesToFiles);
|
||||
@ -197,9 +181,10 @@ internal abstract class Container
|
||||
{
|
||||
int count;
|
||||
Models.Container[] results;
|
||||
const bool useCeilingAverage = true;
|
||||
const string fileSearchFilter = "*";
|
||||
const string directorySearchFilter = "*";
|
||||
List<string[]> filesCollection = IDirectory.GetFilesCollection(propertyConfiguration.RootDirectory, directorySearchFilter, fileSearchFilter);
|
||||
List<string[]> filesCollection = IDirectory.GetFilesCollection(propertyConfiguration.RootDirectory, directorySearchFilter, fileSearchFilter, useCeilingAverage);
|
||||
(count, results) = GetContainers(propertyConfiguration, aPropertySingletonDirectory, directorySearchFilter, filesCollection);
|
||||
return (count, results);
|
||||
}
|
||||
|
@ -15,11 +15,6 @@ public interface IContainer
|
||||
static Models.Item[] GetFilterItems(Properties.IPropertyConfiguration propertyConfiguration, Models.Container container) =>
|
||||
Container.GetFilterItems(propertyConfiguration, container);
|
||||
|
||||
Models.Container[] TestStatic_SortContainers(bool argZeroIsConfigurationRootDirectory, string argZero, Models.Container[] containers) =>
|
||||
SortContainers(argZeroIsConfigurationRootDirectory, argZero, containers);
|
||||
static Models.Container[] SortContainers(bool argZeroIsConfigurationRootDirectory, string argZero, Models.Container[] containers) =>
|
||||
Container.SortContainers(argZeroIsConfigurationRootDirectory, argZero, containers);
|
||||
|
||||
List<FilePair> TestStatic_GetFilePairs(Properties.IPropertyConfiguration propertyConfiguration, string directorySearchFilter, string extension, string aPropertySingletonDirectory, List<string[]> filesCollection) =>
|
||||
Container.GetFilePairs(propertyConfiguration, directorySearchFilter, extension, aPropertySingletonDirectory, filesCollection);
|
||||
static List<FilePair> GetFilePairs(Properties.IPropertyConfiguration propertyConfiguration, string directorySearchFilter, string extension, string aPropertySingletonDirectory, List<string[]> filesCollection) =>
|
||||
|
@ -39,10 +39,10 @@ public interface IDirectory
|
||||
static bool NameWithoutExtensionIsPaddedIdFormat(Models.FileHolder fileHolder, int sortOrderOnlyLengthIndex) =>
|
||||
NameWithoutExtensionIsPaddedIdFormat(fileHolder.NameWithoutExtension, sortOrderOnlyLengthIndex);
|
||||
|
||||
List<string[]> TestStatic_GetFilesCollection(string directory, string directorySearchFilter, string fileSearchFilter) =>
|
||||
GetFilesCollection(directory, directorySearchFilter, fileSearchFilter);
|
||||
static List<string[]> GetFilesCollection(string directory, string directorySearchFilter, string fileSearchFilter) =>
|
||||
XDirectory.GetFilesCollection(directory, directorySearchFilter, fileSearchFilter);
|
||||
List<string[]> TestStatic_GetFilesCollection(string directory, string directorySearchFilter, string fileSearchFilter, bool useCeilingAverage) =>
|
||||
GetFilesCollection(directory, directorySearchFilter, fileSearchFilter, useCeilingAverage);
|
||||
static List<string[]> GetFilesCollection(string directory, string directorySearchFilter, string fileSearchFilter, bool useCeilingAverage) =>
|
||||
XDirectory.GetFilesCollection(directory, directorySearchFilter, fileSearchFilter, useCeilingAverage);
|
||||
|
||||
IReadOnlyDictionary<string, List<string>> TestStatic_GetFilesKeyValuePairs(List<string[]> filesCollection) =>
|
||||
GetFilesKeyValuePairs(filesCollection);
|
||||
|
@ -30,7 +30,7 @@ internal abstract partial class XDirectory
|
||||
return results;
|
||||
}
|
||||
|
||||
internal static List<string[]> GetFilesCollection(string directory, string directorySearchFilter, string fileSearchFilter)
|
||||
internal static List<string[]> GetFilesCollection(string directory, string directorySearchFilter, string fileSearchFilter, bool useCeilingAverage)
|
||||
{
|
||||
List<string[]> results = new();
|
||||
if (!fileSearchFilter.Contains('*'))
|
||||
@ -47,7 +47,8 @@ internal abstract partial class XDirectory
|
||||
{ continue; }
|
||||
}
|
||||
int ceilingAverage = directory[^1] == '_' || !results.Any() ? 0 : GetCeilingAverage(results);
|
||||
results = GetFilesCollection(results, ceilingAverage);
|
||||
if (useCeilingAverage)
|
||||
results = GetFilesCollection(results, ceilingAverage);
|
||||
return results;
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user