Fix stats/creation for Configuration

This commit is contained in:
Matt Nadareski
2020-09-01 12:04:35 -07:00
parent ca66e07986
commit 8f5d373cb3
5 changed files with 70 additions and 2 deletions

View File

@@ -101,6 +101,12 @@ namespace SabreTools.Library.DatFiles
[JsonIgnore]
public long ChipCount { get; private set; } = 0;
/// <summary>
/// Number of Configuration items
/// </summary>
[JsonIgnore]
public long ConfigurationCount { get; private set; } = 0;
/// <summary>
/// Number of Device Reference items
/// </summary>
@@ -488,6 +494,9 @@ namespace SabreTools.Library.DatFiles
case ItemType.Chip:
ChipCount++;
break;
case ItemType.Configuration:
ConfigurationCount++;
break;
case ItemType.DeviceReference:
DeviceReferenceCount++;
break;
@@ -629,6 +638,9 @@ namespace SabreTools.Library.DatFiles
case ItemType.Chip:
ChipCount--;
break;
case ItemType.Configuration:
ConfigurationCount--;
break;
case ItemType.DeviceReference:
DeviceReferenceCount--;
break;

View File

@@ -223,6 +223,9 @@ namespace SabreTools.Library.DatFiles
case ItemType.Chip:
datItem = datItemObj.ToObject<Chip>();
break;
case ItemType.Configuration:
datItem = datItemObj.ToObject<Configuration>();
break;
case ItemType.DeviceReference:
datItem = datItemObj.ToObject<DeviceReference>();
break;

View File

@@ -888,6 +888,51 @@ namespace SabreTools.Library.DatFiles
xtw.WriteEndElement();
break;
case ItemType.Configuration:
var configuration = datItem as Configuration;
xtw.WriteStartElement("file");
xtw.WriteAttributeString("type", "configuration");
xtw.WriteOptionalAttributeString("name", configuration.Name);
xtw.WriteOptionalAttributeString("tag", configuration.Tag);
xtw.WriteOptionalAttributeString("mask", configuration.Mask);
if (configuration.Conditions != null)
{
foreach (var condition in configuration.Conditions)
{
xtw.WriteStartElement("condition");
xtw.WriteOptionalAttributeString("tag", condition.Tag);
xtw.WriteOptionalAttributeString("mask", condition.Mask);
xtw.WriteOptionalAttributeString("relation", condition.Relation);
xtw.WriteOptionalAttributeString("value", condition.Value);
xtw.WriteEndElement();
}
}
if (configuration.Locations != null)
{
foreach (var location in configuration.Locations)
{
xtw.WriteStartElement("conflocation");
xtw.WriteOptionalAttributeString("name", location.Name);
xtw.WriteOptionalAttributeString("number", location.Number);
xtw.WriteOptionalAttributeString("inverted", location.Inverted.FromYesNo());
xtw.WriteEndElement();
}
}
if (configuration.Settings != null)
{
foreach (var setting in configuration.Settings)
{
xtw.WriteStartElement("confsetting");
xtw.WriteOptionalAttributeString("name", setting.Name);
xtw.WriteOptionalAttributeString("value", setting.Value);
xtw.WriteOptionalAttributeString("default", setting.Default.FromYesNo());
xtw.WriteEndElement();
}
}
xtw.WriteEndElement();
break;
case ItemType.DeviceReference:
xtw.WriteStartElement("file");
xtw.WriteAttributeString("type", "device_ref");