private Inconsistency GetAttendeeMissingItemInconsistency(CalendarValidationContext context, string fullDescription, ClientIntentFlags?inconsistencyIntent, ClientIntentFlags declineIntent, ClientIntentFlags deleteIntent) { Inconsistency inconsistency = null; if (ClientIntentQuery.CheckDesiredClientIntent(inconsistencyIntent, new ClientIntentFlags[] { declineIntent })) { inconsistency = ResponseInconsistency.CreateInstance(fullDescription, ResponseType.Decline, context.Attendee.ResponseType, ExDateTime.MinValue, context.Attendee.ReplyTime, context); inconsistency.Intent = inconsistencyIntent; } else if (ClientIntentQuery.CheckDesiredClientIntent(inconsistencyIntent, new ClientIntentFlags[] { deleteIntent })) { inconsistency = null; } else if (this.calendarIntent != null && this.calendarIntent.ItemVersion > 0) { inconsistency = MissingItemInconsistency.CreateAttendeeMissingItemInstance(fullDescription, inconsistencyIntent, new int?(this.calendarIntent.ItemVersion), context); inconsistency.Intent = inconsistencyIntent; } return(inconsistency); }
private Inconsistency GetAttendeeMissingItemInconsistency(CalendarValidationContext context, string fullDescription, ClientIntentQuery.QueryResult inconsistencyIntent, ClientIntentFlags declineIntent, ClientIntentFlags deleteIntent) { Inconsistency inconsistency = null; if (ClientIntentQuery.CheckDesiredClientIntent(inconsistencyIntent.Intent, new ClientIntentFlags[] { declineIntent })) { inconsistency = ResponseInconsistency.CreateInstance(fullDescription, ResponseType.Decline, context.Attendee.ResponseType, ExDateTime.MinValue, context.Attendee.ReplyTime, context); inconsistency.Intent = inconsistencyIntent.Intent; } else if (ClientIntentQuery.CheckDesiredClientIntent(inconsistencyIntent.Intent, new ClientIntentFlags[] { deleteIntent })) { inconsistency = null; } else if (inconsistencyIntent.SourceVersionId != null) { int?deletedItemVersion = null; using (CalendarItemBase calendarItemBase = CalendarItemBase.Bind(this.session, inconsistencyIntent.SourceVersionId)) { deletedItemVersion = calendarItemBase.GetValueAsNullable <int>(CalendarItemBaseSchema.ItemVersion); } if (deletedItemVersion != null) { inconsistency = MissingItemInconsistency.CreateAttendeeMissingItemInstance(fullDescription, inconsistencyIntent.Intent, deletedItemVersion, context); inconsistency.Intent = inconsistencyIntent.Intent; } } return(inconsistency); }
internal override Inconsistency GetInconsistency(CalendarValidationContext context, string fullDescription) { if (base.LoadInconsistency != null) { return(base.LoadInconsistency); } if (this.CalendarFolderId == null) { return(null); } bool isCleanGlobalObjectId = context.BaseItem.GlobalObjectId.IsCleanGlobalObjectId; Inconsistency inconsistency; if (context.OppositeRole == RoleType.Attendee) { ClientIntentQuery.QueryResult missingItemIntent = this.GetMissingItemIntent(context, isCleanGlobalObjectId); inconsistency = (isCleanGlobalObjectId ? this.GetAttendeeMissingItemInconsistency(context, fullDescription, missingItemIntent, ClientIntentFlags.RespondedDecline, ClientIntentFlags.DeletedWithNoResponse) : this.GetAttendeeMissingItemInconsistency(context, fullDescription, missingItemIntent, ClientIntentFlags.RespondedExceptionDecline, ClientIntentFlags.DeletedExceptionWithNoResponse)); } else { inconsistency = MissingItemInconsistency.CreateOrganizerMissingItemInstance(fullDescription, context); if (RumFactory.Instance.Policy.RepairMode == CalendarRepairType.ValidateOnly) { inconsistency.Intent = this.GetMissingItemIntent(context, isCleanGlobalObjectId).Intent; } } return(inconsistency); }
internal override Inconsistency GetInconsistency(CalendarValidationContext context, string fullDescription) { Inconsistency inconsistency = null; if (base.LoadInconsistency != null) { return(base.LoadInconsistency); } bool isCleanGlobalObjectId = context.BaseItem.GlobalObjectId.IsCleanGlobalObjectId; try { ClientIntentFlags?missingItemIntent = this.GetMissingItemIntent(context, isCleanGlobalObjectId); if (context.OppositeRole == RoleType.Attendee) { inconsistency = (isCleanGlobalObjectId ? this.GetAttendeeMissingItemInconsistency(context, fullDescription, missingItemIntent, ClientIntentFlags.RespondedDecline, ClientIntentFlags.DeletedWithNoResponse) : this.GetAttendeeMissingItemInconsistency(context, fullDescription, missingItemIntent, ClientIntentFlags.RespondedExceptionDecline, ClientIntentFlags.DeletedExceptionWithNoResponse)); } else { inconsistency = MissingItemInconsistency.CreateOrganizerMissingItemInstance(fullDescription, context); if (RumFactory.Instance.Policy.RepairMode == CalendarRepairType.ValidateOnly) { inconsistency.Intent = missingItemIntent; } } } catch (ProtocolViolationException exception) { this.HandleRemoteException(exception); } catch (SecurityException exception2) { this.HandleRemoteException(exception2); } catch (ArgumentException exception3) { this.HandleRemoteException(exception3); } catch (InvalidOperationException exception4) { this.HandleRemoteException(exception4); } catch (NotSupportedException exception5) { this.HandleRemoteException(exception5); } catch (XmlException exception6) { this.HandleRemoteException(exception6); } catch (XPathException exception7) { this.HandleRemoteException(exception7); } catch (SoapException exception8) { this.HandleRemoteException(exception8); } catch (IOException exception9) { this.HandleRemoteException(exception9); } return(inconsistency); }