using System.Text.Json; using System.Text.Json.Serialization; namespace View_by_Distance.Not.Copy.Copy.Models; public class Configuration { protected string _CompareSource; protected string _EmptyDestination; protected Property.Models.Configuration? _PropertyConfiguration; protected string _SelectedSource; public string CompareSource => _CompareSource; public string EmptyDestination => _EmptyDestination; public Property.Models.Configuration? PropertyConfiguration => _PropertyConfiguration; public string SelectedSource => _SelectedSource; [JsonConstructor] public Configuration(string compareSource, string emptyDestination, Property.Models.Configuration? propertyConfiguration, string selectedSource) { _CompareSource = compareSource; _EmptyDestination = emptyDestination; _PropertyConfiguration = propertyConfiguration; _SelectedSource = selectedSource; } public override string ToString() { string result = JsonSerializer.Serialize(this, new JsonSerializerOptions() { WriteIndented = true }); return result; } public void Set(Property.Models.Configuration propertyConfiguration) => _PropertyConfiguration = propertyConfiguration; public void Update() { _PropertyConfiguration?.Update(); _CompareSource = Path.GetFullPath(_CompareSource); _SelectedSource = Path.GetFullPath(_SelectedSource); _EmptyDestination = Path.GetFullPath(_EmptyDestination); } }