using System.Text.Json; using System.Text.Json.Serialization; namespace View_by_Distance.Shared.Models; public class Mapping : Properties.IMapping { protected readonly int? _ApproximateYears; protected readonly string _DisplayDirectoryName; protected bool? _Filtered; protected readonly int? _NormalizedPixelPercentage; protected PersonBirthday _PersonBirthday; public int? ApproximateYears => _ApproximateYears; public string DisplayDirectoryName => _DisplayDirectoryName; public bool? Filtered => _Filtered; public int? NormalizedPixelPercentage => _NormalizedPixelPercentage; public PersonBirthday PersonBirthday => _PersonBirthday; [JsonConstructor] public Mapping(int? approximateYears, string displayDirectoryName, bool? filtered, int? normalizedPixelPercentage, PersonBirthday personBirthday) { _ApproximateYears = approximateYears; _DisplayDirectoryName = displayDirectoryName; _Filtered = filtered; _NormalizedPixelPercentage = normalizedPixelPercentage; _PersonBirthday = personBirthday; } public Mapping(int? approximateYears, string displayDirectoryName, int? normalizedPixelPercentage, PersonBirthday personBirthday) : this(approximateYears, displayDirectoryName, null, normalizedPixelPercentage, personBirthday) { } public Mapping(int? approximateYears, string displayDirectoryName, PersonBirthday personBirthday) : this(approximateYears, displayDirectoryName, null, null, personBirthday) { } public override string ToString() { string result = JsonSerializer.Serialize(this, new JsonSerializerOptions() { WriteIndented = true }); return result; } public void SetFiltered() => _Filtered = true; public void SetFiltered(bool value) => _Filtered = value; public void SetPersonBirthday(PersonBirthday personBirthday) => _PersonBirthday = personBirthday; }