DistanceLimits
This commit is contained in:
@ -10,16 +10,18 @@ public class MappingFromItem : Properties.IMappingFromItem
|
||||
public int Id { init; get; }
|
||||
public FileHolder ImageFileHolder { init; get; }
|
||||
public bool? IsWrongYear { init; get; }
|
||||
public bool IsIgnoreRelativePath { init; get; }
|
||||
public DateTime MinimumDateTime { init; get; }
|
||||
public string RelativePath { init; get; }
|
||||
public FileHolder ResizedFileHolder { init; get; }
|
||||
|
||||
[JsonConstructor]
|
||||
public MappingFromItem(DateTime[] containerDateTimes, int id, FileHolder imageFileHolder, bool? isWrongYear, DateTime minimumDateTime, string relativePath, FileHolder resizedFileHolder)
|
||||
public MappingFromItem(DateTime[] containerDateTimes, int id, FileHolder imageFileHolder, bool isIgnoreRelativePath, bool? isWrongYear, DateTime minimumDateTime, string relativePath, FileHolder resizedFileHolder)
|
||||
{
|
||||
ContainerDateTimes = containerDateTimes;
|
||||
Id = id;
|
||||
ImageFileHolder = imageFileHolder;
|
||||
IsIgnoreRelativePath = isIgnoreRelativePath;
|
||||
IsWrongYear = isWrongYear;
|
||||
MinimumDateTime = minimumDateTime;
|
||||
RelativePath = relativePath;
|
||||
@ -32,7 +34,7 @@ public class MappingFromItem : Properties.IMappingFromItem
|
||||
return result;
|
||||
}
|
||||
|
||||
internal static MappingFromItem GetMappingFromItem(DateTime[] containerDateTimes, Item item, FileHolder? resizedFileHolder)
|
||||
internal static MappingFromItem GetMappingFromItem(DateTime[] containerDateTimes, Item item, FileHolder? resizedFileHolder, bool isIgnoreRelativePath)
|
||||
{
|
||||
MappingFromItem result;
|
||||
bool? isWrongYear;
|
||||
@ -43,7 +45,7 @@ public class MappingFromItem : Properties.IMappingFromItem
|
||||
throw new NotSupportedException();
|
||||
minimumDateTime = Stateless.Methods.IProperty.GetMinimumDateTime(item.Property);
|
||||
(isWrongYear, _) = item.Property.IsWrongYear(item.ImageFileHolder, minimumDateTime);
|
||||
result = new(containerDateTimes, item.Property.Id.Value, item.ImageFileHolder, isWrongYear, minimumDateTime, item.RelativePath, resizedFileHolder);
|
||||
result = new(containerDateTimes, item.Property.Id.Value, item.ImageFileHolder, isIgnoreRelativePath, isWrongYear, minimumDateTime, item.RelativePath, resizedFileHolder);
|
||||
return result;
|
||||
}
|
||||
|
||||
|
16
Shared/Models/Methods/IDistanceLimits.cs
Normal file
16
Shared/Models/Methods/IDistanceLimits.cs
Normal file
@ -0,0 +1,16 @@
|
||||
namespace View_by_Distance.Shared.Models.Methods;
|
||||
|
||||
public interface IDistanceLimits
|
||||
{
|
||||
|
||||
public double FaceAreaPermille { init; get; }
|
||||
public double RangeDaysDeltaTolerance { init; get; }
|
||||
public double FaceConfidencePercent { init; get; }
|
||||
public double FaceDistancePermyriad { init; get; }
|
||||
public int SortingMaximumPerFaceShouldBeHigh { init; get; }
|
||||
public bool RangeDaysDeltaTargetLessThenUpper { init; get; }
|
||||
|
||||
string GetCounts();
|
||||
void AddCounts(int area, int days, int distance, int confidence);
|
||||
|
||||
}
|
@ -1,8 +0,0 @@
|
||||
namespace View_by_Distance.Shared.Models.Methods;
|
||||
|
||||
public interface IMapLogicSupport
|
||||
{
|
||||
|
||||
string GetCounts();
|
||||
|
||||
}
|
@ -6,6 +6,7 @@ public interface IMappingFromItem
|
||||
public DateTime[] ContainerDateTimes { init; get; }
|
||||
public int Id { init; get; }
|
||||
public FileHolder ImageFileHolder { init; get; }
|
||||
public bool IsIgnoreRelativePath { init; get; }
|
||||
public bool? IsWrongYear { init; get; }
|
||||
public DateTime MinimumDateTime { init; get; }
|
||||
public string RelativePath { init; get; }
|
||||
|
@ -94,7 +94,10 @@ internal abstract class Container
|
||||
filePairs = IDirectory.GetFiles(filesCollection, fileNamesToFiles, extension, compareFileNamesToFiles);
|
||||
renamed += IDirectory.MaybeMove(propertyConfiguration.RootDirectory, propertyConfiguration.ResultAllInOne, filePairs, aPropertySingletonDirectory, extension);
|
||||
if (renamed == 0)
|
||||
{
|
||||
_ = IPath.DeleteEmptyDirectories(aPropertySingletonDirectory);
|
||||
break;
|
||||
}
|
||||
}
|
||||
if (filePairs is null || jsonFilesCollection is null || compareFileNamesToFiles is null)
|
||||
throw new NullReferenceException(nameof(filePairs));
|
||||
|
@ -9,7 +9,7 @@ public interface IDirectory
|
||||
|
||||
int TestStatic_GetDirectory(char directory) =>
|
||||
GetDirectory(directory);
|
||||
static int GetDirectory(char directory) => directory == '-' ? 10 : int.Parse(directory.ToString());
|
||||
static int GetDirectory(char directory) => directory == '-' ? 10 : int.TryParse(directory.ToString(), out int value) ? value : 11;
|
||||
|
||||
List<string[]> TestStatic_GetFilesCollection(string directory, string directorySearchFilter, string fileSearchFilter) =>
|
||||
GetFilesCollection(directory, directorySearchFilter, fileSearchFilter);
|
||||
|
@ -3,19 +3,19 @@ namespace View_by_Distance.Shared.Models.Stateless.Methods;
|
||||
public interface IMappingFromItem
|
||||
{ // ...
|
||||
|
||||
MappingFromItem TestStatic_GetMappingFromItem(DateTime[] containerDateTimes, Models.Item item, Models.FileHolder? resizedFileHolder)
|
||||
=> GetMappingFromItem(containerDateTimes, item, resizedFileHolder);
|
||||
static MappingFromItem GetMappingFromItem(DateTime[] containerDateTimes, Models.Item item, Models.FileHolder? resizedFileHolder)
|
||||
=> MappingFromItem.GetMappingFromItem(containerDateTimes, item, resizedFileHolder);
|
||||
MappingFromItem TestStatic_GetMappingFromItem(DateTime[] containerDateTimes, Models.Item item, Models.FileHolder? resizedFileHolder, bool isIgnoreRelativePath)
|
||||
=> GetMappingFromItem(containerDateTimes, item, resizedFileHolder, isIgnoreRelativePath);
|
||||
static MappingFromItem GetMappingFromItem(DateTime[] containerDateTimes, Models.Item item, Models.FileHolder? resizedFileHolder, bool isIgnoreRelativePath)
|
||||
=> MappingFromItem.GetMappingFromItem(containerDateTimes, item, resizedFileHolder, isIgnoreRelativePath);
|
||||
|
||||
MappingFromItem TestStatic_GetMappingFromItem(DateTime[] containerDateTimes, Models.Item item)
|
||||
=> GetMappingFromItem(containerDateTimes, item);
|
||||
static MappingFromItem GetMappingFromItem(DateTime[] containerDateTimes, Models.Item item)
|
||||
=> GetMappingFromItem(containerDateTimes, item, item.ResizedFileHolder);
|
||||
MappingFromItem TestStatic_GetMappingFromItem(DateTime[] containerDateTimes, Models.Item item, bool isIgnoreRelativePath)
|
||||
=> GetMappingFromItem(containerDateTimes, item, isIgnoreRelativePath);
|
||||
static MappingFromItem GetMappingFromItem(DateTime[] containerDateTimes, Models.Item item, bool isIgnoreRelativePath)
|
||||
=> GetMappingFromItem(containerDateTimes, item, item.ResizedFileHolder, isIgnoreRelativePath);
|
||||
|
||||
MappingFromItem TestStatic_GetMappingFromItem(Models.Item item)
|
||||
=> GetMappingFromItem(item);
|
||||
static MappingFromItem GetMappingFromItem(Models.Item item)
|
||||
=> GetMappingFromItem(containerDateTimes: Array.Empty<DateTime>(), item, item.ResizedFileHolder);
|
||||
MappingFromItem TestStatic_GetMappingFromItem(Models.Item item, bool isIgnoreRelativePath)
|
||||
=> GetMappingFromItem(item, isIgnoreRelativePath);
|
||||
static MappingFromItem GetMappingFromItem(Models.Item item, bool isIgnoreRelativePath)
|
||||
=> GetMappingFromItem(containerDateTimes: Array.Empty<DateTime>(), item, item.ResizedFileHolder, isIgnoreRelativePath);
|
||||
|
||||
}
|
@ -68,19 +68,25 @@ internal abstract partial class XDirectory
|
||||
internal static int LookForAbandoned(List<string[]> jsonFilesCollection, IReadOnlyDictionary<string, List<string>> fileNamesToFiles, string extension)
|
||||
{
|
||||
string fileName;
|
||||
string fileNameWith;
|
||||
List<string>? collection;
|
||||
string fileNameUpperExtension;
|
||||
int length = extension.Length;
|
||||
List<(string, string)> rename = new();
|
||||
foreach (string[] files in jsonFilesCollection)
|
||||
{
|
||||
foreach (string file in files)
|
||||
{
|
||||
fileName = Path.GetFileName(file);
|
||||
if (fileName.Length < length || !fileName.EndsWith(extension))
|
||||
fileNameWith = Path.GetFileName(file);
|
||||
if (fileNameWith.Length < length || !fileNameWith.EndsWith(extension))
|
||||
throw new Exception();
|
||||
if (!fileNamesToFiles.TryGetValue(fileName[..^length], out collection))
|
||||
rename.Add(new(file, string.Concat(file, ".del")));
|
||||
|
||||
fileName = fileNameWith[..^length];
|
||||
if (!fileNamesToFiles.TryGetValue(fileName, out collection))
|
||||
{
|
||||
fileNameUpperExtension = string.Concat(Path.GetFileNameWithoutExtension(fileName), Path.GetExtension(fileName).ToUpper());
|
||||
if (fileName == fileNameUpperExtension || !fileNamesToFiles.TryGetValue(fileNameUpperExtension, out collection))
|
||||
rename.Add(new(file, string.Concat(file, ".del")));
|
||||
}
|
||||
}
|
||||
}
|
||||
foreach ((string from, string to) in rename)
|
||||
@ -236,7 +242,6 @@ internal abstract partial class XDirectory
|
||||
}
|
||||
File.Move(from, checkDirectory);
|
||||
}
|
||||
_ = IPath.DeleteEmptyDirectories(jsonGroupDirectory);
|
||||
return rename.Count;
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user