protected override ConsistencyCheckResult DetectInconsistencies() { RoleType checkingRole = (RoleType)(-1); UserObject checkingUser = null; ConsistencyCheckResult consistencyCheckResult = ConsistencyCheckResult.CreateInstance(base.Type, base.Description); try { Recurrence recurrence = null; Recurrence recurrence2 = null; if (base.Context.OrganizerItem != null && base.Context.OrganizerItem is CalendarItem) { checkingRole = RoleType.Organizer; checkingUser = base.Context.Organizer; recurrence = ((CalendarItem)base.Context.OrganizerItem).Recurrence; } if (base.Context.AttendeeItem != null && base.Context.AttendeeItem is CalendarItem) { checkingRole = RoleType.Attendee; checkingUser = base.Context.Attendee; recurrence2 = ((CalendarItem)base.Context.AttendeeItem).Recurrence; } consistencyCheckResult.ComparedRecurrenceBlobs = false; consistencyCheckResult.RecurrenceBlobComparison = true; if (recurrence != null) { checkingRole = (RoleType)(-1); checkingUser = null; if (recurrence2 != null) { consistencyCheckResult.ComparedRecurrenceBlobs = true; consistencyCheckResult.RecurrenceBlobComparison = recurrence.Equals(recurrence2); checkingRole = RoleType.Attendee; checkingUser = base.Context.Attendee; RecurrenceInfo recurrenceInfo = recurrence2.GetRecurrenceInfo(); this.DetectRecurrenceInfoInconsistencies(recurrenceInfo, consistencyCheckResult); base.Context.AttendeeRecurrence = recurrenceInfo; } else if (base.Context.AttendeeItem != null) { this.FailCheck(consistencyCheckResult, "Attendee's missing the recurrence in a recurring meeting.", RecurrenceInconsistencyType.MissingRecurrence, base.Context.OrganizerItem.StartTime); } checkingRole = RoleType.Organizer; checkingUser = base.Context.Organizer; RecurrenceInfo recurrenceInfo2 = recurrence.GetRecurrenceInfo(); this.DetectRecurrenceInfoInconsistencies(recurrenceInfo2, consistencyCheckResult); base.Context.OrganizerRecurrence = recurrenceInfo2; } else if (recurrence2 != null) { if (base.Context.OrganizerItem != null) { this.FailCheck(consistencyCheckResult, "A single meeting is recurring in the attendee's calendar.", RecurrenceInconsistencyType.ExtraRecurrence, base.Context.OrganizerItem.StartTime); } checkingRole = RoleType.Attendee; checkingUser = base.Context.Attendee; RecurrenceInfo recurrenceInfo3 = recurrence2.GetRecurrenceInfo(); this.DetectRecurrenceInfoInconsistencies(recurrenceInfo3, consistencyCheckResult); base.Context.AttendeeRecurrence = recurrenceInfo3; } } catch (RecurrenceFormatException exception) { this.FailCheck(consistencyCheckResult, checkingRole, checkingUser, exception); } catch (StorageTransientException exception2) { this.RegisterStorageException(consistencyCheckResult, exception2); } catch (StoragePermanentException exception3) { this.RegisterStorageException(consistencyCheckResult, exception3); } return(consistencyCheckResult); }