Location number is numeric

This commit is contained in:
Matt Nadareski
2020-09-06 23:08:50 -07:00
parent 5d5520dbdd
commit 4538bc3932
4 changed files with 16 additions and 14 deletions

View File

@@ -771,7 +771,7 @@ namespace SabreTools.Library.DatFiles
case "diplocation": case "diplocation":
var dipLocation = new Location(); var dipLocation = new Location();
dipLocation.Name = reader.GetAttribute("name"); dipLocation.Name = reader.GetAttribute("name");
dipLocation.Number = reader.GetAttribute("number"); dipLocation.Number = Sanitizer.CleanLong(reader.GetAttribute("number"));
dipLocation.Inverted = reader.GetAttribute("inverted").AsYesNo(); dipLocation.Inverted = reader.GetAttribute("inverted").AsYesNo();
dipSwitch.Locations.Add(dipLocation); dipSwitch.Locations.Add(dipLocation);
@@ -895,7 +895,7 @@ namespace SabreTools.Library.DatFiles
case "conflocation": case "conflocation":
var confLocation = new Location(); var confLocation = new Location();
confLocation.Name = reader.GetAttribute("name"); confLocation.Name = reader.GetAttribute("name");
confLocation.Number = reader.GetAttribute("number"); confLocation.Number = Sanitizer.CleanLong(reader.GetAttribute("number"));
confLocation.Inverted = reader.GetAttribute("inverted").AsYesNo(); confLocation.Inverted = reader.GetAttribute("inverted").AsYesNo();
configuration.Locations.Add(confLocation); configuration.Locations.Add(confLocation);
@@ -1396,7 +1396,7 @@ namespace SabreTools.Library.DatFiles
{ {
xtw.WriteStartElement("conflocation"); xtw.WriteStartElement("conflocation");
xtw.WriteOptionalAttributeString("name", location.Name); xtw.WriteOptionalAttributeString("name", location.Name);
xtw.WriteOptionalAttributeString("number", location.Number); xtw.WriteOptionalAttributeString("number", location.Number?.ToString());
xtw.WriteOptionalAttributeString("inverted", location.Inverted.FromYesNo()); xtw.WriteOptionalAttributeString("inverted", location.Inverted.FromYesNo());
xtw.WriteEndElement(); xtw.WriteEndElement();
} }
@@ -1476,7 +1476,7 @@ namespace SabreTools.Library.DatFiles
{ {
xtw.WriteStartElement("diplocation"); xtw.WriteStartElement("diplocation");
xtw.WriteOptionalAttributeString("name", location.Name); xtw.WriteOptionalAttributeString("name", location.Name);
xtw.WriteOptionalAttributeString("number", location.Number); xtw.WriteOptionalAttributeString("number", location.Number?.ToString());
xtw.WriteOptionalAttributeString("inverted", location.Inverted.FromYesNo()); xtw.WriteOptionalAttributeString("inverted", location.Inverted.FromYesNo());
xtw.WriteEndElement(); xtw.WriteEndElement();
} }

View File

@@ -732,7 +732,7 @@ namespace SabreTools.Library.DatFiles
case "conflocation": case "conflocation":
var confLocation = new Location(); var confLocation = new Location();
confLocation.Name = reader.GetAttribute("name"); confLocation.Name = reader.GetAttribute("name");
confLocation.Number = reader.GetAttribute("number"); confLocation.Number = Sanitizer.CleanLong(reader.GetAttribute("number"));
confLocation.Inverted = reader.GetAttribute("inverted").AsYesNo(); confLocation.Inverted = reader.GetAttribute("inverted").AsYesNo();
(configuration as Configuration).Locations.Add(confLocation); (configuration as Configuration).Locations.Add(confLocation);
@@ -860,7 +860,7 @@ namespace SabreTools.Library.DatFiles
case "diplocation": case "diplocation":
var dipLocation = new Location(); var dipLocation = new Location();
dipLocation.Name = reader.GetAttribute("name"); dipLocation.Name = reader.GetAttribute("name");
dipLocation.Number = reader.GetAttribute("number"); dipLocation.Number = Sanitizer.CleanLong(reader.GetAttribute("number"));
dipLocation.Inverted = reader.GetAttribute("inverted").AsYesNo(); dipLocation.Inverted = reader.GetAttribute("inverted").AsYesNo();
(dipSwitch as DipSwitch).Locations.Add(dipLocation); (dipSwitch as DipSwitch).Locations.Add(dipLocation);
@@ -1298,7 +1298,7 @@ namespace SabreTools.Library.DatFiles
{ {
xtw.WriteStartElement("conflocation"); xtw.WriteStartElement("conflocation");
xtw.WriteOptionalAttributeString("name", location.Name); xtw.WriteOptionalAttributeString("name", location.Name);
xtw.WriteOptionalAttributeString("number", location.Number); xtw.WriteOptionalAttributeString("number", location.Number?.ToString());
xtw.WriteOptionalAttributeString("inverted", location.Inverted.FromYesNo()); xtw.WriteOptionalAttributeString("inverted", location.Inverted.FromYesNo());
xtw.WriteEndElement(); xtw.WriteEndElement();
} }
@@ -1381,7 +1381,7 @@ namespace SabreTools.Library.DatFiles
{ {
xtw.WriteStartElement("diplocation"); xtw.WriteStartElement("diplocation");
xtw.WriteOptionalAttributeString("name", location.Name); xtw.WriteOptionalAttributeString("name", location.Name);
xtw.WriteOptionalAttributeString("number", location.Number); xtw.WriteOptionalAttributeString("number", location.Number?.ToString());
xtw.WriteOptionalAttributeString("inverted", location.Inverted.FromYesNo()); xtw.WriteOptionalAttributeString("inverted", location.Inverted.FromYesNo());
xtw.WriteEndElement(); xtw.WriteEndElement();
} }

View File

@@ -26,7 +26,7 @@ namespace SabreTools.Library.DatItems
/// Location ID /// Location ID
/// </summary> /// </summary>
[JsonProperty("number", DefaultValueHandling = DefaultValueHandling.Ignore)] [JsonProperty("number", DefaultValueHandling = DefaultValueHandling.Ignore)]
public string Number { get; set; } public long? Number { get; set; }
/// <summary> /// <summary>
/// Determines if location is inverted or not /// Determines if location is inverted or not
@@ -61,7 +61,7 @@ namespace SabreTools.Library.DatItems
Name = mappings[Field.DatItem_Location_Name]; Name = mappings[Field.DatItem_Location_Name];
if (mappings.Keys.Contains(Field.DatItem_Location_Number)) if (mappings.Keys.Contains(Field.DatItem_Location_Number))
Number = mappings[Field.DatItem_Location_Number]; Number = Sanitizer.CleanLong(mappings[Field.DatItem_Location_Number]);
if (mappings.Keys.Contains(Field.DatItem_Location_Inverted)) if (mappings.Keys.Contains(Field.DatItem_Location_Inverted))
Inverted = mappings[Field.DatItem_Location_Inverted].AsYesNo(); Inverted = mappings[Field.DatItem_Location_Inverted].AsYesNo();
@@ -169,9 +169,11 @@ namespace SabreTools.Library.DatItems
return false; return false;
// Filter on number // Filter on number
if (filter.DatItem_Location_Number.MatchesPositiveSet(Number) == false) if (filter.DatItem_Location_Number.MatchesNeutral(null, Number) == false)
return false; return false;
if (filter.DatItem_Location_Number.MatchesNegativeSet(Number) == true) else if (filter.DatItem_Location_Number.MatchesPositive(null, Number) == false)
return false;
else if (filter.DatItem_Location_Number.MatchesNegative(null, Number) == false)
return false; return false;
// Filter on inverted // Filter on inverted

View File

@@ -235,7 +235,7 @@ namespace SabreTools.Library.Filtering
// Location // Location
public FilterItem<string> DatItem_Location_Name { get; private set; } = new FilterItem<string>(); public FilterItem<string> DatItem_Location_Name { get; private set; } = new FilterItem<string>();
public FilterItem<string> DatItem_Location_Number { get; private set; } = new FilterItem<string>(); public FilterItem<long?> DatItem_Location_Number { get; private set; } = new FilterItem<long?>() { Positive = null, Negative = null, Neutral = null };
public FilterItem<bool?> DatItem_Location_Inverted { get; private set; } = new FilterItem<bool?>() { Neutral = null }; public FilterItem<bool?> DatItem_Location_Inverted { get; private set; } = new FilterItem<bool?>() { Neutral = null };
// Part // Part
@@ -974,7 +974,7 @@ namespace SabreTools.Library.Filtering
break; break;
case Field.DatItem_Location_Number: case Field.DatItem_Location_Number:
SetStringFilter(DatItem_Location_Number, value, negate); SetLongFilter(DatItem_Location_Number, value, negate);
break; break;
case Field.DatItem_Location_Inverted: case Field.DatItem_Location_Inverted: