using System.Text.Json; using System.Text.Json.Serialization; namespace View_by_Distance.Shared.Models; public class SaveContainer { protected readonly string _CheckFile; protected readonly string _Directory; protected readonly FileHolder? _FaceFileHolder; protected readonly FileHolder? _HiddenFaceFileHolder; protected readonly string _Json; protected readonly FileHolder? _FacePartsFileHolder; protected readonly FileHolder? _ResizedFileHolder; protected readonly string _ShortcutFile; public string CheckFile => _CheckFile; public string Directory => _Directory; public FileHolder? FaceFileHolder => _FaceFileHolder; public FileHolder? HiddenFaceFileHolder => _HiddenFaceFileHolder; public string Json => _Json; public FileHolder? FacePartsFileHolder => _FacePartsFileHolder; public FileHolder? ResizedFileHolder => _ResizedFileHolder; public string ShortcutFile => _ShortcutFile; [JsonConstructor] public SaveContainer(string checkFile, string directory, FileHolder? faceFileHolder, FileHolder? hiddenFaceFileHolder, string json, FileHolder? facePartsFileHolder, FileHolder? resizedFileHolder, string shortcutFile) { _CheckFile = checkFile; _Directory = directory; _FaceFileHolder = faceFileHolder; _HiddenFaceFileHolder = hiddenFaceFileHolder; _Json = json; _FacePartsFileHolder = facePartsFileHolder; _ResizedFileHolder = resizedFileHolder; _ShortcutFile = shortcutFile; } public SaveContainer(string directory) : this(string.Empty, directory, null, null, string.Empty, null, null, string.Empty) { } public SaveContainer(string checkFile, string directory, string json) : this(checkFile, directory, null, null, json, null, null, string.Empty) { } public override string ToString() { string result = JsonSerializer.Serialize(this, new JsonSerializerOptions() { WriteIndented = true }); return result; } }