private MeetingInquiryAction TryRepairMissingItem(CalendarVersionStoreGateway cvsGateway, byte[] calendarFolderId) { MeetingInquiryAction result; MeetingInquiryMessage.WouldTryToRepairIfMissing(cvsGateway, this.GlobalObjectId, this.MailboxSession, this, true, calendarFolderId, out result); return(result); }
public new static MeetingInquiryMessage Bind(StoreSession session, StoreId id, ICollection <PropertyDefinition> propsToReturn) { MeetingInquiryMessage meetingInquiryMessage = ItemBuilder.ItemBind <MeetingInquiryMessage>(session, id, MeetingInquiryMessageSchema.Instance, propsToReturn); meetingInquiryMessage.LocationIdentifierHelperInstance.SetLocationIdentifier(55575U, LastChangeAction.Bind); return(meetingInquiryMessage); }
private static bool WouldTryToRepairIfMissing(CalendarVersionStoreGateway cvsGateway, GlobalObjectId globalObjectId, MailboxSession session, MeetingInquiryMessage message, bool performRepair, byte[] calendarFolderId, out MeetingInquiryAction predictedAction) { VersionedId versionedId; bool result; if (MeetingInquiryMessage.TryGetCancelledVersionIdFromCvs(cvsGateway, globalObjectId, session, calendarFolderId, out versionedId)) { if (performRepair) { message.LocationIdentifierHelperInstance.SetLocationIdentifier(47383U, LastChangeAction.SendMeetingCancellations); message.SendCancellationBasedOnFoundIntent(versionedId); } predictedAction = MeetingInquiryAction.SendCancellation; result = true; } else { if (versionedId != null) { using (CalendarItemBase calendarItemBase = CalendarItemBase.Bind(session, versionedId)) { predictedAction = MeetingInquiryMessage.GetReviveAction(cvsGateway, session, calendarItemBase); if (predictedAction == MeetingInquiryAction.ReviveMeeting) { if (performRepair) { predictedAction = message.TryReviveMeeting(calendarItemBase); } result = true; } else { result = false; } return(result); } } ExTraceGlobals.MeetingMessageTracer.TraceDebug <string, GlobalObjectId>((long)session.GetHashCode(), "Storage.MeetingInquiryMessage::Process. Couldn't find deletion on mailbox {0}. Skipping GOID {1}", session.DisplayName, globalObjectId); predictedAction = MeetingInquiryAction.DeletedVersionNotFound; result = false; } return(result); }
private static MeetingInquiryAction GetReviveAction(CalendarVersionStoreGateway cvsGateway, MailboxSession session, CalendarItemBase deletedVersion) { MeetingInquiryAction result; if (deletedVersion == null) { result = MeetingInquiryAction.DeletedVersionNotFound; } else { bool flag = false; try { if (session.Capabilities.CanHaveDelegateUsers) { DelegateUserCollection delegateUserCollection = new DelegateUserCollection(session); flag = (delegateUserCollection.Count > 0); } } catch (DelegateUserNoFreeBusyFolderException) { ExTraceGlobals.MeetingMessageTracer.Information((long)session.GetHashCode(), "Storage.MeetingInquiryMessage.GetReviveAction: NoFreeBusyData Folder, failing to get delegate rule type."); } catch (ObjectNotFoundException) { ExTraceGlobals.MeetingMessageTracer.Information((long)session.GetHashCode(), "Storage.MeetingInquiryMessage.GetReviveAction: No delegates found, failing to get delegate rule type."); } if (!flag) { result = (MeetingInquiryMessage.PairWithCancellation(cvsGateway, deletedVersion, session) ? MeetingInquiryAction.PairedCancellationFound : MeetingInquiryAction.ReviveMeeting); } else { ExTraceGlobals.MeetingMessageTracer.TraceDebug <string, GlobalObjectId>((long)session.GetHashCode(), "Storage.MeetingInquiryMessage::GetReviveAction. Mailbox {0} has delegates so we can't get the cancellation from version store. Skipping GOID {1}", session.DisplayName, deletedVersion.GlobalObjectId); result = MeetingInquiryAction.HasDelegates; } } return(result); }
public static MeetingInquiryMessage Create(MailboxSession session, StoreId parentFolderId, RumInfo rumInfo) { MeetingInquiryMessage meetingInquiryMessage = null; bool flag = false; try { meetingInquiryMessage = ItemBuilder.CreateNewItem <MeetingInquiryMessage>(session, parentFolderId, ItemCreateInfo.MeetingInquiryInfo); meetingInquiryMessage.LocationIdentifierHelperInstance.SetLocationIdentifier(39191U, LastChangeAction.Create); meetingInquiryMessage[StoreObjectSchema.ItemClass] = "IPM.Schedule.Inquiry"; RumDecorator rumDecorator = RumDecorator.CreateInstance(rumInfo); rumDecorator.AdjustRumMessage(meetingInquiryMessage.MailboxSession, meetingInquiryMessage, rumInfo, null, false); flag = true; } finally { if (!flag && meetingInquiryMessage != null) { meetingInquiryMessage.Dispose(); } } return(meetingInquiryMessage); }
public new static MeetingInquiryMessage Bind(StoreSession session, StoreId id) { return(MeetingInquiryMessage.Bind(session, id, null)); }
public static bool WouldTryToRepairIfMissing(CalendarVersionStoreGateway cvsGateway, GlobalObjectId globalObjectId, MailboxSession session, byte[] calendarFolderId, out MeetingInquiryAction predictedAction) { return(MeetingInquiryMessage.WouldTryToRepairIfMissing(cvsGateway, globalObjectId, session, null, false, calendarFolderId, out predictedAction)); }