示例#1
0
        // Token: 0x06000F81 RID: 3969 RVA: 0x0004FEA4 File Offset: 0x0004E0A4
        public virtual void lmethod_2808(Class_296 arg_0, object obje_0, Class_418 arg_1)
        {
            long sayıUınt_;

            if (obje_0 is DateTime)
            {
                DateTime dateTime = ((DateTime)obje_0).ToUniversalTime();
                sayıUınt_ = Class_502.ConvertDateTimeToJavaScriptTicks(dateTime);
            }
            else
            {
                if (!(obje_0 is DateTimeOffset))
                {
                    throw new Class_417("Expected date object value.");
                }
                sayıUınt_ = Class_502.ConvertDateTimeToJavaScriptTicks(((DateTimeOffset)obje_0).ToUniversalTime().UtcDateTime);
            }
            arg_0.xmethod_2011("Date");
            arg_0.smethod_2040(sayıUınt_);
            arg_0.tmethod_2012();
        }
示例#2
0
        // Token: 0x06000AB3 RID: 2739 RVA: 0x0003E1F4 File Offset: 0x0003C3F4
        private void xmethod_1851(Class_287 arg_0)
        {
            switch (arg_0.prop_0)
            {
            case Class_295.Number:
            {
                Class_290 class_ = (Class_290)arg_0;
                this.field_1.Write(Convert.ToDouble(class_.prop_0, CultureInfo.InvariantCulture));
                return;
            }

            case Class_295.String:
            {
                Class_291 class_2 = (Class_291)arg_0;
                this.tmethod_1852((string)class_2.prop_0, class_2.prop_0, new int?(class_2.prop_2 - 4));
                return;
            }

            case Class_295.Object:
            {
                Class_288 class_3 = (Class_288)arg_0;
                this.field_1.Write(class_3.prop_2);
                using (IEnumerator <Class_294> enumerator = class_3.dmethod_1956())
                {
                    while (enumerator.MoveNext())
                    {
                        Class_294 class_4 = enumerator.Current;
                        this.field_1.Write((sbyte)class_4.prop_1.prop_0);
                        this.tmethod_1852((string)class_4.prop_0.prop_0, class_4.prop_0.prop_0, null);
                        this.xmethod_1851(class_4.prop_1);
                    }
                }
                this.field_1.Write(0);
                return;
            }

            case Class_295.Array:
            {
                Class_289 class_5 = (Class_289)arg_0;
                this.field_1.Write(class_5.prop_2);
                ulong num = 0UL;
                using (IEnumerator <Class_287> enumerator2 = class_5.smethod_1960())
                {
                    while (enumerator2.MoveNext())
                    {
                        Class_287 class_6 = enumerator2.Current;
                        this.field_1.Write((sbyte)class_6.prop_0);
                        this.tmethod_1852(num.ToString(CultureInfo.InvariantCulture), Class_511.IntLength(num), null);
                        this.xmethod_1851(class_6);
                        num += 1UL;
                    }
                }
                this.field_1.Write(0);
                return;
            }

            case Class_295.Binary:
            {
                Class_292 class_7 = (Class_292)arg_0;
                byte[]    array   = (byte[])class_7.prop_0;
                this.field_1.Write(array.Length);
                this.field_1.Write((byte)class_7.prop_0);
                this.field_1.Write(array);
                return;
            }

            case Class_295.Undefined:
            case Class_295.Null:
                return;

            case Class_295.Oid:
            {
                Class_290 class_8 = (Class_290)arg_0;
                byte[]    buffer  = (byte[])class_8.prop_0;
                this.field_1.Write(buffer);
                return;
            }

            case Class_295.Boolean:
            {
                Class_290 class_9 = (Class_290)arg_0;
                this.field_1.Write((bool)class_9.prop_0);
                return;
            }

            case Class_295.Date:
            {
                Class_290 class_10 = (Class_290)arg_0;
                long      value;
                if (class_10.prop_0 is DateTime)
                {
                    DateTime dateTime = (DateTime)class_10.prop_0;
                    if (this.prop_0 == DateTimeKind.Utc)
                    {
                        dateTime = dateTime.ToUniversalTime();
                    }
                    else if (this.prop_0 == DateTimeKind.Local)
                    {
                        dateTime = dateTime.ToLocalTime();
                    }
                    value = Class_502.ConvertDateTimeToJavaScriptTicks(dateTime, false);
                }
                else
                {
                    DateTimeOffset dateTimeOffset = (DateTimeOffset)class_10.prop_0;
                    value = Class_502.ConvertDateTimeToJavaScriptTicks(dateTimeOffset.UtcDateTime, dateTimeOffset.Offset);
                }
                this.field_1.Write(value);
                return;
            }

            case Class_295.Regex:
            {
                Class_293 class_11 = (Class_293)arg_0;
                this.tmethod_1852((string)class_11.prop_0.prop_0, class_11.prop_0.prop_0, null);
                this.tmethod_1852((string)class_11.prop_1.prop_0, class_11.prop_1.prop_0, null);
                return;
            }

            case Class_295.Integer:
            {
                Class_290 class_12 = (Class_290)arg_0;
                this.field_1.Write(Convert.ToInt32(class_12.prop_0, CultureInfo.InvariantCulture));
                return;
            }

            case Class_295.Long:
            {
                Class_290 class_13 = (Class_290)arg_0;
                this.field_1.Write(Convert.ToInt64(class_13.prop_0, CultureInfo.InvariantCulture));
                return;
            }
            }
            throw new ArgumentOutOfRangeException("t", "Unexpected token when writing BSON: {0}".FormatWith(CultureInfo.InvariantCulture, arg_0.prop_0));
        }