mirror of
https://github.com/claunia/SabreTools.git
synced 2025-12-16 19:14:27 +00:00
Let's use objects
This commit is contained in:
32
SabreTools.Library/DatFiles/Auxiliary.cs
Normal file
32
SabreTools.Library/DatFiles/Auxiliary.cs
Normal file
@@ -0,0 +1,32 @@
|
||||
/// <summary>
|
||||
/// This holds all of the auxiliary types needed for proper parsing
|
||||
/// </summary>
|
||||
namespace SabreTools.Library.DatFiles
|
||||
{
|
||||
#region DatHeader
|
||||
|
||||
#region OfflineList
|
||||
|
||||
/// <summary>
|
||||
/// Represents one OfflineList infos object
|
||||
/// </summary>
|
||||
public class OfflineListInfo
|
||||
{
|
||||
public string Name { get; set; }
|
||||
public bool? Visible { get; set; }
|
||||
public bool? IsNamingOption { get; set; }
|
||||
public bool? Default { get; set; }
|
||||
|
||||
public OfflineListInfo(string name, bool? visible, bool? isNamingOption, bool? def)
|
||||
{
|
||||
Name = name;
|
||||
Visible = visible;
|
||||
IsNamingOption = isNamingOption;
|
||||
Default = def;
|
||||
}
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
#endregion // DatHeader
|
||||
}
|
||||
@@ -279,7 +279,7 @@ namespace SabreTools.Library.DatFiles
|
||||
/// OfflineList info list
|
||||
/// </summary>
|
||||
[JsonProperty("infos")]
|
||||
public List<Tuple<string, bool?, bool?, bool?>> Infos { get; set; }
|
||||
public List<OfflineListInfo> Infos { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// OfflineList can-open extensions
|
||||
|
||||
@@ -284,7 +284,7 @@ namespace SabreTools.Library.DatFiles
|
||||
break;
|
||||
|
||||
case "infos":
|
||||
Header.Infos = new List<Tuple<string, bool?, bool?, bool?>>();
|
||||
Header.Infos = new List<OfflineListInfo>();
|
||||
jtr.Read(); // Start Array
|
||||
while (!sr.EndOfStream)
|
||||
{
|
||||
@@ -331,8 +331,8 @@ namespace SabreTools.Library.DatFiles
|
||||
jtr.Read(); // End object
|
||||
}
|
||||
|
||||
// Add the new info tuple
|
||||
Header.Infos.Add(new Tuple<string, bool?, bool?, bool?>(
|
||||
// Add the new info object
|
||||
Header.Infos.Add(new OfflineListInfo(
|
||||
nameValue,
|
||||
visibleValue,
|
||||
inNamingOptionValue,
|
||||
@@ -560,7 +560,7 @@ namespace SabreTools.Library.DatFiles
|
||||
|
||||
break;
|
||||
case "infos":
|
||||
machine.Infos = new List<KeyValuePair<string, string>>();
|
||||
machine.Infos = new List<ListXmlInfo>();
|
||||
jtr.Read(); // Start Array
|
||||
while (!sr.EndOfStream)
|
||||
{
|
||||
@@ -573,7 +573,7 @@ namespace SabreTools.Library.DatFiles
|
||||
string value = jtr.ReadAsString();
|
||||
jtr.Read(); // End object
|
||||
|
||||
machine.Infos.Add(new KeyValuePair<string, string>(key, value));
|
||||
machine.Infos.Add(new ListXmlInfo(key, value));
|
||||
}
|
||||
|
||||
break;
|
||||
@@ -630,7 +630,7 @@ namespace SabreTools.Library.DatFiles
|
||||
break;
|
||||
|
||||
case "sharedfeat":
|
||||
machine.SharedFeatures = new List<KeyValuePair<string, string>>();
|
||||
machine.SharedFeatures = new List<SoftwareListSharedFeature>();
|
||||
jtr.Read(); // Start Array
|
||||
while (!sr.EndOfStream)
|
||||
{
|
||||
@@ -643,7 +643,7 @@ namespace SabreTools.Library.DatFiles
|
||||
string value = jtr.ReadAsString();
|
||||
jtr.Read(); // End object
|
||||
|
||||
machine.SharedFeatures.Add(new KeyValuePair<string, string>(key, value));
|
||||
machine.SharedFeatures.Add(new SoftwareListSharedFeature(key, value));
|
||||
}
|
||||
|
||||
break;
|
||||
@@ -757,7 +757,7 @@ namespace SabreTools.Library.DatFiles
|
||||
bios = null;
|
||||
ItemStatus? itemStatus = null;
|
||||
ItemType? itemType = null;
|
||||
List<KeyValuePair<string, string>> features = null;
|
||||
List<SoftwareListFeature> features = null;
|
||||
|
||||
jtr.Read();
|
||||
while (!sr.EndOfStream)
|
||||
@@ -876,7 +876,7 @@ namespace SabreTools.Library.DatFiles
|
||||
break;
|
||||
|
||||
case "features":
|
||||
features = new List<KeyValuePair<string, string>>();
|
||||
features = new List<SoftwareListFeature>();
|
||||
jtr.Read(); // Start Array
|
||||
while (!sr.EndOfStream)
|
||||
{
|
||||
@@ -889,7 +889,7 @@ namespace SabreTools.Library.DatFiles
|
||||
string featureValue = jtr.ReadAsString();
|
||||
jtr.Read(); // End object
|
||||
|
||||
features.Add(new KeyValuePair<string, string>(key, featureValue));
|
||||
features.Add(new SoftwareListFeature(key, featureValue));
|
||||
}
|
||||
|
||||
break;
|
||||
@@ -1396,13 +1396,13 @@ namespace SabreTools.Library.DatFiles
|
||||
{
|
||||
jtw.WriteStartObject();
|
||||
jtw.WritePropertyName("name");
|
||||
jtw.WriteValue(info.Item1);
|
||||
jtw.WriteValue(info.Name);
|
||||
jtw.WritePropertyName("visible");
|
||||
jtw.WriteValue(info.Item2.ToString());
|
||||
jtw.WriteValue(info.Visible.ToString());
|
||||
jtw.WritePropertyName("inNamingOption");
|
||||
jtw.WriteValue(info.Item3.ToString());
|
||||
jtw.WriteValue(info.IsNamingOption.ToString());
|
||||
jtw.WritePropertyName("default");
|
||||
jtw.WriteValue(info.Item4.ToString());
|
||||
jtw.WriteValue(info.Default.ToString());
|
||||
jtw.WriteEndObject();
|
||||
}
|
||||
|
||||
@@ -1632,7 +1632,7 @@ namespace SabreTools.Library.DatFiles
|
||||
foreach (var info in datItem.Machine.Infos)
|
||||
{
|
||||
jtw.WriteStartObject();
|
||||
jtw.WritePropertyName(info.Key);
|
||||
jtw.WritePropertyName(info.Name);
|
||||
jtw.WriteValue(info.Value);
|
||||
jtw.WriteEndObject();
|
||||
}
|
||||
@@ -1737,7 +1737,7 @@ namespace SabreTools.Library.DatFiles
|
||||
foreach (var feature in datItem.Machine.SharedFeatures)
|
||||
{
|
||||
jtw.WriteStartObject();
|
||||
jtw.WritePropertyName(feature.Key);
|
||||
jtw.WritePropertyName(feature.Name);
|
||||
jtw.WriteValue(feature.Value);
|
||||
jtw.WriteEndObject();
|
||||
}
|
||||
@@ -2057,7 +2057,7 @@ namespace SabreTools.Library.DatFiles
|
||||
foreach (var feature in datItem.Features)
|
||||
{
|
||||
jtw.WriteStartObject();
|
||||
jtw.WritePropertyName(feature.Key);
|
||||
jtw.WritePropertyName(feature.Name);
|
||||
jtw.WriteValue(feature.Value);
|
||||
jtw.WriteEndObject();
|
||||
}
|
||||
|
||||
@@ -750,10 +750,10 @@ namespace SabreTools.Library.DatFiles
|
||||
|
||||
if (!Header.ExcludeFields.Contains(Field.Infos) && datItem.Machine.Infos != null && datItem.Machine.Infos.Count > 0)
|
||||
{
|
||||
foreach (KeyValuePair<string, string> kvp in datItem.Machine.Infos)
|
||||
foreach (ListXmlInfo kvp in datItem.Machine.Infos)
|
||||
{
|
||||
xtw.WriteStartElement("info");
|
||||
xtw.WriteAttributeString("name", kvp.Key);
|
||||
xtw.WriteAttributeString("name", kvp.Name);
|
||||
xtw.WriteAttributeString("value", kvp.Value);
|
||||
xtw.WriteEndElement();
|
||||
}
|
||||
|
||||
@@ -208,7 +208,7 @@ namespace SabreTools.Library.DatFiles
|
||||
return;
|
||||
|
||||
// Setup the infos object
|
||||
Header.Infos = new List<Tuple<string, bool?, bool?, bool?>>();
|
||||
Header.Infos = new List<OfflineListInfo>();
|
||||
|
||||
// Otherwise, add what is possible
|
||||
reader.MoveToContent();
|
||||
@@ -223,8 +223,8 @@ namespace SabreTools.Library.DatFiles
|
||||
continue;
|
||||
}
|
||||
|
||||
// Add all tuples to the info list
|
||||
Header.Infos.Add(new Tuple<string, bool?, bool?, bool?>(
|
||||
// Add all infos to the info list
|
||||
Header.Infos.Add(new OfflineListInfo(
|
||||
reader.Name.ToLowerInvariant(),
|
||||
reader.GetAttribute("visible").AsYesNo(),
|
||||
reader.GetAttribute("inNamingOption").AsYesNo(),
|
||||
@@ -771,10 +771,10 @@ namespace SabreTools.Library.DatFiles
|
||||
|
||||
foreach (var info in Header.Infos)
|
||||
{
|
||||
xtw.WriteStartElement(info.Item1);
|
||||
xtw.WriteAttributeString("visible", info.Item2.ToString());
|
||||
xtw.WriteAttributeString("inNamingOption", info.Item3.ToString());
|
||||
xtw.WriteAttributeString("default", info.Item4.ToString());
|
||||
xtw.WriteStartElement(info.Name);
|
||||
xtw.WriteAttributeString("visible", info.Visible.ToString());
|
||||
xtw.WriteAttributeString("inNamingOption", info.IsNamingOption.ToString());
|
||||
xtw.WriteAttributeString("default", info.Default.ToString());
|
||||
xtw.WriteEndElement();
|
||||
}
|
||||
|
||||
|
||||
@@ -112,7 +112,7 @@ namespace SabreTools.Library.DatFiles
|
||||
long size = -1;
|
||||
ItemType itemType = ItemType.Rom;
|
||||
ItemStatus status = ItemStatus.None;
|
||||
List<KeyValuePair<string, string>> features = null;
|
||||
List<SoftwareListFeature> features = null;
|
||||
|
||||
// Now we loop through and get values for everything
|
||||
for (int i = 0; i < svr.HeaderValues.Count; i++)
|
||||
@@ -395,12 +395,12 @@ namespace SabreTools.Library.DatFiles
|
||||
break;
|
||||
|
||||
case "Machine.Infos":
|
||||
machine.Infos = new List<KeyValuePair<string, string>>();
|
||||
machine.Infos = new List<ListXmlInfo>();
|
||||
var infos = value.Split(';');
|
||||
foreach (var info in infos)
|
||||
{
|
||||
var infoPair = info.Split('=');
|
||||
machine.Infos.Add(new KeyValuePair<string, string>(infoPair[0], infoPair[1]));
|
||||
machine.Infos.Add(new ListXmlInfo(infoPair[0], infoPair[1]));
|
||||
}
|
||||
|
||||
break;
|
||||
@@ -466,12 +466,12 @@ namespace SabreTools.Library.DatFiles
|
||||
break;
|
||||
|
||||
case "Machine.SharedFeatures":
|
||||
machine.SharedFeatures = new List<KeyValuePair<string, string>>();
|
||||
machine.SharedFeatures = new List<SoftwareListSharedFeature>();
|
||||
var sharedFeatures = value.Split(';');
|
||||
foreach (var sharedFeature in sharedFeatures)
|
||||
{
|
||||
var featurePair = sharedFeature.Split('=');
|
||||
machine.SharedFeatures.Add(new KeyValuePair<string, string>(featurePair[0], featurePair[1]));
|
||||
machine.SharedFeatures.Add(new SoftwareListSharedFeature(featurePair[0], featurePair[1]));
|
||||
}
|
||||
|
||||
break;
|
||||
@@ -517,12 +517,12 @@ namespace SabreTools.Library.DatFiles
|
||||
break;
|
||||
|
||||
case "DatItem.Features":
|
||||
features = new List<KeyValuePair<string, string>>();
|
||||
features = new List<SoftwareListFeature>();
|
||||
var splitFeatures = value.Split(';');
|
||||
foreach (var splitFeature in splitFeatures)
|
||||
{
|
||||
var featurePair = splitFeature.Split('=');
|
||||
features.Add(new KeyValuePair<string, string>(featurePair[0], featurePair[1]));
|
||||
features.Add(new SoftwareListFeature(featurePair[0], featurePair[1]));
|
||||
}
|
||||
|
||||
break;
|
||||
|
||||
@@ -145,8 +145,8 @@ namespace SabreTools.Library.DatFiles
|
||||
Supported = reader.GetAttribute("supported").AsYesNo(), // (yes|partial|no) "yes"
|
||||
|
||||
CloneOf = reader.GetAttribute("cloneof") ?? string.Empty,
|
||||
Infos = new List<KeyValuePair<string, string>>(),
|
||||
SharedFeatures = new List<KeyValuePair<string, string>>(),
|
||||
Infos = new List<ListXmlInfo>(),
|
||||
SharedFeatures = new List<SoftwareListSharedFeature>(),
|
||||
|
||||
MachineType = (machineType == MachineType.NULL ? MachineType.None : machineType),
|
||||
};
|
||||
@@ -180,12 +180,12 @@ namespace SabreTools.Library.DatFiles
|
||||
break;
|
||||
|
||||
case "info":
|
||||
machine.Infos.Add(new KeyValuePair<string, string>(reader.GetAttribute("name"), reader.GetAttribute("value")));
|
||||
machine.Infos.Add(new ListXmlInfo(reader.GetAttribute("name"), reader.GetAttribute("value")));
|
||||
reader.Read();
|
||||
break;
|
||||
|
||||
case "sharedfeat":
|
||||
machine.SharedFeatures.Add(new KeyValuePair<string, string>(reader.GetAttribute("name"), reader.GetAttribute("value")));
|
||||
machine.SharedFeatures.Add(new SoftwareListSharedFeature(reader.GetAttribute("name"), reader.GetAttribute("value")));
|
||||
reader.Read();
|
||||
break;
|
||||
|
||||
@@ -246,7 +246,7 @@ namespace SabreTools.Library.DatFiles
|
||||
areaWidth,
|
||||
areaEndinaness;
|
||||
long? areasize = null;
|
||||
var features = new List<KeyValuePair<string, string>>();
|
||||
var features = new List<SoftwareListFeature>();
|
||||
bool containsItems = false;
|
||||
|
||||
while (!reader.EOF)
|
||||
@@ -258,7 +258,7 @@ namespace SabreTools.Library.DatFiles
|
||||
{
|
||||
partname = string.Empty;
|
||||
partinterface = string.Empty;
|
||||
features = new List<KeyValuePair<string, string>>();
|
||||
features = new List<SoftwareListFeature>();
|
||||
}
|
||||
|
||||
if (reader.NodeType == XmlNodeType.EndElement && (reader.Name == "dataarea" || reader.Name == "diskarea"))
|
||||
@@ -278,7 +278,7 @@ namespace SabreTools.Library.DatFiles
|
||||
break;
|
||||
|
||||
case "feature":
|
||||
features.Add(new KeyValuePair<string, string>(reader.GetAttribute("name"), reader.GetAttribute("value")));
|
||||
features.Add(new SoftwareListFeature(reader.GetAttribute("name"), reader.GetAttribute("value")));
|
||||
reader.Read();
|
||||
break;
|
||||
|
||||
@@ -373,7 +373,7 @@ namespace SabreTools.Library.DatFiles
|
||||
Machine machine,
|
||||
string partName,
|
||||
string partInterface,
|
||||
List<KeyValuePair<string, string>> features,
|
||||
List<SoftwareListFeature> features,
|
||||
string areaName,
|
||||
long? areaSize,
|
||||
string areaWidth,
|
||||
@@ -489,7 +489,7 @@ namespace SabreTools.Library.DatFiles
|
||||
Machine machine,
|
||||
string partname,
|
||||
string partinterface,
|
||||
List<KeyValuePair<string, string>> features,
|
||||
List<SoftwareListFeature> features,
|
||||
string areaname,
|
||||
long? areasize,
|
||||
|
||||
@@ -765,10 +765,10 @@ namespace SabreTools.Library.DatFiles
|
||||
|
||||
if (!Header.ExcludeFields.Contains(Field.Infos) && datItem.Machine.Infos != null && datItem.Machine.Infos.Count > 0)
|
||||
{
|
||||
foreach (KeyValuePair<string, string> kvp in datItem.Machine.Infos)
|
||||
foreach (ListXmlInfo kvp in datItem.Machine.Infos)
|
||||
{
|
||||
xtw.WriteStartElement("info");
|
||||
xtw.WriteAttributeString("name", kvp.Key);
|
||||
xtw.WriteAttributeString("name", kvp.Name);
|
||||
xtw.WriteAttributeString("value", kvp.Value);
|
||||
xtw.WriteEndElement();
|
||||
}
|
||||
@@ -776,10 +776,10 @@ namespace SabreTools.Library.DatFiles
|
||||
|
||||
if (!Header.ExcludeFields.Contains(Field.SharedFeatures) && datItem.Machine.SharedFeatures != null && datItem.Machine.SharedFeatures.Count > 0)
|
||||
{
|
||||
foreach (KeyValuePair<string, string> kvp in datItem.Machine.SharedFeatures)
|
||||
foreach (SoftwareListSharedFeature kvp in datItem.Machine.SharedFeatures)
|
||||
{
|
||||
xtw.WriteStartElement("sharedfeat");
|
||||
xtw.WriteAttributeString("name", kvp.Key);
|
||||
xtw.WriteAttributeString("name", kvp.Name);
|
||||
xtw.WriteAttributeString("value", kvp.Value);
|
||||
xtw.WriteEndElement();
|
||||
}
|
||||
@@ -844,10 +844,10 @@ namespace SabreTools.Library.DatFiles
|
||||
|
||||
if (!Header.ExcludeFields.Contains(Field.Features) && datItem.Features != null && datItem.Features.Count > 0)
|
||||
{
|
||||
foreach (KeyValuePair<string, string> kvp in datItem.Features)
|
||||
foreach (SoftwareListFeature kvp in datItem.Features)
|
||||
{
|
||||
xtw.WriteStartElement("feature");
|
||||
xtw.WriteAttributeString("name", kvp.Key);
|
||||
xtw.WriteAttributeString("name", kvp.Name);
|
||||
xtw.WriteAttributeString("value", kvp.Value);
|
||||
xtw.WriteEndElement();
|
||||
}
|
||||
|
||||
70
SabreTools.Library/DatItems/Auxiliary.cs
Normal file
70
SabreTools.Library/DatItems/Auxiliary.cs
Normal file
@@ -0,0 +1,70 @@
|
||||
/// <summary>
|
||||
/// This holds all of the auxiliary types needed for proper parsing
|
||||
/// </summary>
|
||||
namespace SabreTools.Library.DatItems
|
||||
{
|
||||
#region Machine
|
||||
|
||||
#region ListXML
|
||||
|
||||
/// <summary>
|
||||
/// Represents one ListXML info object
|
||||
/// </summary>
|
||||
public class ListXmlInfo
|
||||
{
|
||||
public string Name { get; set; }
|
||||
public string Value { get; set; }
|
||||
|
||||
public ListXmlInfo(string name, string value)
|
||||
{
|
||||
Name = name;
|
||||
Value = value;
|
||||
}
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
#region SoftwareList
|
||||
|
||||
/// <summary>
|
||||
/// Represents one SoftwareList shared feature object
|
||||
/// </summary>
|
||||
public class SoftwareListSharedFeature
|
||||
{
|
||||
public string Name { get; set; }
|
||||
public string Value { get; set; }
|
||||
|
||||
public SoftwareListSharedFeature(string name, string value)
|
||||
{
|
||||
Name = name;
|
||||
Value = value;
|
||||
}
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
#endregion // Machine
|
||||
|
||||
#region DatItem
|
||||
|
||||
#region SoftwareList
|
||||
|
||||
/// <summary>
|
||||
/// Represents one SoftwareList feature object
|
||||
/// </summary>
|
||||
public class SoftwareListFeature
|
||||
{
|
||||
public string Name { get; set; }
|
||||
public string Value { get; set; }
|
||||
|
||||
public SoftwareListFeature(string name, string value)
|
||||
{
|
||||
Name = name;
|
||||
Value = value;
|
||||
}
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
#endregion //DatItem
|
||||
}
|
||||
@@ -87,7 +87,7 @@ namespace SabreTools.Library.DatItems
|
||||
/// Features provided to/by the item
|
||||
/// </summary>
|
||||
[JsonProperty("features")]
|
||||
public List<KeyValuePair<string, string>> Features { get; set; }
|
||||
public List<SoftwareListFeature> Features { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Original hardware part name within an item
|
||||
@@ -296,7 +296,7 @@ namespace SabreTools.Library.DatItems
|
||||
fieldValue = PartInterface;
|
||||
break;
|
||||
case Field.Features:
|
||||
fieldValue = string.Join(";", (Features ?? new List<KeyValuePair<string, string>>()).Select(f => $"{f.Key}={f.Value}"));
|
||||
fieldValue = string.Join(";", (Features ?? new List<SoftwareListFeature>()).Select(f => $"{f.Name}={f.Value}"));
|
||||
break;
|
||||
case Field.AreaName:
|
||||
fieldValue = AreaName;
|
||||
@@ -366,13 +366,13 @@ namespace SabreTools.Library.DatItems
|
||||
if (mappings.Keys.Contains(Field.Features))
|
||||
{
|
||||
if (Features == null)
|
||||
Features = new List<KeyValuePair<string, string>>();
|
||||
Features = new List<SoftwareListFeature>();
|
||||
|
||||
string[] pairs = mappings[Field.Features].Split(';');
|
||||
foreach (string pair in pairs)
|
||||
{
|
||||
string[] split = pair.Split('=');
|
||||
Features.Add(new KeyValuePair<string, string>(split[0], split[1]));
|
||||
Features.Add(new SoftwareListFeature(split[0], split[1]));
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -167,7 +167,7 @@ namespace SabreTools.Library.DatItems
|
||||
/// </summary>
|
||||
/// <remarks>Also in SoftwareList</remarks>
|
||||
[JsonProperty("infos")]
|
||||
public List<KeyValuePair<string, string>> Infos { get; set; } = null;
|
||||
public List<ListXmlInfo> Infos { get; set; } = null;
|
||||
|
||||
#endregion
|
||||
|
||||
@@ -259,7 +259,7 @@ namespace SabreTools.Library.DatItems
|
||||
/// </summary>
|
||||
/// <remarks>Also in SoftwareList</remarks>
|
||||
[JsonProperty("sharedfeat")]
|
||||
public List<KeyValuePair<string, string>> SharedFeatures { get; set; } = null;
|
||||
public List<SoftwareListSharedFeature> SharedFeatures { get; set; } = null;
|
||||
|
||||
#endregion
|
||||
|
||||
@@ -358,7 +358,7 @@ namespace SabreTools.Library.DatItems
|
||||
fieldValue = string.Join(";", SlotOptions ?? new List<string>());
|
||||
break;
|
||||
case Field.Infos:
|
||||
fieldValue = string.Join(";", (Infos ?? new List<KeyValuePair<string, string>>()).Select(i => $"{i.Key}={i.Value}"));
|
||||
fieldValue = string.Join(";", (Infos ?? new List<ListXmlInfo>()).Select(i => $"{i.Name}={i.Value}"));
|
||||
break;
|
||||
|
||||
#endregion
|
||||
@@ -412,7 +412,7 @@ namespace SabreTools.Library.DatItems
|
||||
fieldValue = Supported?.ToString();
|
||||
break;
|
||||
case Field.SharedFeatures:
|
||||
fieldValue = string.Join(";", (SharedFeatures ?? new List<KeyValuePair<string, string>>()).Select(i => $"{i.Key}={i.Value}"));
|
||||
fieldValue = string.Join(";", (SharedFeatures ?? new List<SoftwareListSharedFeature>()).Select(i => $"{i.Name}={i.Value}"));
|
||||
break;
|
||||
|
||||
#endregion
|
||||
@@ -525,13 +525,13 @@ namespace SabreTools.Library.DatItems
|
||||
if (mappings.Keys.Contains(Field.Infos))
|
||||
{
|
||||
if (Infos == null)
|
||||
Infos = new List<KeyValuePair<string, string>>();
|
||||
Infos = new List<ListXmlInfo>();
|
||||
|
||||
string[] pairs = mappings[Field.Infos].Split(';');
|
||||
foreach (string pair in pairs)
|
||||
{
|
||||
string[] split = pair.Split('=');
|
||||
Infos.Add(new KeyValuePair<string, string>(split[0], split[1]));
|
||||
Infos.Add(new ListXmlInfo(split[0], split[1]));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -586,13 +586,13 @@ namespace SabreTools.Library.DatItems
|
||||
if (mappings.Keys.Contains(Field.SharedFeatures))
|
||||
{
|
||||
if (SharedFeatures == null)
|
||||
SharedFeatures = new List<KeyValuePair<string, string>>();
|
||||
SharedFeatures = new List<SoftwareListSharedFeature>();
|
||||
|
||||
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]));
|
||||
SharedFeatures.Add(new SoftwareListSharedFeature(split[0], split[1]));
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -133,7 +133,7 @@ namespace SabreTools.Library.Filtering
|
||||
/// </summary>
|
||||
public FilterItem<string> SlotOptions { get; private set; } = new FilterItem<string>();
|
||||
|
||||
// TODO: Machine.Infos - List<KeyValuePair<string, string>>
|
||||
// TODO: Machine.Infos - List<ListXmlInfo>
|
||||
|
||||
/// <summary>
|
||||
/// Include or exclude machine types
|
||||
@@ -212,7 +212,7 @@ namespace SabreTools.Library.Filtering
|
||||
/// </summary>
|
||||
public FilterItem<bool?> Supported { get; private set; } = new FilterItem<bool?>() { Neutral = null };
|
||||
|
||||
// TODO: Machine.SharedFeatures - List<KeyValuePair<string, string>>
|
||||
// TODO: Machine.SharedFeatures - List<SoftwareListSharedFeature>
|
||||
|
||||
#endregion
|
||||
|
||||
@@ -260,7 +260,7 @@ namespace SabreTools.Library.Filtering
|
||||
/// </summary>
|
||||
public FilterItem<string> PartInterface { get; private set; } = new FilterItem<string>();
|
||||
|
||||
// TODO: DatItem.Features - List<KeyValuePair<string, string>>
|
||||
// TODO: DatItem.Features - List<SoftwareListFeature>
|
||||
|
||||
/// <summary>
|
||||
/// Include or exclude area names
|
||||
|
||||
Reference in New Issue
Block a user