120 lines
4.2 KiB
C#
120 lines
4.2 KiB
C#
using System.Text.Json;
|
|
using System.Text.Json.Serialization;
|
|
|
|
namespace View_by_Distance.Shared.Models;
|
|
|
|
public class MappingFromItem : Properties.IMappingFromItem
|
|
{
|
|
|
|
public int Id { init; get; }
|
|
public FileHolder ImageFileHolder { init; get; }
|
|
public bool? IsWrongYear { init; get; }
|
|
public DateTime MinimumDateTime { init; get; }
|
|
public string RelativePath { init; get; }
|
|
public FileHolder ResizedFileHolder { init; get; }
|
|
|
|
[JsonConstructor]
|
|
public MappingFromItem(int id, FileHolder imageFileHolder, bool? isWrongYear, DateTime minimumDateTime, string relativePath, FileHolder resizedFileHolder)
|
|
{
|
|
Id = id;
|
|
ImageFileHolder = imageFileHolder;
|
|
IsWrongYear = isWrongYear;
|
|
MinimumDateTime = minimumDateTime;
|
|
RelativePath = relativePath;
|
|
ResizedFileHolder = resizedFileHolder;
|
|
}
|
|
|
|
public override string ToString()
|
|
{
|
|
string result = JsonSerializer.Serialize(this, new JsonSerializerOptions() { WriteIndented = true });
|
|
return result;
|
|
}
|
|
|
|
}
|
|
|
|
public class MappingFromLocation : Properties.IMappingFromLocation
|
|
{
|
|
|
|
public double AreaPermille { init; get; }
|
|
public double Confidence { init; get; }
|
|
public string DeterministicHashCodeKey { init; get; }
|
|
public int NormalizedPixelPercentage { init; get; }
|
|
|
|
[JsonConstructor]
|
|
public MappingFromLocation(int areaPermille, double confidence, string deterministicHashCodeKey, int normalizedPixelPercentage)
|
|
{
|
|
AreaPermille = areaPermille;
|
|
Confidence = confidence;
|
|
DeterministicHashCodeKey = deterministicHashCodeKey;
|
|
NormalizedPixelPercentage = normalizedPixelPercentage;
|
|
}
|
|
|
|
public override string ToString()
|
|
{
|
|
string result = JsonSerializer.Serialize(this, new JsonSerializerOptions() { WriteIndented = true });
|
|
return result;
|
|
}
|
|
|
|
}
|
|
|
|
public class MappingFromPerson : Properties.IMappingFromPerson
|
|
{
|
|
|
|
public int? ApproximateYears { init; get; }
|
|
public int? By { init; get; }
|
|
public string DisplayDirectoryName { init; get; }
|
|
public PersonBirthday? PersonBirthday { init; get; }
|
|
public string SegmentB { init; get; }
|
|
|
|
[JsonConstructor]
|
|
public MappingFromPerson(int? approximateYears, int? by, string displayDirectoryName, PersonBirthday? personBirthday, string segmentB)
|
|
{
|
|
ApproximateYears = approximateYears;
|
|
By = by;
|
|
DisplayDirectoryName = displayDirectoryName;
|
|
PersonBirthday = personBirthday;
|
|
SegmentB = segmentB;
|
|
}
|
|
|
|
public override string ToString()
|
|
{
|
|
string result = JsonSerializer.Serialize(this, new JsonSerializerOptions() { WriteIndented = true });
|
|
return result;
|
|
}
|
|
|
|
}
|
|
|
|
public class Mapping : Properties.IMapping
|
|
{
|
|
|
|
protected MappingFromPerson _MappingFromPerson;
|
|
protected SortingContainer? _SortingContainer;
|
|
public MappingFromItem MappingFromItem { init; get; }
|
|
public MappingFromLocation MappingFromLocation { init; get; }
|
|
public MappingFromPerson MappingFromPerson => _MappingFromPerson;
|
|
public SortingContainer? SortingContainer => _SortingContainer;
|
|
|
|
[JsonConstructor]
|
|
public Mapping(MappingFromItem mappingFromItem, MappingFromLocation mappingFromLocation, MappingFromPerson mappingFromPerson, SortingContainer? sortingContainer)
|
|
{
|
|
MappingFromItem = mappingFromItem;
|
|
MappingFromLocation = mappingFromLocation;
|
|
_MappingFromPerson = mappingFromPerson;
|
|
_SortingContainer = sortingContainer;
|
|
}
|
|
|
|
public Mapping(MappingFromItem mappingFromItem, MappingFromLocation mappingFromLocation, MappingFromPerson mappingFromPerson) :
|
|
this(mappingFromItem, mappingFromLocation, mappingFromPerson, null)
|
|
{ }
|
|
|
|
public override string ToString()
|
|
{
|
|
string result = JsonSerializer.Serialize(this, new JsonSerializerOptions() { WriteIndented = true });
|
|
return result;
|
|
}
|
|
|
|
public void UpdateMappingFromPerson(int? approximateYears, int? by, string displayDirectoryName, PersonBirthday personBirthday, string segmentB) => _MappingFromPerson = new(approximateYears, by, displayDirectoryName, personBirthday, segmentB);
|
|
|
|
public void SetSortingContainer(SortingContainer sortingContainer) => _SortingContainer = sortingContainer;
|
|
|
|
} |