2022-10-23 22:45:55 -07:00

56 lines
2.3 KiB
C#

using System.Text.Json;
using System.Text.Json.Serialization;
namespace View_by_Distance.Map.Models;
public class Configuration
{
public int FaceConfidencePercent { init; get; }
public int FaceDistancePermyriad { init; get; }
public string FacePartsFileNameExtension { init; get; }
public string FacesFileNameExtension { init; get; }
public string FacesHiddenFileNameExtension { init; get; }
public string MappingDefaultName { init; get; }
public int PersonBirthdayFirstYear { init; get; }
public string PersonBirthdayFormat { init; get; }
public int RangeDaysDeltaTolerance { init; get; }
public double RangeDistanceTolerance { init; get; }
public int SortingMaximumPerKey { init; get; }
public int SortingMinimumToUseSigma { init; get; }
[JsonConstructor]
public Configuration(int faceConfidencePercent,
int faceDistancePermyriad,
string mappingDefaultName,
int personBirthdayFirstYear,
string personBirthdayFormat,
int[] rangeDaysDeltaTolerance,
double[] rangeDistanceTolerance,
int sortingMaximumPerKey,
int sortingMinimumToUseSigma,
string facesFileNameExtension,
string facesHiddenFileNameExtension,
string facePartsFileNameExtension)
{
MappingDefaultName = mappingDefaultName;
PersonBirthdayFormat = personBirthdayFormat;
SortingMaximumPerKey = sortingMaximumPerKey;
FaceConfidencePercent = faceConfidencePercent;
FaceDistancePermyriad = faceDistancePermyriad;
FacesFileNameExtension = facesFileNameExtension;
PersonBirthdayFirstYear = personBirthdayFirstYear;
RangeDistanceTolerance = rangeDistanceTolerance[1];
SortingMinimumToUseSigma = sortingMinimumToUseSigma;
RangeDaysDeltaTolerance = rangeDaysDeltaTolerance[1];
FacePartsFileNameExtension = facePartsFileNameExtension;
FacesHiddenFileNameExtension = facesHiddenFileNameExtension;
}
public override string ToString()
{
string result = JsonSerializer.Serialize(this, new JsonSerializerOptions() { WriteIndented = true });
return result;
}
}