feat: Support reading primitive type double in IcdXmlReader and XmlUtils

This commit is contained in:
Austin Noska
2020-11-06 10:03:01 -05:00
parent a13f1fd687
commit 03be66983d
3 changed files with 44 additions and 0 deletions

View File

@@ -15,6 +15,7 @@ and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0.
- Added IcdTimeZoneInfo, a very light implementation of System.TimeZoneInfo for the .NET Compact Framework - Added IcdTimeZoneInfo, a very light implementation of System.TimeZoneInfo for the .NET Compact Framework
- Added ThreadedWorkerQueue - a threadsafe way to enqueue items and have a worker thread process them one at a time - Added ThreadedWorkerQueue - a threadsafe way to enqueue items and have a worker thread process them one at a time
- Added eDaysOfWeek flags enum - Added eDaysOfWeek flags enum
- Added support for reading the primitive type double to IcdXmlReader and XmlUtils
### Changed ### Changed
- Repeater changed to use configured callbacks instead of a dumb event - Repeater changed to use configured callbacks instead of a dumb event

View File

@@ -189,6 +189,13 @@ namespace ICD.Common.Utils.Xml
return float.Parse(value); return float.Parse(value);
} }
public double ReadElementContentAsDouble()
{
// ReadElementContentAsDouble() logs and throws...
string value = ReadElementContentAsString();
return double.Parse(value);
}
public bool ReadElementContentAsBoolean() public bool ReadElementContentAsBoolean()
{ {
// ReadElementContentAsBoolean() is too case sensitive // ReadElementContentAsBoolean() is too case sensitive

View File

@@ -448,6 +448,19 @@ namespace ICD.Common.Utils.Xml
return reader.ReadElementContentAsFloat(); return reader.ReadElementContentAsFloat();
} }
/// <summary>
/// Gets the content of an immediate child.
/// </summary>
/// <param name="xml"></param>
/// <param name="childElement"></param>
/// <returns></returns>
[PublicAPI]
public static double ReadChildElementContentAsDouble(string xml, string childElement)
{
using (IcdXmlReader reader = GetChildElement(xml, childElement))
return reader.ReadElementContentAsDouble();
}
/// <summary> /// <summary>
/// Gets the content of an immediate child. /// Gets the content of an immediate child.
/// </summary> /// </summary>
@@ -663,6 +676,29 @@ namespace ICD.Common.Utils.Xml
} }
} }
/// <summary>
/// Gets the content of the immediate child. Returns null if the child element was not found.
/// </summary>
/// <param name="xml"></param>
/// <param name="childElement"></param>
/// <returns></returns>
[PublicAPI]
public static double? TryReadChildElementContentAsDouble(string xml, string childElement)
{
try
{
return ReadChildElementContentAsDouble(xml, childElement);
}
catch (IcdXmlException)
{
return null;
}
catch (FormatException)
{
return null;
}
}
/// <summary> /// <summary>
/// Gets the content of an immediate child. Returns null if the child element was not found. /// Gets the content of an immediate child. Returns null if the child element was not found.
/// </summary> /// </summary>