Make items XML serializable

This commit is contained in:
Matt Nadareski
2020-09-07 22:00:02 -07:00
parent d70415b989
commit 60818dba00
39 changed files with 523 additions and 94 deletions

View File

@@ -1,6 +1,7 @@
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Xml.Serialization;
using SabreTools.Library.Filtering;
using SabreTools.Library.Tools;
@@ -12,6 +13,7 @@ namespace SabreTools.Library.DatItems
/// Represents which Configuration(s) is associated with a set
/// </summary>
[JsonObject("configuration")]
[XmlRoot("configuration")]
public class Configuration : DatItem
{
#region Fields
@@ -20,38 +22,53 @@ namespace SabreTools.Library.DatItems
/// Name of the item
/// </summary>
[JsonProperty("name")]
[XmlElement("name")]
public string Name { get; set; }
/// <summary>
/// Tag associated with the configuration
/// </summary>
[JsonProperty("tag", DefaultValueHandling = DefaultValueHandling.Ignore)]
[XmlElement("tag")]
public string Tag { get; set; }
/// <summary>
/// Mask associated with the configuration
/// </summary>
[JsonProperty("mask", DefaultValueHandling = DefaultValueHandling.Ignore)]
[XmlElement("mask")]
public string Mask { get; set; }
/// <summary>
/// Conditions associated with the configuration
/// </summary>
[JsonProperty("conditions", DefaultValueHandling = DefaultValueHandling.Ignore)]
[XmlElement("conditions")]
public List<Condition> Conditions { get; set; }
[JsonIgnore]
public bool ConditionsSpecified { get { return Conditions != null && Conditions.Count > 0; } }
/// <summary>
/// Locations associated with the configuration
/// </summary>
[JsonProperty("locations", DefaultValueHandling = DefaultValueHandling.Ignore)]
[XmlElement("locations")]
public List<Location> Locations { get; set; }
[JsonIgnore]
public bool LocationsSpecified { get { return Locations != null && Locations.Count > 0; } }
/// <summary>
/// Settings associated with the configuration
/// </summary>
[JsonProperty("settings", DefaultValueHandling = DefaultValueHandling.Ignore)]
[XmlElement("settings")]
public List<Setting> Settings { get; set; }
[JsonIgnore]
public bool SettingsSpecified { get { return Settings != null && Settings.Count > 0; } }
#endregion
#region Accessors