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

View File

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

View File

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

View File

@@ -235,7 +235,7 @@ namespace SabreTools.Library.Filtering
// Location
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 };
// Part
@@ -974,7 +974,7 @@ namespace SabreTools.Library.Filtering
break;
case Field.DatItem_Location_Number:
SetStringFilter(DatItem_Location_Number, value, negate);
SetLongFilter(DatItem_Location_Number, value, negate);
break;
case Field.DatItem_Location_Inverted: