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()); }
// 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); } }
// 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"); }
// 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); }
// 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); }
// 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)); }
// Token: 0x0600071A RID: 1818 RVA: 0x00028374 File Offset: 0x00026574 public TimeSpan ReadValueAsTimeSpan(CalendarValueType valueType) { return(this.ReadValueAsTimeSpan(valueType, null)); }
// Token: 0x06000719 RID: 1817 RVA: 0x00028365 File Offset: 0x00026565 internal TimeSpan ReadValueAsTimeSpan(CalendarValueType valueType, CalendarValueSeparators expectedSeparators) { return(this.ReadValueAsTimeSpan(valueType, new CalendarValueSeparators?(expectedSeparators))); }
// Token: 0x06000714 RID: 1812 RVA: 0x00028244 File Offset: 0x00026444 public DateTime ReadValueAsDateTime(CalendarValueType valueType) { return(this.ReadValueAsDateTime(valueType, null)); }
// Token: 0x06000713 RID: 1811 RVA: 0x00028233 File Offset: 0x00026433 internal DateTime ReadValueAsDateTime(CalendarValueType valueType, CalendarValueSeparators expectedSeparators) { return(this.ReadValueAsDateTime(valueType, new CalendarValueSeparators?(expectedSeparators))); }
// 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); }
// Token: 0x06000753 RID: 1875 RVA: 0x00028D07 File Offset: 0x00026F07 public void WritePropertyValue(DateTime value, CalendarValueType valueType) { this.WritePropertyValue(value, valueType, CalendarValueSeparators.Comma); }