Can-remap
This commit is contained in:
@ -1,4 +1,3 @@
|
||||
using System.Collections.ObjectModel;
|
||||
using System.Text.Json;
|
||||
using System.Text.Json.Serialization;
|
||||
|
||||
@ -15,7 +14,6 @@ public class Mapping : Properties.IMapping
|
||||
public MappingFromFilterPost MappingFromFilterPost { init; get; }
|
||||
public MappingFromFilterPre MappingFromFilterPre { init; get; }
|
||||
public MappingFromItem MappingFromItem { init; get; }
|
||||
public MappingFromFilter MappingFromFilter { init; get; }
|
||||
public MappingFromLocation? MappingFromLocation { init; get; }
|
||||
public MappingFromPerson? MappingFromPerson => _MappingFromPerson;
|
||||
public List<MappingFromPhotoPrism>? MappingFromPhotoPrismCollection { init; get; }
|
||||
@ -23,11 +21,10 @@ public class Mapping : Properties.IMapping
|
||||
public SortingContainer? SortingContainer => _SortingContainer;
|
||||
|
||||
[JsonConstructor]
|
||||
public Mapping(int? by, MappingFromFilter mappingFromFilter, MappingFromFilterPost mappingFromFilterPost, MappingFromFilterPre mappingFromFilterPre, MappingFromItem mappingFromItem, MappingFromLocation? mappingFromLocation, MappingFromPerson? mappingFromPerson, List<MappingFromPhotoPrism>? mappingFromPhotoPrismCollection, string? segmentC, SortingContainer? sortingContainer)
|
||||
public Mapping(int? by, MappingFromFilterPost mappingFromFilterPost, MappingFromFilterPre mappingFromFilterPre, MappingFromItem mappingFromItem, MappingFromLocation? mappingFromLocation, MappingFromPerson? mappingFromPerson, List<MappingFromPhotoPrism>? mappingFromPhotoPrismCollection, string? segmentC, SortingContainer? sortingContainer)
|
||||
{
|
||||
_By = by;
|
||||
_SegmentC = segmentC;
|
||||
MappingFromFilter = mappingFromFilter;
|
||||
MappingFromFilterPost = mappingFromFilterPost;
|
||||
MappingFromFilterPre = mappingFromFilterPre;
|
||||
MappingFromItem = mappingFromItem;
|
||||
@ -37,8 +34,8 @@ public class Mapping : Properties.IMapping
|
||||
_SortingContainer = sortingContainer;
|
||||
}
|
||||
|
||||
public Mapping(MappingFromFilter mappingFromFilter, MappingFromFilterPost mappingFromFilterPost, MappingFromFilterPre mappingFromFilterPre, MappingFromItem mappingFromItem, MappingFromLocation? mappingFromLocation, List<MappingFromPhotoPrism>? mappingFromPhotoPrismCollection) :
|
||||
this(null, mappingFromFilter, mappingFromFilterPost, mappingFromFilterPre, mappingFromItem, mappingFromLocation, null, mappingFromPhotoPrismCollection, null, null)
|
||||
public Mapping(MappingFromFilterPost mappingFromFilterPost, MappingFromFilterPre mappingFromFilterPre, MappingFromItem mappingFromItem, MappingFromLocation? mappingFromLocation, List<MappingFromPhotoPrism>? mappingFromPhotoPrismCollection) :
|
||||
this(null, mappingFromFilterPost, mappingFromFilterPre, mappingFromItem, mappingFromLocation, null, mappingFromPhotoPrismCollection, null, null)
|
||||
{ }
|
||||
|
||||
public override string ToString()
|
||||
@ -54,19 +51,19 @@ public class Mapping : Properties.IMapping
|
||||
_SegmentC = !saveIndividually ? null : sortingContainer.Sorting.DistancePermyriad.ToString();
|
||||
}
|
||||
|
||||
public void UpdateMappingFromPerson(ReadOnlyCollection<string> locationContainersFiles, int? approximateYears, string displayDirectoryName, PersonBirthday personBirthday, string segmentB)
|
||||
public void UpdateMappingFromPerson(int? approximateYears, string displayDirectoryName, long personKey, string segmentB)
|
||||
{
|
||||
_SortingContainer = null;
|
||||
_By = Stateless.IMapLogic.Mapping;
|
||||
_MappingFromPerson = new(approximateYears, displayDirectoryName, locationContainersFiles, personBirthday, segmentB);
|
||||
_MappingFromPerson = new(approximateYears, displayDirectoryName, personKey, segmentB);
|
||||
}
|
||||
|
||||
public void UpdateMappingFromPerson(int? approximateYears, string displayDirectoryName, PersonBirthday personBirthday, string segmentB, string segmentC, SortingContainer sortingContainer, ReadOnlyCollection<string> locationContainersFiles)
|
||||
public void UpdateMappingFromPerson(int? approximateYears, string displayDirectoryName, long personKey, string segmentB, string? segmentC, SortingContainer sortingContainer)
|
||||
{
|
||||
_SegmentC = segmentC;
|
||||
_By = Stateless.IMapLogic.Sorting;
|
||||
_SortingContainer = sortingContainer;
|
||||
_MappingFromPerson = new(approximateYears, displayDirectoryName, locationContainersFiles, personBirthday, segmentB);
|
||||
_MappingFromPerson = new(approximateYears, displayDirectoryName, personKey, segmentB);
|
||||
}
|
||||
|
||||
}
|
@ -1,4 +1,3 @@
|
||||
using System.Collections.ObjectModel;
|
||||
using System.Text.Json;
|
||||
using System.Text.Json.Serialization;
|
||||
|
||||
@ -6,8 +5,7 @@ namespace View_by_Distance.Shared.Models;
|
||||
|
||||
public record MappingFromPerson(int? ApproximateYears,
|
||||
string DisplayDirectoryName,
|
||||
ReadOnlyCollection<string> LocationContainersFiles,
|
||||
PersonBirthday PersonBirthday,
|
||||
long PersonKey,
|
||||
string SegmentB)
|
||||
{
|
||||
|
||||
|
@ -6,7 +6,6 @@ public interface IMapping
|
||||
public int? By { get; }
|
||||
public MappingFromFilterPost MappingFromFilterPost { init; get; }
|
||||
public MappingFromFilterPre MappingFromFilterPre { init; get; }
|
||||
public MappingFromItem MappingFromItem { init; get; }
|
||||
public MappingFromLocation? MappingFromLocation { init; get; }
|
||||
public MappingFromPerson? MappingFromPerson { get; }
|
||||
public List<MappingFromPhotoPrism>? MappingFromPhotoPrismCollection { init; get; }
|
||||
|
@ -3,7 +3,7 @@ namespace View_by_Distance.Shared.Models.Properties;
|
||||
public interface ISorting
|
||||
{
|
||||
|
||||
public bool CanReMap { init; get; }
|
||||
public bool? CanReMap { init; get; }
|
||||
public int DaysDelta { init; get; }
|
||||
public int DistancePermyriad { init; get; }
|
||||
public int Id { init; get; }
|
||||
|
@ -3,7 +3,8 @@ namespace View_by_Distance.Shared.Models.Properties;
|
||||
public interface ISortingContainer
|
||||
{
|
||||
|
||||
public Mapping Mapping { init; get; }
|
||||
public Mapping? Question { init; get; }
|
||||
public Sorting Sorting { init; get; }
|
||||
public Mapping Source { init; get; }
|
||||
|
||||
}
|
@ -6,7 +6,7 @@ namespace View_by_Distance.Shared.Models;
|
||||
public record class Sorting : Properties.ISorting
|
||||
{
|
||||
|
||||
public bool CanReMap { init; get; }
|
||||
public bool? CanReMap { init; get; }
|
||||
public int DaysDelta { init; get; }
|
||||
public int DistancePermyriad { init; get; }
|
||||
public int Id { init; get; }
|
||||
@ -14,7 +14,7 @@ public record class Sorting : Properties.ISorting
|
||||
public int WholePercentages { init; get; }
|
||||
|
||||
[JsonConstructor]
|
||||
public Sorting(bool canReMap, int daysDelta, int distancePermyriad, int id, bool older, int wholePercentages)
|
||||
public Sorting(bool? canReMap, int daysDelta, int distancePermyriad, int id, bool older, int wholePercentages)
|
||||
{
|
||||
CanReMap = canReMap;
|
||||
DaysDelta = daysDelta;
|
||||
@ -25,7 +25,7 @@ public record class Sorting : Properties.ISorting
|
||||
}
|
||||
|
||||
public Sorting(Mapping mapping, MappingFromLocation mappingFromLocation) :
|
||||
this(false, 0, 0, mapping.MappingFromItem.Id, false, mappingFromLocation.WholePercentages)
|
||||
this(null, 0, 0, mapping.MappingFromItem.Id, false, mappingFromLocation.WholePercentages)
|
||||
{ }
|
||||
|
||||
public override string ToString()
|
||||
|
@ -5,19 +5,25 @@ namespace View_by_Distance.Shared.Models;
|
||||
public record class SortingContainer : Properties.ISortingContainer
|
||||
{
|
||||
|
||||
public Mapping Mapping { init; get; }
|
||||
public Mapping? Question { init; get; }
|
||||
public Sorting Sorting { init; get; }
|
||||
public Mapping Source { init; get; }
|
||||
|
||||
[JsonConstructor]
|
||||
public SortingContainer(Mapping mapping, Sorting sorting)
|
||||
public SortingContainer(Mapping? question, Sorting sorting, Mapping source)
|
||||
{
|
||||
Mapping = mapping;
|
||||
Question = question;
|
||||
Sorting = sorting;
|
||||
Source = source;
|
||||
}
|
||||
|
||||
public SortingContainer(Sorting sorting, Mapping source) :
|
||||
this(null, sorting, source)
|
||||
{ }
|
||||
|
||||
public override string ToString()
|
||||
{
|
||||
string result = string.Concat(Mapping.MappingFromItem.Id, '\t', Mapping.MappingFromLocation?.WholePercentages, '\t', Sorting.Id, '\t', Sorting.WholePercentages, '\t', Sorting.Older, '\t', '\t', Sorting.DistancePermyriad, '\t', Sorting.DaysDelta);
|
||||
string result = string.Concat(Source.MappingFromItem.Id, '\t', Source.MappingFromLocation?.WholePercentages, '\t', Sorting.Id, '\t', Sorting.WholePercentages, '\t', Sorting.Older, '\t', '\t', Sorting.DistancePermyriad, '\t', Sorting.DaysDelta);
|
||||
return result;
|
||||
}
|
||||
|
||||
|
@ -16,6 +16,9 @@ public interface IPersonBirthday
|
||||
static bool IsCounterPersonBirthday(Models.PersonBirthday personBirthday) =>
|
||||
personBirthday.Value.Year < 1809;
|
||||
|
||||
static bool IsCounterPersonYear(long personKey) =>
|
||||
new DateTime(personKey).Year < 1809;
|
||||
|
||||
static bool IsCounterPersonYear(int year) =>
|
||||
year < 1809;
|
||||
|
||||
|
@ -3,11 +3,11 @@ namespace View_by_Distance.Shared.Models.Stateless.Methods;
|
||||
public interface ISortingContainer
|
||||
{ // ...
|
||||
|
||||
Models.SortingContainer[] TestStatic_Sort(List<Models.SortingContainer> collection) =>
|
||||
List<Models.SortingContainer> TestStatic_Sort(List<Models.SortingContainer> collection) =>
|
||||
Sort(collection);
|
||||
static Models.SortingContainer[] Sort(List<Models.SortingContainer> collection) =>
|
||||
(from l in collection orderby l.Sorting.DistancePermyriad select l).ToArray();
|
||||
static Models.SortingContainer[] SortUsingDaysDelta(List<Models.SortingContainer> collection) =>
|
||||
(from l in collection orderby l.Sorting.DistancePermyriad, l.Sorting.DaysDelta select l).ToArray();
|
||||
static List<Models.SortingContainer> Sort(List<Models.SortingContainer> collection) =>
|
||||
(from l in collection orderby l.Sorting.DistancePermyriad select l).ToList();
|
||||
static List<Models.SortingContainer> SortUsingDaysDelta(List<Models.SortingContainer> collection) =>
|
||||
(from l in collection orderby l.Sorting.DistancePermyriad, l.Sorting.DaysDelta select l).ToList();
|
||||
|
||||
}
|
@ -15,8 +15,8 @@ internal abstract class Sorting
|
||||
TimeSpan timeSpan = new(faceDistanceLength.DateTimeOriginalThenMinimumDateTime.Ticks - faceDistanceEncoding.DateTimeOriginalThenMinimumDateTime.Ticks);
|
||||
bool older = timeSpan.TotalMilliseconds < 0;
|
||||
int daysDelta = (int)Math.Round(Math.Abs(timeSpan.TotalDays), 0);
|
||||
bool? canReMap = faceDistanceLength.MappingFromFilterPost?.CanReMap;
|
||||
int distancePermyriad = (int)(faceDistanceLength.Length.Value * faceDistancePermyriad);
|
||||
bool canReMap = faceDistanceLength.MappingFromFilterPost?.CanReMap is not null && faceDistanceLength.MappingFromFilterPost.CanReMap.Value;
|
||||
result = new(canReMap, daysDelta, distancePermyriad, faceDistanceLength.Id.Value, older, faceDistanceLength.WholePercentages.Value);
|
||||
return result;
|
||||
}
|
||||
|
Reference in New Issue
Block a user