Exemplo n.º 1
0
        public static double ToDouble(NSJSValue value)
        {
            if (value == null || value.IsNullOrUndfined)
            {
                return(0);
            }
            NSJSInt32 i32 = value as NSJSInt32;

            if (i32 != null)
            {
                return(i32.Value);
            }
            NSJSUInt32 u32 = value as NSJSUInt32;

            if (u32 != null)
            {
                return(u32.Value);
            }
            NSJSBoolean boolean = value as NSJSBoolean;

            if (boolean != null)
            {
                return(boolean.Value ? 1 : 0);
            }
            NSJSDateTime time = value as NSJSDateTime;

            if (time != null)
            {
                return(NSJSDateTime.DateTimeToLocalDate(time.Value));
            }
            NSJSDouble dbl = value as NSJSDouble;

            if (dbl != null)
            {
                return(dbl.Value);
            }
            NSJSInt64 i64 = value as NSJSInt64;

            if (i64 != null)
            {
                return(i64.Value);
            }
            NSJSString str = value as NSJSString;

            if (str != null)
            {
                double n;
                if (double.TryParse(str.Value, NumberStyles.Float | NumberStyles.None, null, out n))
                {
                    return(n);
                }
            }
            return(0);
        }
Exemplo n.º 2
0
        private static void GetBytes(IntPtr info)
        {
            NSJSFunctionCallbackInfo arguments = NSJSFunctionCallbackInfo.From(info);

            byte[] result = null;
            if (arguments.Length > 0)
            {
                NSJSValue value = arguments[0];
                if (value != null)
                {
                    NSJSInt32 int32 = value as NSJSInt32;
                    if (int32 != null)
                    {
                        result = BITCONVERTER.GetBytes(int32.Value);
                    }
                    NSJSUInt32 uint32 = value as NSJSUInt32;
                    if (uint32 != null)
                    {
                        result = BITCONVERTER.GetBytes(uint32.Value);
                    }
                    NSJSBoolean boolean = value as NSJSBoolean;
                    if (boolean != null)
                    {
                        result = BITCONVERTER.GetBytes(boolean.Value);
                    }
                    NSJSDouble float64 = value as NSJSDouble;
                    if (float64 != null)
                    {
                        result = BITCONVERTER.GetBytes(float64.Value);
                    }
                    NSJSDateTime datetime = value as NSJSDateTime;
                    if (datetime != null)
                    {
                        result = BITCONVERTER.GetBytes(NSJSDateTime.DateTimeToLocalDate(datetime.Value));
                    }
                    ;
                }
            }
            if (result != null)
            {
                arguments.SetReturnValue(result);
            }
            else
            {
                arguments.SetReturnValue(NSJSValue.Undefined(arguments.VirtualMachine));
            }
        }