61 lines
2.7 KiB
C#

using System.Text.Json;
using System.Text.Json.Serialization;
namespace View_by_Distance.Shared.Models;
public class SaveContainer
{
public string CheckFile { init; get; }
public string Directory { init; get; }
public FileHolder? FaceFileHolder { init; get; }
public FileHolder? HiddenFaceFileHolder { init; get; }
public FileHolder? FacePartsFileHolder { init; get; }
public bool MakeAllHidden { init; get; }
public FileHolder? ResizedFileHolder { init; get; }
public string ShortcutFile { init; get; }
[JsonConstructor]
public SaveContainer(string checkFile, string directory, FileHolder? faceFileHolder, FileHolder? hiddenFaceFileHolder, FileHolder? facePartsFileHolder, bool makeAllHidden, FileHolder? resizedFileHolder, string shortcutFile)
{
CheckFile = checkFile;
Directory = directory;
FaceFileHolder = faceFileHolder;
HiddenFaceFileHolder = hiddenFaceFileHolder;
FacePartsFileHolder = facePartsFileHolder;
MakeAllHidden = makeAllHidden;
ResizedFileHolder = resizedFileHolder;
ShortcutFile = shortcutFile;
}
public SaveContainer(string directory) :
this(string.Empty, directory, null, null, null, false, null, string.Empty)
{ }
public SaveContainer(string directory, string locationContainersFile) :
this(string.Empty, directory, null, null, null, false, Stateless.Methods.IFileHolder.Get(locationContainersFile), Path.Combine(directory, $"{Path.GetFileName(locationContainersFile)}.lnk"))
{ }
public SaveContainer(string directory, FileHolder? faceFileHolder, FileHolder? resizedFileHolder, string shortcutFile) :
this(string.Empty, directory, faceFileHolder, null, null, true, resizedFileHolder, shortcutFile)
{ }
public SaveContainer(string checkFile, string directory, FileHolder faceFileHolder) :
this(checkFile, directory, faceFileHolder, null, null, false, null, string.Empty)
{ }
public SaveContainer(FileHolder resizedFileHolder, string checkFile, string directory) :
this(checkFile, directory, null, null, null, false, resizedFileHolder, string.Empty)
{ }
public SaveContainer(string checkFile, string directory, FileHolder? faceFileHolder, FileHolder? hiddenFaceFileHolder, FileHolder? facePartsFileHolder, FileHolder? resizedFileHolder, string shortcutFile) :
this(checkFile, directory, faceFileHolder, hiddenFaceFileHolder, facePartsFileHolder, false, resizedFileHolder, shortcutFile)
{ }
public override string ToString()
{
string result = JsonSerializer.Serialize(this, new JsonSerializerOptions() { WriteIndented = true });
return result;
}
}