Woopsa.WoopsaValue.ToWoopsaValue C# (CSharp) Method

ToWoopsaValue() public static method

public static ToWoopsaValue ( object value, WoopsaValueType type, System.DateTime timeStamp = null ) : WoopsaValue
value object
type WoopsaValueType
timeStamp System.DateTime
return WoopsaValue
        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()));
            }
        }

Usage Example

Example #1
0
        public override bool TryInvokeMember(InvokeMemberBinder binder, object[] args, out object result)
        {
            result = null;
            foreach (var method in InnerObject.Methods)
            {
                if (method.Name.Equals(binder.Name))
                {
                    var argumentInfos = method.ArgumentInfos.ToArray();

                    var arguments = new IWoopsaValue[argumentInfos.Length];
                    for (int i = 0; i < argumentInfos.Length; i++)
                    {
                        WoopsaValueType woopsaValueType;
                        WoopsaConverter woopsaConverter;
                        if (CustomTypeConverters != null)
                        {
                            CustomTypeConverters.InferWoopsaType(args[i].GetType(), out woopsaValueType, out woopsaConverter);
                            arguments[i] = woopsaConverter.ToWoopsaValue(args[i], woopsaValueType, null);
                        }
                        else
                        {
                            arguments[i] = WoopsaValue.ToWoopsaValue(args[i], argumentInfos[i].Type);
                        }
                    }
                    result = method.Invoke(arguments);
                    return(true);
                }
            }
            return(false);
        }
All Usage Examples Of Woopsa.WoopsaValue::ToWoopsaValue