public static Variant ValidateValue(object formattedValue)
{
string value = formattedValue as string;
if (String.IsNullOrEmpty(value))
{
return Variant.Null;
}
if (String.Compare(value, "true", StringComparison.InvariantCultureIgnoreCase) == 0)
{
return new Variant(true, TypeInfo.Scalars.Boolean);
}
if (String.Compare(value, "false", StringComparison.InvariantCultureIgnoreCase) == 0)
{
return new Variant(false, TypeInfo.Scalars.Boolean);
}
try
{
return new Variant(Convert.ToDouble(value), TypeInfo.Scalars.Double);
}
catch
{
try
{
uint code = StatusCodes.GetIdentifier(value);
return new Variant(new StatusCode(code), TypeInfo.Scalars.StatusCode);
}
catch
{
throw new FormatException("Could not parse field value.");
}
}
}