Mike Phares be7a6abbf4 AppSettings and Configuration changes,
major changes to E_Distance and minor for D_Face
2022-08-19 21:37:36 -07:00

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();
}