private static bool fill2object(NSJSObject o, HttpClientResponse responset) { if (o == null || responset == null) { return(false); } NSJSVirtualMachine machine = o.VirtualMachine; machine.Join((sender, state) => { o.Set("AsynchronousMode", responset.AsynchronousMode); o.Set("CharacterSet", responset.CharacterSet ?? string.Empty); o.Set("ContentLength", responset.ContentLength); o.Set("ContentType", responset.ContentType ?? string.Empty); o.Set("LastModified", NSJSDateTime.Invalid(responset.LastModified) ? NSJSDateTime.Min : responset.LastModified); o.Set("ManualWriteToStream", responset.ManualWriteToStream); o.Set("ResponseUri", responset.ResponseUri == null ? string.Empty : responset.ResponseUri.ToString()); o.Set("Server", responset.Server ?? string.Empty); o.Set("StatusCode", unchecked ((int)responset.StatusCode)); o.Set("ContentEncoding", responset.ContentEncoding ?? string.Empty); o.Set("StatusDescription", responset.StatusDescription ?? string.Empty); }); return(true); }
public static DateTime ToDateTime(NSJSValue value) { NSJSDateTime datetime = value as NSJSDateTime; if (datetime != null) { return(datetime.Value); } return(NSJSDateTime.LocalDateToDateTime(ToInt64(value))); }
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); }
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)); } }
private static void CallSetFileInfo(IntPtr info, Action <NSJSFunctionCallbackInfo, string, DateTime> callback) { if (callback == null) { throw new ArgumentNullException("callback"); } CallGetFileInfo(info, (arguments, path) => { NSJSDateTime datetime = arguments.Length > 0 ? arguments[0] as NSJSDateTime : null; if (datetime == null) { Throwable.ArgumentNullException(arguments.VirtualMachine); } else { callback(arguments, path, datetime.Value); } }); }
private static void ToDateTime(IntPtr info) { NSJSFunctionCallbackInfo arguments = NSJSFunctionCallbackInfo.From(info); NSJSValue result = null; if (arguments.Length > 0) { NSJSUInt8Array value = arguments[0] as NSJSUInt8Array; NSJSInt32 startIndex = null; if (arguments.Length > 1) { startIndex = arguments[1] as NSJSInt32; } if (value != null) { int offset = 0; if (startIndex != null) { offset = startIndex.Value; } if (offset < 0) { offset = 0; } byte[] buffer = value.Buffer; if (buffer != null) { long ticks = BITCONVERTER.ToInt64(buffer, offset); result = NSJSDateTime.New(arguments.VirtualMachine, ticks); } } } if (result == null) { result = NSJSValue.Undefined(arguments.VirtualMachine); } arguments.SetReturnValue(result); }
public static NSJSValue As(this object value, NSJSVirtualMachine machine) { if (machine == null) { return(null); } if (value == null || value == DBNull.Value) { return(NSJSValue.Null(machine)); } if (value is NSJSValue) { return(value as NSJSValue); } Type typeid = value.GetType(); if (typeid == typeof(int) || typeid == typeof(short) || typeid == typeof(sbyte) || typeid == typeof(char)) { return(NSJSInt32.New(machine, Convert.ToInt32(value))); } else if (typeid == typeof(uint) || typeid == typeof(ushort) || typeid == typeof(byte)) { return(NSJSUInt32.New(machine, Convert.ToUInt32(value))); } else if (typeid == typeof(string)) { return(NSJSString.New(machine, value.ToString())); } else if (typeid == typeof(bool)) { return(NSJSBoolean.New(machine, Convert.ToBoolean(value))); } else if (typeid == typeof(DateTime)) { DateTime datetime = Convert.ToDateTime(value); if (NSJSDateTime.Invalid(datetime)) { datetime = NSJSDateTime.Min; } return(NSJSDateTime.New(machine, datetime)); } else if (typeid == typeof(float) || typeid == typeof(double)) { return(NSJSDouble.New(machine, Convert.ToDouble(value))); } else if (typeid == typeof(byte[])) { byte[] buffer = (byte[])(object)value; if (buffer == null) { return(NSJSValue.Null(machine)); } return(NSJSUInt8Array.New(machine, buffer)); } else if (typeid == typeof(sbyte[])) { sbyte[] buffer = (sbyte[])(object)value; if (buffer == null) { return(NSJSValue.Null(machine)); } return(NSJSInt8Array.New(machine, buffer)); } else if (typeid == typeof(short[])) { short[] buffer = (short[])(object)value; if (buffer == null) { return(NSJSValue.Null(machine)); } return(NSJSInt16Array.New(machine, buffer)); } else if (typeid == typeof(ushort[])) { ushort[] buffer = (ushort[])(object)value; if (buffer == null) { return(NSJSValue.Null(machine)); } return(NSJSUInt16Array.New(machine, buffer)); } else if (typeid == typeof(int[])) { int[] buffer = (int[])(object)value; if (buffer == null) { return(NSJSValue.Null(machine)); } return(NSJSInt32Array.New(machine, buffer)); } else if (typeid == typeof(uint[])) { uint[] buffer = (uint[])(object)value; if (buffer == null) { return(NSJSValue.Null(machine)); } return(NSJSUInt32Array.New(machine, buffer)); } else if (typeid == typeof(float[])) { float[] buffer = (float[])(object)value; if (buffer == null) { return(NSJSValue.Null(machine)); } return(NSJSFloat32Array.New(machine, buffer)); } else if (typeid == typeof(double[])) { double[] buffer = (double[])(object)value; if (buffer == null) { return(NSJSValue.Null(machine)); } return(NSJSFloat64Array.New(machine, buffer)); } return(NSJSValue.Null(machine)); }