using System.Text.Json; using System.Text.Json.Serialization; namespace View_by_Distance.Shared.Models; public class MappingContainer : Properties.IMappingContainer { protected double? _Distance; protected readonly Face? _Face; protected readonly int _Id; protected readonly bool? _IsWrongYear; protected readonly string _Key; protected readonly Mapping _Mapping; protected readonly DateTime _MinimumDateTime; public double? Distance => _Distance; public Face? Face => _Face; public int Id => _Id; public bool? IsWrongYear => _IsWrongYear; public string Key => _Key; public Mapping Mapping => _Mapping; public DateTime MinimumDateTime => _MinimumDateTime; [JsonConstructor] public MappingContainer(double? distance, Face? face, int id, bool? isWrongYear, string key, Mapping mapping, DateTime minimumDateTime) { _Distance = distance; _Face = face; _Id = id; _IsWrongYear = isWrongYear; _Key = key; _Mapping = mapping; _MinimumDateTime = minimumDateTime; } public MappingContainer(Face face, int id, bool? isWrongYear, string key, Mapping mapping, DateTime minimumDateTime) : this(null, face, id, isWrongYear, key, mapping, minimumDateTime) { } public override string ToString() { string result = JsonSerializer.Serialize(this, new JsonSerializerOptions() { WriteIndented = true }); return result; } public void SetDistance(double v) => _Distance = v; }