49 lines
2.0 KiB
C#
49 lines
2.0 KiB
C#
using System.Text.Json.Serialization;
|
|
using View_by_Distance.Shared.Models;
|
|
|
|
namespace View_by_Distance.Property.Models;
|
|
|
|
public class Closest
|
|
{
|
|
public const int MaximumPer = 50;
|
|
public const float MaximumMinimum = 0.50f;
|
|
public const bool SkipIsWrongYear = true;
|
|
public const float MinimumMinimum = 0.05f;
|
|
|
|
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 static Closest[] Get(List<Closest> collection) => (from l in collection orderby l.Minimum < MinimumMinimum, l.Average select l).ToArray();
|
|
|
|
} |