-
Notifications
You must be signed in to change notification settings - Fork 809
Expand file tree
/
Copy pathSerializableUpdatesOptions.cs
More file actions
39 lines (33 loc) · 1.25 KB
/
SerializableUpdatesOptions.cs
File metadata and controls
39 lines (33 loc) · 1.25 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
using System.Text.Json.Nodes;
using UniGetUI.Core.Data;
using UniGetUI.PackageEngine.Serializable;
namespace UniGetUI.PackageEngine.Classes.Serializable
{
public class SerializableUpdatesOptions: SerializableComponent<SerializableUpdatesOptions>
{
public bool UpdatesIgnored { get; set; }
public string IgnoredVersion { get; set; } = "";
public override SerializableUpdatesOptions Copy()
{
return new() { UpdatesIgnored = this.UpdatesIgnored, IgnoredVersion = this.IgnoredVersion };
}
public override void LoadFromJson(JsonNode data)
{
this.UpdatesIgnored = data[nameof(UpdatesIgnored)]?.GetVal<bool>() ?? false;
this.IgnoredVersion = data[nameof(IgnoredVersion)]?.GetVal<string>() ?? "";
}
public override JsonNode AsJsonNode()
{
JsonObject obj = new();
if(UpdatesIgnored is not false) obj.Add(nameof(UpdatesIgnored), UpdatesIgnored);
if(IgnoredVersion.Any()) obj.Add(nameof(IgnoredVersion), IgnoredVersion);
return obj;
}
public SerializableUpdatesOptions() : base()
{
}
public SerializableUpdatesOptions(JsonNode data) : base(data)
{
}
}
}