public RecurrencePattern ConvertEntitiesToStorage(RelativeMonthlyRecurrencePattern value) { if (value != null) { return(new MonthlyThRecurrencePattern(this.dayOfWeekConverter.Convert(value.DaysOfWeek), this.weekIndexConverter.Convert(value.Index), value.Interval)); } return(null); }
// Token: 0x06001219 RID: 4633 RVA: 0x000624FC File Offset: 0x000606FC private static void PopulateRecurrencePattern(RecurrenceData recurrenceData, RecurrencePattern pattern) { recurrenceData.Interval = (ushort)pattern.Interval; DailyRecurrencePattern dailyRecurrencePattern = pattern as DailyRecurrencePattern; if (dailyRecurrencePattern != null) { recurrenceData.Type = RecurrenceData.RecurrenceType.Daily; return; } WeeklyRecurrencePattern weeklyRecurrencePattern = pattern as WeeklyRecurrencePattern; if (weeklyRecurrencePattern != null) { recurrenceData.Type = RecurrenceData.RecurrenceType.Weekly; recurrenceData.DaysOfWeek = weeklyRecurrencePattern.DaysOfWeek; return; } AbsoluteMonthlyRecurrencePattern absoluteMonthlyRecurrencePattern = pattern as AbsoluteMonthlyRecurrencePattern; if (absoluteMonthlyRecurrencePattern != null) { recurrenceData.Type = RecurrenceData.RecurrenceType.Monthly; recurrenceData.DayOfMonth = (byte)absoluteMonthlyRecurrencePattern.DayOfMonth; return; } RelativeMonthlyRecurrencePattern relativeMonthlyRecurrencePattern = pattern as RelativeMonthlyRecurrencePattern; if (relativeMonthlyRecurrencePattern != null) { recurrenceData.Type = RecurrenceData.RecurrenceType.MonthlyTh; recurrenceData.WeekIndex = relativeMonthlyRecurrencePattern.Index; recurrenceData.DaysOfWeek = relativeMonthlyRecurrencePattern.DaysOfWeek; return; } AbsoluteYearlyRecurrencePattern absoluteYearlyRecurrencePattern = pattern as AbsoluteYearlyRecurrencePattern; if (absoluteYearlyRecurrencePattern != null) { recurrenceData.Type = RecurrenceData.RecurrenceType.Yearly; recurrenceData.DayOfMonth = (byte)absoluteYearlyRecurrencePattern.DayOfMonth; recurrenceData.MonthOfYear = (byte)absoluteYearlyRecurrencePattern.Month; return; } RelativeYearlyRecurrencePattern relativeYearlyRecurrencePattern = pattern as RelativeYearlyRecurrencePattern; if (relativeYearlyRecurrencePattern != null) { recurrenceData.Type = RecurrenceData.RecurrenceType.YearlyTh; recurrenceData.WeekIndex = relativeYearlyRecurrencePattern.Index; recurrenceData.DaysOfWeek = relativeYearlyRecurrencePattern.DaysOfWeek; recurrenceData.MonthOfYear = (byte)relativeYearlyRecurrencePattern.Month; return; } throw new ConversionException("Unexpected Recurrence Pattern"); }
// Token: 0x06001217 RID: 4631 RVA: 0x000622F8 File Offset: 0x000604F8 private static RecurrencePattern CreateRecurrencePattern(RecurrenceData recurrenceData) { RecurrencePattern recurrencePattern; switch (recurrenceData.Type) { case RecurrenceData.RecurrenceType.Daily: if (recurrenceData.SubProperties["DayOfWeek"] != null) { recurrencePattern = new WeeklyRecurrencePattern(); ((WeeklyRecurrencePattern)recurrencePattern).DaysOfWeek = recurrenceData.DaysOfWeek; goto IL_15E; } recurrencePattern = new DailyRecurrencePattern(); goto IL_15E; case RecurrenceData.RecurrenceType.Weekly: recurrencePattern = new WeeklyRecurrencePattern(); ((WeeklyRecurrencePattern)recurrencePattern).DaysOfWeek = recurrenceData.DaysOfWeek; goto IL_15E; case RecurrenceData.RecurrenceType.Monthly: recurrencePattern = new AbsoluteMonthlyRecurrencePattern(); ((AbsoluteMonthlyRecurrencePattern)recurrencePattern).DayOfMonth = (int)recurrenceData.DayOfMonth; goto IL_15E; case RecurrenceData.RecurrenceType.MonthlyTh: recurrencePattern = new RelativeMonthlyRecurrencePattern(); ((RelativeMonthlyRecurrencePattern)recurrencePattern).DaysOfWeek = recurrenceData.DaysOfWeek; ((RelativeMonthlyRecurrencePattern)recurrencePattern).Index = recurrenceData.WeekIndex; goto IL_15E; case RecurrenceData.RecurrenceType.Yearly: recurrencePattern = new AbsoluteYearlyRecurrencePattern(); ((AbsoluteYearlyRecurrencePattern)recurrencePattern).DayOfMonth = (int)recurrenceData.DayOfMonth; ((AbsoluteYearlyRecurrencePattern)recurrencePattern).Month = (int)recurrenceData.MonthOfYear; goto IL_15E; case RecurrenceData.RecurrenceType.YearlyTh: recurrencePattern = new RelativeYearlyRecurrencePattern(); ((RelativeYearlyRecurrencePattern)recurrencePattern).DaysOfWeek = recurrenceData.DaysOfWeek; ((RelativeYearlyRecurrencePattern)recurrencePattern).Index = recurrenceData.WeekIndex; ((RelativeYearlyRecurrencePattern)recurrencePattern).Month = (int)recurrenceData.MonthOfYear; goto IL_15E; } throw new ConversionException(string.Format(CultureInfo.InvariantCulture, "Unexpected recurrence type {0}, should have been caught in a higher validation layer", new object[] { recurrenceData.Type })); IL_15E: recurrencePattern.Interval = (int)(recurrenceData.HasInterval() ? recurrenceData.Interval : 1); return(recurrencePattern); }
public static Microsoft.Exchange.Connections.Eas.Model.Request.Calendar.Recurrence GetRecurrenceData(PatternedRecurrence recurrence) { if (recurrence == null) { return(null); } Microsoft.Exchange.Connections.Eas.Model.Request.Calendar.Recurrence recurrence2 = new Microsoft.Exchange.Connections.Eas.Model.Request.Calendar.Recurrence(); recurrence2.Interval = new ushort?((ushort)recurrence.Pattern.Interval); RecurrencePatternType type = recurrence.Pattern.Type; switch (type) { case RecurrencePatternType.Daily: { DailyRecurrencePattern dailyRecurrencePattern = (DailyRecurrencePattern)recurrence.Pattern; recurrence2.Type = 0; break; } case RecurrencePatternType.Weekly: { WeeklyRecurrencePattern weeklyRecurrencePattern = (WeeklyRecurrencePattern)recurrence.Pattern; recurrence2.Type = 1; recurrence2.DayOfWeek = new ushort?(SyncCalendarUtils.GetDayOfWeekValue(weeklyRecurrencePattern.DaysOfWeek)); break; } case RecurrencePatternType.AbsoluteMonthly: { AbsoluteMonthlyRecurrencePattern absoluteMonthlyRecurrencePattern = (AbsoluteMonthlyRecurrencePattern)recurrence.Pattern; recurrence2.Type = 2; recurrence2.DayOfMonth = new byte?((byte)absoluteMonthlyRecurrencePattern.DayOfMonth); break; } case RecurrencePatternType.RelativeMonthly: { RelativeMonthlyRecurrencePattern relativeMonthlyRecurrencePattern = (RelativeMonthlyRecurrencePattern)recurrence.Pattern; recurrence2.Type = 3; recurrence2.DayOfWeek = new ushort?(SyncCalendarUtils.GetDayOfWeekValue(relativeMonthlyRecurrencePattern.DaysOfWeek)); recurrence2.WeekOfMonth = new byte?((byte)relativeMonthlyRecurrencePattern.Index); break; } case RecurrencePatternType.AbsoluteYearly: { AbsoluteYearlyRecurrencePattern absoluteYearlyRecurrencePattern = (AbsoluteYearlyRecurrencePattern)recurrence.Pattern; recurrence2.Type = 5; recurrence2.DayOfMonth = new byte?((byte)absoluteYearlyRecurrencePattern.DayOfMonth); recurrence2.MonthOfYear = new byte?((byte)absoluteYearlyRecurrencePattern.Month); break; } case RecurrencePatternType.RelativeYearly: { RelativeYearlyRecurrencePattern relativeYearlyRecurrencePattern = (RelativeYearlyRecurrencePattern)recurrence.Pattern; recurrence2.Type = 6; recurrence2.DayOfWeek = new ushort?(SyncCalendarUtils.GetDayOfWeekValue(relativeYearlyRecurrencePattern.DaysOfWeek)); recurrence2.WeekOfMonth = new byte?((byte)relativeYearlyRecurrencePattern.Index); recurrence2.MonthOfYear = new byte?((byte)relativeYearlyRecurrencePattern.Month); break; } default: throw new EasSyncFailedPermanentException("Invalid recurrence type: " + type); } RecurrenceRangeType type2 = recurrence.Range.Type; switch (type2) { case RecurrenceRangeType.EndDate: { EndDateRecurrenceRange endDateRecurrenceRange = (EndDateRecurrenceRange)recurrence.Range; recurrence2.Until = SyncCalendarUtils.ToStringDateTime(endDateRecurrenceRange.EndDate); break; } case RecurrenceRangeType.NoEnd: break; case RecurrenceRangeType.Numbered: { NumberedRecurrenceRange numberedRecurrenceRange = (NumberedRecurrenceRange)recurrence.Range; recurrence2.Occurrences = new ushort?((ushort)numberedRecurrenceRange.NumberOfOccurrences); break; } default: throw new EasSyncFailedPermanentException("Invalid recurrence range type: {0}" + type2); } return(recurrence2); }