Wire up SoftwareList sharedfeat

This commit is contained in:
Matt Nadareski
2020-08-21 13:03:38 -07:00
parent 9eaba8915b
commit 6004bbaad9
8 changed files with 113 additions and 2 deletions

View File

@@ -165,6 +165,7 @@ namespace SabreTools.Library.DatItems
/// <summary>
/// List of info items
/// </summary>
/// <remarks>Also in SoftwareList</remarks>
[JsonProperty("infos")]
public List<KeyValuePair<string, string>> Infos { get; set; } = null;
@@ -253,6 +254,13 @@ namespace SabreTools.Library.DatItems
[JsonProperty("supported")]
public bool? Supported { get; set; } = true;
/// <summary>
/// List of shared feature items
/// </summary>
/// <remarks>Also in SoftwareList</remarks>
[JsonProperty("sharedfeat")]
public List<KeyValuePair<string, string>> SharedFeatures { get; set; } = null;
#endregion
#endregion
@@ -403,6 +411,9 @@ namespace SabreTools.Library.DatItems
case Field.Supported:
fieldValue = Supported?.ToString();
break;
case Field.SharedFeatures:
fieldValue = string.Join(";", (SharedFeatures ?? new List<KeyValuePair<string, string>>()).Select(i => $"{i.Key}={i.Value}"));
break;
#endregion
@@ -572,6 +583,19 @@ namespace SabreTools.Library.DatItems
if (mappings.Keys.Contains(Field.Supported))
Supported = mappings[Field.Supported].AsYesNo();
if (mappings.Keys.Contains(Field.SharedFeatures))
{
if (SharedFeatures == null)
SharedFeatures = new List<KeyValuePair<string, string>>();
string[] pairs = mappings[Field.SharedFeatures].Split(';');
foreach (string pair in pairs)
{
string[] split = pair.Split('=');
SharedFeatures.Add(new KeyValuePair<string, string>(split[0], split[1]));
}
}
#endregion
}
@@ -671,6 +695,7 @@ namespace SabreTools.Library.DatItems
#region SoftwareList
Supported = this.Supported,
SharedFeatures = this.SharedFeatures,
#endregion
};
@@ -1076,6 +1101,9 @@ namespace SabreTools.Library.DatItems
if (fields.Contains(Field.Supported))
Supported = null;
if (fields.Contains(Field.SharedFeatures))
SharedFeatures = null;
#endregion
}
@@ -1221,6 +1249,9 @@ namespace SabreTools.Library.DatItems
if (fields.Contains(Field.Supported))
Supported = machine.Supported;
if (fields.Contains(Field.SharedFeatures))
SharedFeatures = machine.SharedFeatures;
#endregion
}