using System.Text.Json; using System.Text.Json.Serialization; namespace View_by_Distance.Shared.Models; public record SaveContainer(string CheckFile, string Directory, FileHolder? FaceFileHolder, FileHolder? HiddenFaceFileHolder, FileHolder? FacePartsFileHolder, bool MakeAllHidden, FileHolder? ResizedFileHolder, string ShortcutFile) { public static SaveContainer Get(string directory) => new(string.Empty, directory, null, null, null, false, null, string.Empty); public static SaveContainer Get(string directory, string locationContainersFile) => new(string.Empty, directory, null, null, null, false, FileHolder.Get(locationContainersFile), Path.Combine(directory, $"{Path.GetFileName(locationContainersFile)}.lnk")); public static SaveContainer Get(string directory, FileHolder? faceFileHolder, FileHolder? resizedFileHolder, string shortcutFile) => new(string.Empty, directory, faceFileHolder, null, null, true, resizedFileHolder, shortcutFile); public static SaveContainer Get(string checkFile, string directory, FileHolder faceFileHolder) => new(checkFile, directory, faceFileHolder, null, null, false, null, string.Empty); public static SaveContainer Get(FileHolder resizedFileHolder, string checkFile, string directory) => new(checkFile, directory, null, null, null, false, resizedFileHolder, string.Empty); public static SaveContainer Get(string checkFile, string directory, FileHolder? faceFileHolder, FileHolder? hiddenFaceFileHolder, FileHolder? facePartsFileHolder, FileHolder? resizedFileHolder, string shortcutFile) => new(checkFile, directory, faceFileHolder, hiddenFaceFileHolder, facePartsFileHolder, false, resizedFileHolder, shortcutFile); public override string ToString() { string result = JsonSerializer.Serialize(this, ResultSettingsSourceGenerationContext.Default.ResultSettings); return result; } } [JsonSourceGenerationOptions(WriteIndented = true)] [JsonSerializable(typeof(SaveContainer))] internal partial class SaveContainerSourceGenerationContext : JsonSerializerContext { }