47 lines
1.8 KiB
C#
47 lines
1.8 KiB
C#
using System.Text.Json;
|
|
using System.Text.Json.Serialization;
|
|
|
|
namespace View_by_Distance.Shared.Models;
|
|
|
|
public class Closest : Properties.IClosest
|
|
{
|
|
|
|
protected readonly double? _Average;
|
|
protected readonly int? _NormalizedPixelPercentage;
|
|
protected readonly bool? _IsWrongYear;
|
|
protected readonly double? _Minimum;
|
|
protected readonly DateTime _MinimumDateTime;
|
|
protected readonly PersonBirthday? _PersonBirthday;
|
|
public double? Average => _Average;
|
|
public int? NormalizedPixelPercentage => _NormalizedPixelPercentage;
|
|
public bool? IsWrongYear => _IsWrongYear;
|
|
public double? Minimum => _Minimum;
|
|
public DateTime MinimumDateTime => _MinimumDateTime;
|
|
public PersonBirthday? PersonBirthday => _PersonBirthday;
|
|
|
|
[JsonConstructor]
|
|
public Closest(double? average, int? normalizedPixelPercentage, bool? isWrongYear, double? minimum, DateTime minimumDateTime, PersonBirthday? personBirthday)
|
|
{
|
|
_Average = average;
|
|
_NormalizedPixelPercentage = normalizedPixelPercentage;
|
|
_IsWrongYear = isWrongYear;
|
|
_Minimum = minimum;
|
|
_MinimumDateTime = minimumDateTime;
|
|
_PersonBirthday = personBirthday;
|
|
}
|
|
|
|
public Closest(int? normalizedPixelPercentage, DateTime minimumDateTime, bool? isWrongYear) :
|
|
this(null, normalizedPixelPercentage, isWrongYear, null, minimumDateTime, null)
|
|
{ }
|
|
|
|
public Closest(int? normalizedPixelPercentage, DateTime minimumDateTime, bool? isWrongYear, PersonBirthday? personBirthday, List<double> faceDistances) :
|
|
this(faceDistances.Average(), normalizedPixelPercentage, isWrongYear, faceDistances.Min(), minimumDateTime, personBirthday)
|
|
{ }
|
|
|
|
public override string ToString()
|
|
{
|
|
string result = JsonSerializer.Serialize(this, new JsonSerializerOptions() { WriteIndented = true });
|
|
return result;
|
|
}
|
|
|
|
} |