private CalendarPropertyBase NewProperty(CalendarPropertyReader pr)
        {
            CalendarValueType valueType = pr.ValueType;

            if (valueType <= CalendarValueType.Date)
            {
                if (valueType == CalendarValueType.CalAddress)
                {
                    return(new CalendarAttendee());
                }
                if (valueType != CalendarValueType.Date)
                {
                    goto IL_83;
                }
            }
            else if (valueType != CalendarValueType.DateTime)
            {
                if (valueType != CalendarValueType.Text)
                {
                    goto IL_83;
                }
                if (string.Compare(pr.Name, "X-MS-OLK-ORIGINALSTART", StringComparison.CurrentCultureIgnoreCase) == 0 || string.Compare(pr.Name, "X-MS-OLK-ORIGINALEND", StringComparison.CurrentCultureIgnoreCase) == 0 || string.Compare(pr.Name, "X-MICROSOFT-EXDATE", StringComparison.CurrentCultureIgnoreCase) == 0)
                {
                    return(new CalendarDateTime());
                }
                return(new CalendarPropertyBase());
            }
            return(new CalendarDateTime());

IL_83:
            return(new CalendarPropertyBase());
        }
Exemplo n.º 2
0
 // Token: 0x06000730 RID: 1840 RVA: 0x000286E9 File Offset: 0x000268E9
 private void CheckType(CalendarValueType type)
 {
     if (this.ValueType != type && this.ValueType != CalendarValueType.Text)
     {
         this.reader.ComplianceTracker.SetComplianceStatus(ComplianceStatus.InvalidValueFormat, CalendarStrings.InvalidValueFormat);
     }
 }
Exemplo n.º 3
0
        // Token: 0x06000718 RID: 1816 RVA: 0x000282F0 File Offset: 0x000264F0
        private TimeSpan ReadValueAsTimeSpan(CalendarValueType valueType, CalendarValueSeparators?expectedSeparators)
        {
            this.reader.AssertValidState(ContentLineNodeType.Parameter | ContentLineNodeType.Property);
            string s = this.ReadValueAsString(expectedSeparators).Trim();

            if (CalendarValueType.Duration == valueType)
            {
                this.CheckType(CalendarValueType.Duration);
                return(CalendarCommon.ParseDuration(s, this.reader.ComplianceTracker));
            }
            if (CalendarValueType.UtcOffset == valueType)
            {
                this.CheckType(CalendarValueType.UtcOffset);
                return(CalendarCommon.ParseUtcOffset(s, this.reader.ComplianceTracker));
            }
            throw new ArgumentOutOfRangeException("valueType");
        }
Exemplo n.º 4
0
        // Token: 0x06000769 RID: 1897 RVA: 0x000292F8 File Offset: 0x000274F8
        private void WritePropertyValue(DateTime value, CalendarValueType valueType, CalendarValueSeparators separator)
        {
            string value2;

            if (CalendarValueType.DateTime == valueType || CalendarValueType.Text == valueType)
            {
                value2 = CalendarCommon.FormatDateTime(value);
            }
            else
            {
                if (CalendarValueType.Date != valueType)
                {
                    throw new ArgumentOutOfRangeException("valueType");
                }
                value2 = CalendarCommon.FormatDate(value);
            }
            this.WritePropertyValue(value2, separator);
        }
Exemplo n.º 5
0
        // Token: 0x0600076A RID: 1898 RVA: 0x0002933C File Offset: 0x0002753C
        private void WritePropertyValue(TimeSpan value, CalendarValueType valueType, CalendarValueSeparators separator)
        {
            string value2;

            if (CalendarValueType.Duration == valueType)
            {
                value2 = CalendarCommon.FormatDuration(value);
            }
            else
            {
                if (CalendarValueType.UtcOffset != valueType)
                {
                    throw new ArgumentOutOfRangeException("valueType");
                }
                if (value.Days > 0 && this.validate)
                {
                    throw new ArgumentException(CalendarStrings.UtcOffsetTimespanCannotContainDays, "value");
                }
                value2 = CalendarCommon.FormatUtcOffset(value);
            }
            this.WritePropertyValue(value2, separator);
        }
Exemplo n.º 6
0
        // Token: 0x06000706 RID: 1798 RVA: 0x00027E50 File Offset: 0x00026050
        private object ReadValue(CalendarValueSeparators?expectedSeparators)
        {
            while (this.reader.ReadNextParameter())
            {
            }
            CalendarValueType valueType = this.ValueType;

            if (valueType <= CalendarValueType.Float)
            {
                if (valueType <= CalendarValueType.Date)
                {
                    switch (valueType)
                    {
                    case CalendarValueType.Binary:
                        return(this.ReadValueAsBytes());

                    case CalendarValueType.Unknown | CalendarValueType.Binary:
                        break;

                    case CalendarValueType.Boolean:
                        return(this.ReadValueAsBoolean(expectedSeparators));

                    default:
                        if (valueType == CalendarValueType.Date)
                        {
                            return(this.ReadValueAsDateTime(expectedSeparators));
                        }
                        break;
                    }
                }
                else
                {
                    if (valueType == CalendarValueType.DateTime)
                    {
                        return(this.ReadValueAsDateTime(expectedSeparators));
                    }
                    if (valueType == CalendarValueType.Duration)
                    {
                        return(this.ReadValueAsTimeSpan(expectedSeparators));
                    }
                    if (valueType == CalendarValueType.Float)
                    {
                        return(this.ReadValueAsFloat(expectedSeparators));
                    }
                }
            }
            else if (valueType <= CalendarValueType.Period)
            {
                if (valueType == CalendarValueType.Integer)
                {
                    return(this.ReadValueAsInt32(expectedSeparators));
                }
                if (valueType == CalendarValueType.Period)
                {
                    return(this.ReadValueAsCalendarPeriod(expectedSeparators));
                }
            }
            else
            {
                if (valueType == CalendarValueType.Recurrence)
                {
                    return(this.ReadValueAsRecurrence(expectedSeparators));
                }
                if (valueType == CalendarValueType.Time)
                {
                    return(this.ReadValueAsCalendarTime(expectedSeparators));
                }
                if (valueType == CalendarValueType.UtcOffset)
                {
                    return(this.ReadValueAsTimeSpan(expectedSeparators));
                }
            }
            return(this.ReadValueAsString(expectedSeparators));
        }
Exemplo n.º 7
0
 // Token: 0x0600071A RID: 1818 RVA: 0x00028374 File Offset: 0x00026574
 public TimeSpan ReadValueAsTimeSpan(CalendarValueType valueType)
 {
     return(this.ReadValueAsTimeSpan(valueType, null));
 }
Exemplo n.º 8
0
 // Token: 0x06000719 RID: 1817 RVA: 0x00028365 File Offset: 0x00026565
 internal TimeSpan ReadValueAsTimeSpan(CalendarValueType valueType, CalendarValueSeparators expectedSeparators)
 {
     return(this.ReadValueAsTimeSpan(valueType, new CalendarValueSeparators?(expectedSeparators)));
 }
Exemplo n.º 9
0
 // Token: 0x06000714 RID: 1812 RVA: 0x00028244 File Offset: 0x00026444
 public DateTime ReadValueAsDateTime(CalendarValueType valueType)
 {
     return(this.ReadValueAsDateTime(valueType, null));
 }
Exemplo n.º 10
0
 // Token: 0x06000713 RID: 1811 RVA: 0x00028233 File Offset: 0x00026433
 internal DateTime ReadValueAsDateTime(CalendarValueType valueType, CalendarValueSeparators expectedSeparators)
 {
     return(this.ReadValueAsDateTime(valueType, new CalendarValueSeparators?(expectedSeparators)));
 }
Exemplo n.º 11
0
        // Token: 0x0600075E RID: 1886 RVA: 0x00028EDC File Offset: 0x000270DC
        internal void WritePropertyValue(object value, CalendarValueSeparators separator)
        {
            if (value == null)
            {
                throw new ArgumentNullException("value");
            }
            CalendarValueType calendarValueType = this.valueType;

            if (calendarValueType <= CalendarValueType.Float)
            {
                if (calendarValueType <= CalendarValueType.Date)
                {
                    switch (calendarValueType)
                    {
                    case CalendarValueType.Unknown:
                        break;

                    case CalendarValueType.Binary:
                    {
                        byte[] array = value as byte[];
                        if (array == null)
                        {
                            throw new ArgumentException(CalendarStrings.InvalidValueTypeForProperty);
                        }
                        this.PrepareStartPropertyValue(ContentLineParser.Separators.None);
                        this.writer.WriteToStream(array);
                        this.EndProperty();
                        return;
                    }

                    case CalendarValueType.Unknown | CalendarValueType.Binary:
                        goto IL_276;

                    case CalendarValueType.Boolean:
                        if (!(value is bool))
                        {
                            throw new ArgumentException(CalendarStrings.InvalidValueTypeForProperty);
                        }
                        this.WritePropertyValue((bool)value, separator);
                        return;

                    default:
                        if (calendarValueType != CalendarValueType.CalAddress)
                        {
                            if (calendarValueType != CalendarValueType.Date)
                            {
                                goto IL_276;
                            }
                            if (!(value is DateTime))
                            {
                                throw new ArgumentException(CalendarStrings.InvalidValueTypeForProperty);
                            }
                            this.WritePropertyValue((DateTime)value, CalendarValueType.Date, separator);
                            return;
                        }
                        break;
                    }
                }
                else if (calendarValueType != CalendarValueType.DateTime)
                {
                    if (calendarValueType != CalendarValueType.Duration)
                    {
                        if (calendarValueType != CalendarValueType.Float)
                        {
                            goto IL_276;
                        }
                        if (!(value is float))
                        {
                            throw new ArgumentException(CalendarStrings.InvalidValueTypeForProperty);
                        }
                        this.WritePropertyValue((float)value, separator);
                        return;
                    }
                    else
                    {
                        if (!(value is TimeSpan))
                        {
                            throw new ArgumentException(CalendarStrings.InvalidValueTypeForProperty);
                        }
                        this.WritePropertyValue((TimeSpan)value, CalendarValueType.Duration, separator);
                        return;
                    }
                }
                else
                {
                    if (!(value is DateTime))
                    {
                        throw new ArgumentException(CalendarStrings.InvalidValueTypeForProperty);
                    }
                    this.WritePropertyValue((DateTime)value, separator);
                    return;
                }
            }
            else if (calendarValueType <= CalendarValueType.Recurrence)
            {
                if (calendarValueType != CalendarValueType.Integer)
                {
                    if (calendarValueType != CalendarValueType.Period)
                    {
                        if (calendarValueType != CalendarValueType.Recurrence)
                        {
                            goto IL_276;
                        }
                        Recurrence recurrence = value as Recurrence;
                        if (recurrence == null)
                        {
                            throw new ArgumentException(CalendarStrings.InvalidValueTypeForProperty);
                        }
                        this.WritePropertyValue(recurrence);
                        return;
                    }
                    else
                    {
                        if (!(value is CalendarPeriod))
                        {
                            throw new ArgumentException(CalendarStrings.InvalidValueTypeForProperty);
                        }
                        this.WritePropertyValue((CalendarPeriod)value, separator);
                        return;
                    }
                }
                else
                {
                    if (!(value is int))
                    {
                        throw new ArgumentException(CalendarStrings.InvalidValueTypeForProperty);
                    }
                    this.WritePropertyValue((int)value, separator);
                    return;
                }
            }
            else if (calendarValueType <= CalendarValueType.Time)
            {
                if (calendarValueType != CalendarValueType.Text)
                {
                    if (calendarValueType != CalendarValueType.Time)
                    {
                        goto IL_276;
                    }
                    if (!(value is CalendarTime))
                    {
                        throw new ArgumentException(CalendarStrings.InvalidValueTypeForProperty);
                    }
                    this.WritePropertyValue((CalendarTime)value, separator);
                    return;
                }
            }
            else if (calendarValueType != CalendarValueType.Uri)
            {
                if (calendarValueType != CalendarValueType.UtcOffset)
                {
                    goto IL_276;
                }
                if (!(value is TimeSpan))
                {
                    throw new ArgumentException(CalendarStrings.InvalidValueTypeForProperty);
                }
                this.WritePropertyValue((TimeSpan)value, CalendarValueType.UtcOffset, separator);
                return;
            }
            string text = value as string;

            if (text == null)
            {
                throw new ArgumentException(CalendarStrings.InvalidValueTypeForProperty);
            }
            this.WritePropertyValue(text, separator);
            return;

IL_276:
            throw new InvalidDataException(CalendarStrings.InvalidValueTypeForProperty);
        }
Exemplo n.º 12
0
 // Token: 0x06000753 RID: 1875 RVA: 0x00028D07 File Offset: 0x00026F07
 public void WritePropertyValue(DateTime value, CalendarValueType valueType)
 {
     this.WritePropertyValue(value, valueType, CalendarValueSeparators.Comma);
 }