45 lines
2.3 KiB
C#
45 lines
2.3 KiB
C#
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
|
|
{
|
|
} |