コード例 #1
0
 // Token: 0x06001563 RID: 5475 RVA: 0x00066B28 File Offset: 0x00064D28
 private string vmethod_3935(Class_296 arg_0, object obje_0, Class_349 arg_1, out bool arg_2)
 {
     if (arg_1.field_5 == Class_448.Primitive)
     {
         Class_369 class_ = (Class_369)arg_1;
         if (class_.prop_0 == Class_496.DateTime || class_.prop_0 == Class_496.DateTimeNullable)
         {
             arg_2 = false;
             StringWriter stringWriter = new StringWriter(CultureInfo.InvariantCulture);
             Class_502.WriteDateTimeString(stringWriter, (DateTime)obje_0, arg_0.prop_6, arg_0.prop_10, arg_0.prop_11);
             return(stringWriter.ToString());
         }
         if (class_.prop_0 == Class_496.DateTimeOffset || class_.prop_0 == Class_496.DateTimeOffsetNullable)
         {
             arg_2 = false;
             StringWriter stringWriter2 = new StringWriter(CultureInfo.InvariantCulture);
             Class_502.WriteDateTimeOffsetString(stringWriter2, (DateTimeOffset)obje_0, arg_0.prop_6, arg_0.prop_10, arg_0.prop_11);
             return(stringWriter2.ToString());
         }
         arg_2 = true;
         return(Convert.ToString(obje_0, CultureInfo.InvariantCulture));
     }
     else
     {
         string result;
         if (Class_467.gmethod_3913(obje_0, obje_0.GetType(), out result))
         {
             arg_2 = true;
             return(result);
         }
         arg_2 = true;
         return(obje_0.ToString());
     }
 }
コード例 #2
0
 // Token: 0x06000ADF RID: 2783 RVA: 0x0003ED2C File Offset: 0x0003CF2C
 internal DateTimeOffset?gmethod_1893()
 {
     this.field_4 = Class_408.ReadAsDateTimeOffset;
     while (this.tmethod_1892())
     {
         Class_508 class_ = this.prop_9;
         if (class_ != Class_508.Comment)
         {
             if (class_ == Class_508.Date)
             {
                 if (this.prop_10 is DateTime)
                 {
                     this.gmethod_1903(Class_508.Date, new DateTimeOffset((DateTime)this.prop_10), false);
                 }
                 return(new DateTimeOffset?((DateTimeOffset)this.prop_10));
             }
             if (class_ == Class_508.Null)
             {
                 return(null);
             }
             if (class_ == Class_508.String)
             {
                 string text = (string)this.prop_10;
                 if (string.IsNullOrEmpty(text))
                 {
                     this.xmethod_1901(Class_508.Null);
                     return(null);
                 }
                 object         obj;
                 DateTimeOffset dateTimeOffset;
                 if (Class_502.TryParseDateTime(text, Class_320.DateTimeOffset, this.prop_4, this.field_12, this.prop_14, out obj))
                 {
                     dateTimeOffset = (DateTimeOffset)obj;
                     this.gmethod_1903(Class_508.Date, dateTimeOffset, false);
                     return(new DateTimeOffset?(dateTimeOffset));
                 }
                 if (DateTimeOffset.TryParse(text, this.prop_14, DateTimeStyles.RoundtripKind, out dateTimeOffset))
                 {
                     this.gmethod_1903(Class_508.Date, dateTimeOffset, false);
                     return(new DateTimeOffset?(dateTimeOffset));
                 }
                 throw Class_414.lmethod_3098(this, "Could not convert string to DateTimeOffset: {0}.".FormatWith(CultureInfo.InvariantCulture, this.prop_10));
             }
             else
             {
                 if (class_ == Class_508.EndArray)
                 {
                     return(null);
                 }
                 throw Class_414.lmethod_3098(this, "Error reading date. Unexpected token: {0}.".FormatWith(CultureInfo.InvariantCulture, class_));
             }
         }
     }
     this.xmethod_1901(Class_508.None);
     return(null);
 }
コード例 #3
0
        // Token: 0x060010EE RID: 4334 RVA: 0x0005528C File Offset: 0x0005348C
        public static string ToString(DateTimeOffset value, Class_319 format)
        {
            string result;

            using (StringWriter stringWriter = Class_515.CreateStringWriter(64))
            {
                stringWriter.Write('"');
                Class_502.WriteDateTimeOffsetString(stringWriter, value, format, null, CultureInfo.InvariantCulture);
                stringWriter.Write('"');
                result = stringWriter.ToString();
            }
            return(result);
        }
コード例 #4
0
        // Token: 0x060010EC RID: 4332 RVA: 0x00055218 File Offset: 0x00053418
        public static string ToString(DateTime value, Class_319 format, Class_321 timeZoneHandling)
        {
            DateTime value2 = Class_502.EnsureDateTime(value, timeZoneHandling);
            string   result;

            using (StringWriter stringWriter = Class_515.CreateStringWriter(64))
            {
                stringWriter.Write('"');
                Class_502.WriteDateTimeString(stringWriter, value2, format, null, CultureInfo.InvariantCulture);
                stringWriter.Write('"');
                result = stringWriter.ToString();
            }
            return(result);
        }
コード例 #5
0
 // Token: 0x06001034 RID: 4148 RVA: 0x000518E8 File Offset: 0x0004FAE8
 private string xmethod_2971(Class_285 arg_0)
 {
     if (arg_0.prop_9 == Class_508.String)
     {
         return(arg_0.prop_10.ToString());
     }
     if (arg_0.prop_9 == Class_508.Integer)
     {
         return(XmlConvert.ToString(Convert.ToInt64(arg_0.prop_10, CultureInfo.InvariantCulture)));
     }
     if (arg_0.prop_9 == Class_508.Float)
     {
         if (arg_0.prop_10 is decimal)
         {
             return(XmlConvert.ToString((decimal)arg_0.prop_10));
         }
         if (arg_0.prop_10 is float)
         {
             return(XmlConvert.ToString((float)arg_0.prop_10));
         }
         return(XmlConvert.ToString(Convert.ToDouble(arg_0.prop_10, CultureInfo.InvariantCulture)));
     }
     else
     {
         if (arg_0.prop_9 == Class_508.Boolean)
         {
             return(XmlConvert.ToString(Convert.ToBoolean(arg_0.prop_10, CultureInfo.InvariantCulture)));
         }
         if (arg_0.prop_9 == Class_508.Date)
         {
             if (arg_0.prop_10 is DateTimeOffset)
             {
                 return(XmlConvert.ToString((DateTimeOffset)arg_0.prop_10));
             }
             DateTime value = Convert.ToDateTime(arg_0.prop_10, CultureInfo.InvariantCulture);
             return(XmlConvert.ToString(value, Class_502.ToSerializationMode(value.Kind)));
         }
         else
         {
             if (arg_0.prop_9 == Class_508.Null)
             {
                 return(null);
             }
             throw Class_417.xmethod_3101(arg_0, "Cannot get an XML string value from token type '{0}'.".FormatWith(CultureInfo.InvariantCulture, arg_0.prop_9));
         }
     }
 }
コード例 #6
0
 // Token: 0x060010C8 RID: 4296 RVA: 0x00054DE4 File Offset: 0x00052FE4
 public virtual void pmethod_3079(DateTimeOffset arg_0)
 {
     base.dmethod_2086(Class_508.Date);
     if (string.IsNullOrEmpty(base.prop_10))
     {
         this.vmethod_3085();
         int num = 0;
         this.field_7[num++] = this.field_4;
         num = Class_502.WriteDateTimeString(this.field_7, num, (base.prop_6 == Class_319.IsoDateFormat) ? arg_0.DateTime : arg_0.UtcDateTime, new TimeSpan?(arg_0.Offset), DateTimeKind.Local, base.prop_6);
         this.field_7[num++] = this.field_4;
         this.field_0.Write(this.field_7, 0, num);
         return;
     }
     this.field_0.Write(this.field_4);
     this.field_0.Write(arg_0.ToString(base.prop_10, base.prop_11));
     this.field_0.Write(this.field_4);
 }
コード例 #7
0
 // Token: 0x060010C6 RID: 4294 RVA: 0x00054CAC File Offset: 0x00052EAC
 public virtual void kmethod_3077(DateTime arg_0)
 {
     base.dmethod_2086(Class_508.Date);
     arg_0 = Class_502.EnsureDateTime(arg_0, base.prop_7);
     if (string.IsNullOrEmpty(base.prop_10))
     {
         this.vmethod_3085();
         int num = 0;
         this.field_7[num++] = this.field_4;
         num = Class_502.WriteDateTimeString(this.field_7, num, arg_0, null, arg_0.Kind, base.prop_6);
         this.field_7[num++] = this.field_4;
         this.field_0.Write(this.field_7, 0, num);
         return;
     }
     this.field_0.Write(this.field_4);
     this.field_0.Write(arg_0.ToString(base.prop_10, base.prop_11));
     this.field_0.Write(this.field_4);
 }
コード例 #8
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();
        }
コード例 #9
0
        // Token: 0x06000F82 RID: 3970 RVA: 0x0004FF28 File Offset: 0x0004E128
        public virtual object pmethod_2809(Class_285 arg_0, Type arg_1, object obje_0, Class_418 arg_2)
        {
            Type left = Class_514.IsNullableType(arg_1) ? Nullable.GetUnderlyingType(arg_1) : arg_1;

            if (arg_0.prop_9 == Class_508.Null)
            {
                if (!Class_514.IsNullable(arg_1))
                {
                    throw Class_417.xmethod_3101(arg_0, "Cannot convert null value to {0}.".FormatWith(CultureInfo.InvariantCulture, arg_1));
                }
                return(null);
            }
            else
            {
                if (arg_0.prop_9 != Class_508.StartConstructor || !string.Equals(arg_0.prop_10.ToString(), "Date", StringComparison.Ordinal))
                {
                    throw Class_417.xmethod_3101(arg_0, "Unexpected token or value when parsing date. Token: {0}, Value: {1}".FormatWith(CultureInfo.InvariantCulture, arg_0.prop_9, arg_0.prop_10));
                }
                arg_0.vmethod_1885();
                if (arg_0.prop_9 != Class_508.Integer)
                {
                    throw Class_417.xmethod_3101(arg_0, "Unexpected token parsing date. Expected Integer, got {0}.".FormatWith(CultureInfo.InvariantCulture, arg_0.prop_9));
                }
                long     javaScriptTicks = (long)arg_0.prop_10;
                DateTime dateTime        = Class_502.ConvertJavaScriptTicksToDateTime(javaScriptTicks);
                arg_0.vmethod_1885();
                if (arg_0.prop_9 != Class_508.EndConstructor)
                {
                    throw Class_417.xmethod_3101(arg_0, "Unexpected token parsing date. Expected EndConstructor, got {0}.".FormatWith(CultureInfo.InvariantCulture, arg_0.prop_9));
                }
                if (left == typeof(DateTimeOffset))
                {
                    return(new DateTimeOffset(dateTime));
                }
                return(dateTime);
            }
        }
コード例 #10
0
 // Token: 0x060012E6 RID: 4838 RVA: 0x0005A792 File Offset: 0x00058992
 public virtual void cmethod_3424(DateTime arg_0)
 {
     base.xmethod_2051(arg_0);
     arg_0 = Class_502.EnsureDateTime(arg_0, base.prop_7);
     this.gmethod_3403(arg_0, Class_508.Date);
 }
コード例 #11
0
 // Token: 0x06000BD6 RID: 3030 RVA: 0x00042448 File Offset: 0x00040648
 public virtual void tmethod_2122(DateTime arg_0)
 {
     base.xmethod_2051(arg_0);
     arg_0 = Class_502.EnsureDateTime(arg_0, base.prop_7);
     this.gmethod_2103(arg_0, Class_295.Date);
 }
コード例 #12
0
        // Token: 0x06000B0D RID: 2829 RVA: 0x0003FF24 File Offset: 0x0003E124
        private void vmethod_1935(Class_295 arg_0)
        {
            switch (arg_0)
            {
            case Class_295.Number:
            {
                double num = this.gmethod_1943();
                if (this.field_11 == Class_315.Decimal)
                {
                    base.tmethod_1902(Class_508.Float, Convert.ToDecimal(num, CultureInfo.InvariantCulture));
                    return;
                }
                base.tmethod_1902(Class_508.Float, num);
                return;
            }

            case Class_295.String:
            case Class_295.Symbol:
                base.tmethod_1902(Class_508.String, this.lmethod_1938());
                return;

            case Class_295.Object:
            {
                base.xmethod_1901(Class_508.StartObject);
                Class_286.NClass_1 nclass_ = new Class_286.NClass_1(Class_295.Object);
                this.gmethod_1933(nclass_);
                nclass_.field_27 = this.cmethod_1944();
                return;
            }

            case Class_295.Array:
            {
                base.xmethod_1901(Class_508.StartArray);
                Class_286.NClass_1 nclass_2 = new Class_286.NClass_1(Class_295.Array);
                this.gmethod_1933(nclass_2);
                nclass_2.field_27 = this.cmethod_1944();
                return;
            }

            case Class_295.Binary:
            {
                Class_283 class_;
                byte[]    array = this.dmethod_1936(out class_);
                object    obje_ = (class_ != Class_283.Uuid) ? array : new Guid(array);
                base.tmethod_1902(Class_508.Bytes, obje_);
                return;
            }

            case Class_295.Undefined:
                base.xmethod_1901(Class_508.Undefined);
                return;

            case Class_295.Oid:
            {
                byte[] obje_2 = this.lmethod_1948(12);
                base.tmethod_1902(Class_508.Bytes, obje_2);
                return;
            }

            case Class_295.Boolean:
            {
                bool flag = Convert.ToBoolean(this.cmethod_1934());
                base.tmethod_1902(Class_508.Boolean, flag);
                return;
            }

            case Class_295.Date:
            {
                long     javaScriptTicks = this.vmethod_1945();
                DateTime dateTime        = Class_502.ConvertJavaScriptTicksToDateTime(javaScriptTicks);
                DateTime dateTime2;
                switch (this.prop_2)
                {
                case DateTimeKind.Unspecified:
                    dateTime2 = DateTime.SpecifyKind(dateTime, DateTimeKind.Unspecified);
                    goto IL_1A7;

                case DateTimeKind.Local:
                    dateTime2 = dateTime.ToLocalTime();
                    goto IL_1A7;
                }
                dateTime2 = dateTime;
IL_1A7:
                base.tmethod_1902(Class_508.Date, dateTime2);
                return;
            }

            case Class_295.Null:
                base.xmethod_1901(Class_508.Null);
                return;

            case Class_295.Regex:
            {
                string str    = this.kmethod_1937();
                string str2   = this.kmethod_1937();
                string obje_3 = "/" + str + "/" + str2;
                base.tmethod_1902(Class_508.String, obje_3);
                return;
            }

            case Class_295.Reference:
                base.xmethod_1901(Class_508.StartObject);
                this.field_10 = Class_286.NClass_0.field_18;
                return;

            case Class_295.Code:
                base.tmethod_1902(Class_508.String, this.lmethod_1938());
                return;

            case Class_295.CodeWScope:
                base.xmethod_1901(Class_508.StartObject);
                this.field_10 = Class_286.NClass_0.field_21;
                return;

            case Class_295.Integer:
                base.tmethod_1902(Class_508.Integer, (long)this.cmethod_1944());
                return;

            case Class_295.TimeStamp:
            case Class_295.Long:
                base.tmethod_1902(Class_508.Integer, this.vmethod_1945());
                return;

            default:
                throw new ArgumentOutOfRangeException("type", "Unexpected BsonType value: " + arg_0);
            }
        }
コード例 #13
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));
        }