public static CreateChecked ( string text, WoopsaValueType type, System.DateTime timestamp = null ) : |
||
text | string | |
type | WoopsaValueType | |
timestamp | System.DateTime | |
return |
public static WoopsaValue CreateChecked(string text, WoopsaValueType type, DateTime? timestamp = null)
{
try
{
// Sanity check for the value passed in argument
switch (type)
{
case WoopsaValueType.Integer:
Int64.Parse(text, CultureInfo.InvariantCulture);
break;
case WoopsaValueType.Real:
Double.Parse(text, CultureInfo.InvariantCulture);
break;
case WoopsaValueType.Logical:
Boolean.Parse(text);
text = text.ToLower(); // .NET and JSON serialize booleans differently (.NET uses a capital first letter) :/
break;
case WoopsaValueType.Text:
if (text == null)
text = string.Empty;
break;
case WoopsaValueType.DateTime:
DateTime.Parse(text, CultureInfo.InvariantCulture);
break;
case WoopsaValueType.TimeSpan:
Double.Parse(text, CultureInfo.InvariantCulture);
break;
}
}
catch (Exception)
{
throw new WoopsaException(String.Format("Cannot create a WoopsaValue of type {0} from string \"{1}\"", type.ToString(), text));
}
return CreateUnchecked(text, type, timestamp);
}
public static WoopsaValue DeserializeWoopsaValue(string jsonText) { var result = JsonSerializer.Deserialize <WoopsaReadResult>(jsonText); if (result != null) { var valueType = (WoopsaValueType)Enum.Parse(typeof(WoopsaValueType), result.Type); WoopsaValue resultWoopsaValue; DateTime? timeStamp; if (result.TimeStamp != null) { timeStamp = DateTime.Parse(result.TimeStamp, CultureInfo.InvariantCulture); } else { timeStamp = null; } if (valueType == WoopsaValueType.JsonData) { resultWoopsaValue = new WoopsaValue(WoopsaJsonData.CreateFromDeserializedData(result.Value), timeStamp); } else { resultWoopsaValue = WoopsaValue.CreateChecked(WoopsaFormat.ToStringWoopsa(result.Value), valueType, timeStamp); } return(resultWoopsaValue); } else { return(WoopsaValue.Null); } }