public static WoopsaValue ToWoopsaValue(object value, WoopsaValueType type, DateTime? timeStamp = null) { try { switch (type) { case WoopsaValueType.Logical: return new WoopsaValue((bool)value, timeStamp); case WoopsaValueType.Integer: return new WoopsaValue(Convert.ToInt64(value), timeStamp); case WoopsaValueType.Real: return new WoopsaValue(Convert.ToDouble(value), timeStamp); case WoopsaValueType.DateTime: return new WoopsaValue((DateTime)value, timeStamp); case WoopsaValueType.TimeSpan: if (value is TimeSpan) return new WoopsaValue((TimeSpan)value, timeStamp); else return new WoopsaValue(TimeSpan.FromSeconds(Convert.ToDouble(value)), timeStamp); case WoopsaValueType.Text: if (string.IsNullOrEmpty((string)value)) return new WoopsaValue(string.Empty, timeStamp); else return new WoopsaValue(WoopsaFormat.ToStringWoopsa(value), timeStamp); default: return WoopsaValue.CreateUnchecked(WoopsaFormat.ToStringWoopsa(value), type, timeStamp); } } catch (InvalidCastException) { throw new WoopsaException(String.Format("Cannot typecast object of type {0} to Woopsa Type {1}", value.GetType(), type.ToString())); } }
public static WoopsaValue ToWoopsaValue(object value, WoopsaValueType type, DateTime?timeStamp = null) { try { switch (type) { case WoopsaValueType.Logical: return(new WoopsaValue((bool)value, timeStamp)); case WoopsaValueType.Integer: return(new WoopsaValue(Convert.ToInt64(value), timeStamp)); case WoopsaValueType.Real: return(new WoopsaValue(Convert.ToDouble(value), timeStamp)); case WoopsaValueType.DateTime: return(new WoopsaValue((DateTime)value, timeStamp)); case WoopsaValueType.TimeSpan: if (value is TimeSpan) { return(new WoopsaValue((TimeSpan)value, timeStamp)); } else { return(new WoopsaValue(TimeSpan.FromSeconds(Convert.ToDouble(value)), timeStamp)); } case WoopsaValueType.Text: if (value == null) { return(new WoopsaValue(string.Empty, timeStamp)); } else if (value.GetType().IsEnum) { return(new WoopsaValue(value.ToString(), timeStamp)); } else if (string.IsNullOrEmpty((string)value)) { return(new WoopsaValue(string.Empty, timeStamp)); } else { return(new WoopsaValue(WoopsaFormat.ToStringWoopsa(value), timeStamp)); } default: return(WoopsaValue.CreateUnchecked(WoopsaFormat.ToStringWoopsa(value), type, timeStamp)); } } catch (InvalidCastException) { throw new WoopsaException(String.Format("Cannot typecast object of type {0} to Woopsa Type {1}", value.GetType(), type.ToString())); } }
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 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)); }