public MeetingInviteWriter(MeetingRequest meetingRequest, UserContext userContext, bool isEmbeddedItem) : base(meetingRequest, userContext) { this.meetingRequest = meetingRequest; if (!isEmbeddedItem && !meetingRequest.IsDelegated()) { this.isOrganizer = base.ProcessMeetingMessage(meetingRequest, Utilities.IsItemInDefaultFolder(meetingRequest, DefaultFolderType.Inbox)); if (this.isOrganizer) { this.AttendeeResponseWell = new CalendarItemAttendeeResponseRecipientWell(userContext, base.CalendarItemBase); } } this.meetingMessageType = meetingRequest.MeetingRequestType; if (this.meetingMessageType != MeetingMessageType.Outdated) { if (this.isOrganizer) { this.meetingMessageType = MeetingMessageType.InformationalUpdate; } else if (this.meetingMessageType == MeetingMessageType.InformationalUpdate && base.CalendarItemBase != null && base.CalendarItemBase.ResponseType == ResponseType.NotResponded) { this.meetingMessageType = MeetingMessageType.FullUpdate; } } this.meetingRequestRecipientWell = new MeetingRequestRecipientWell(userContext, meetingRequest); }
public MeetingInviteWriter(MeetingRequest meetingRequest, UserContext userContext, string toolbarId, bool isPreviewForm, bool isInDeletedItems, bool isEmbeddedItem, bool isInJunkEmailFolder, bool isSuspectedPhishingItem, bool isLinkEnabled) : base(meetingRequest, userContext, isPreviewForm, isInDeletedItems, isEmbeddedItem, isInJunkEmailFolder, isSuspectedPhishingItem, isLinkEnabled) { this.meetingRequest = meetingRequest; this.isDelegated = meetingRequest.IsDelegated(); if (toolbarId == null) { toolbarId = "mpToolbar"; } if (!Utilities.IsPublic(meetingRequest) && !this.IsDraft && !isEmbeddedItem) { this.isOrganizer = base.ProcessMeetingMessage(meetingRequest, Utilities.IsItemInDefaultFolder(meetingRequest, DefaultFolderType.Inbox)); if (this.isOrganizer) { this.AttendeeResponseWell = new CalendarItemAttendeeResponseRecipientWell(this.CalendarItemBase); } } this.meetingMessageType = meetingRequest.MeetingRequestType; if (!this.IsDraft) { if (this.meetingMessageType == MeetingMessageType.Outdated) { this.infobarResponseString = new Strings.IDs?(1771878760); this.meetingMessageType = MeetingMessageType.Outdated; } else if (this.isOrganizer) { this.infobarResponseString = new Strings.IDs?(247559721); this.meetingMessageType = MeetingMessageType.InformationalUpdate; } else if (this.meetingMessageType == MeetingMessageType.InformationalUpdate) { if (this.CalendarItemBase != null && this.CalendarItemBase.ResponseType != ResponseType.NotResponded) { this.infobarResponseString = new Strings.IDs?(689325109); } else { this.meetingMessageType = MeetingMessageType.FullUpdate; } } } InfobarMessageBuilder.AddFlag(this.FormInfobar, meetingRequest, userContext); this.meetingRequestRecipientWell = new MeetingRequestRecipientWell(meetingRequest); this.toolbar = new EditMeetingInviteToolbar(toolbarId, meetingRequest.IsResponseRequested, Utilities.IsInArchiveMailbox(meetingRequest), this.meetingMessageType); this.toolbar.ToolbarType = ToolbarType.Preview; }
// Token: 0x06000CEA RID: 3306 RVA: 0x00045C70 File Offset: 0x00043E70 private bool LegacyRespond(StoreObjectId itemId, string requestId, string userResponse, bool usingLongId) { MeetingRequest meetingRequest = null; CalendarItemBase calendarItemBase = null; StoreObjectId storeObjectId = null; StoreObjectId storeObjectId2 = null; Item item = null; try { base.ProtocolLogger.IncrementValue(ProtocolLoggerData.MRItems); try { item = Item.Bind(base.MailboxSession, itemId, null); } catch (ObjectNotFoundException) { this.AppendNonSuccessXmlNode(requestId, StatusCode.Sync_ProtocolVersionMismatch, userResponse, "Cannot find the meeting-request as specified in the reqest.", usingLongId); base.ProtocolLogger.SetValue(ProtocolLoggerData.Error, "ItemNotFound"); return(false); } meetingRequest = (item as MeetingRequest); if (base.Version >= 141 && meetingRequest == null) { calendarItemBase = (item as CalendarItemBase); if (calendarItemBase != null) { calendarItemBase.OpenAsReadWrite(); } } if (meetingRequest == null && calendarItemBase == null) { this.AppendNonSuccessXmlNode(requestId, StatusCode.Sync_ProtocolVersionMismatch, userResponse, "The item is not meeting-request or calendar item.", usingLongId); base.ProtocolLogger.SetValue(ProtocolLoggerData.Error, "ItemNotValid"); return(false); } item = null; if (meetingRequest != null) { if (meetingRequest.IsOrganizer()) { this.AppendNonSuccessXmlNode(requestId, StatusCode.Sync_ProtocolError, userResponse, "The organizer of this meeting request is the mailbox owner. Checking meetingRequest.", usingLongId); base.ProtocolLogger.SetValue(ProtocolLoggerData.Error, "MRIsOrganizer"); return(false); } if (meetingRequest.IsDelegated()) { this.AppendNonSuccessXmlNode(requestId, StatusCode.Sync_ProtocolError, userResponse, "Cannot respond to a delegated meeting request. Use Outlook", usingLongId); base.ProtocolLogger.SetValue(ProtocolLoggerData.Error, "MRIsDelegated"); return(false); } if (meetingRequest.IsOutOfDate()) { this.AppendNonSuccessXmlNode(requestId, StatusCode.Sync_ProtocolError, userResponse, "Cannot respond to a OutOfDated meeting request.", usingLongId); base.ProtocolLogger.SetValue(ProtocolLoggerData.Error, "MRIsOutOfDate"); return(false); } meetingRequest.OpenAsReadWrite(); storeObjectId = meetingRequest.Id.ObjectId; calendarItemBase = meetingRequest.UpdateCalendarItem(false); } if (calendarItemBase == null) { base.ProtocolLogger.SetValue(ProtocolLoggerData.Error, "NullCalItemInMRCmd"); throw new AirSyncPermanentException(HttpStatusCode.InternalServerError, StatusCode.ServerError, null, false); } if (calendarItemBase.IsOrganizer()) { this.AppendNonSuccessXmlNode(requestId, StatusCode.Sync_ProtocolError, userResponse, "The organizer of this meeting request is the mailbox owner. Checking calendarItem.", usingLongId); base.ProtocolLogger.SetValue(ProtocolLoggerData.Error, "CalIsOrganizer"); return(false); } if (calendarItemBase.IsCancelled) { this.AppendNonSuccessXmlNode(requestId, StatusCode.Sync_ProtocolError, userResponse, "Cannot respond to a canceled meeting.", usingLongId); base.ProtocolLogger.SetValue(ProtocolLoggerData.Error, "CalIsCancelled"); return(false); } if (userResponse != null) { ResponseType responseType; if (!(userResponse == "1")) { if (!(userResponse == "2")) { if (!(userResponse == "3")) { goto IL_22F; } responseType = ResponseType.Decline; } else { responseType = ResponseType.Tentative; } } else { responseType = ResponseType.Accept; } try { using (calendarItemBase.RespondToMeetingRequest(responseType)) { } } catch (SaveConflictException ex) { this.AppendNonSuccessXmlNode(requestId, StatusCode.Sync_ProtocolError, userResponse, "A conflict calendar item has been detected: " + ex.Message, usingLongId); base.ProtocolLogger.SetValue(ProtocolLoggerData.Error, "SavedWithConflicts"); return(false); } calendarItemBase.Load(); if (meetingRequest != null) { meetingRequest.Save(SaveMode.ResolveConflicts); } if (responseType != ResponseType.Decline) { if (calendarItemBase is CalendarItemOccurrence) { storeObjectId2 = ((CalendarItemOccurrence)calendarItemBase).MasterId.ObjectId; } else { storeObjectId2 = calendarItemBase.Id.ObjectId; } } else { base.MailboxSession.Delete(DeleteItemFlags.MoveToDeletedItems, new StoreId[] { calendarItemBase.Id }); } calendarItemBase.Dispose(); calendarItemBase = null; if (storeObjectId != null) { base.MailboxSession.Delete(DeleteItemFlags.MoveToDeletedItems, new StoreId[] { storeObjectId }); } goto IL_339; } IL_22F: throw new ArgumentException(string.Format("Unexpected userResponse value \"{0}\"", userResponse)); } finally { if (calendarItemBase != null) { calendarItemBase.Dispose(); } if (meetingRequest != null) { meetingRequest.Dispose(); } if (item != null) { item.Dispose(); } } IL_339: string calendarId = null; if (storeObjectId2 != null) { MailboxSyncItemId mailboxSyncItemId = MailboxSyncItemId.CreateForNewItem(storeObjectId2); if (this.CalendarItemIdMapping.Contains(mailboxSyncItemId)) { calendarId = this.CalendarItemIdMapping[mailboxSyncItemId]; } else { calendarId = this.CalendarItemIdMapping.Add(mailboxSyncItemId); this.calendarSyncStateChangedFlag = true; } } this.AppendXmlNode(requestId, StatusCode.Success, calendarId, userResponse, usingLongId); return(true); }
// Token: 0x060013E0 RID: 5088 RVA: 0x00072734 File Offset: 0x00070934 public IEnumerator <Attachment12Data> GetEnumerator() { Item message = base.XsoItem as Item; Attachment12Data attachmentData = null; if (message == null) { throw new UnexpectedTypeException("Item", base.XsoItem); } MeetingRequest meetingRequest = base.XsoItem as MeetingRequest; if (meetingRequest == null || !meetingRequest.IsDelegated()) { string idbase = null; if (this.idmapping != null) { idbase = this.idmapping[MailboxSyncItemId.CreateForNewItem(message.Id.ObjectId)]; } if (idbase == null) { idbase = message.Id.ObjectId.ToBase64String(); } if (message is MessageItem && ((MessageItem)message).IsRestricted && !BodyConversionUtilities.IsMessageRestrictedAndDecoded(message) && !BodyConversionUtilities.IsIRMFailedToDecode(message)) { object prop = message.TryGetProperty(MessageItemSchema.DRMLicense); if (prop is byte[][]) { byte[][] license = (byte[][])prop; if (license.Length > 0) { attachmentData = new Attachment14Data(); attachmentData.DisplayName = "message.rpmsg.license"; attachmentData.Method = 1; attachmentData.EstimatedDataSize = (long)license[0].Length; attachmentData.IsInline = false; attachmentData.FileReference = HttpUtility.UrlEncode(idbase + ":DRMLicense"); AirSyncDiagnostics.TraceDebug(ExTraceGlobals.XsoTracer, this, "Add DRM license as attachment, message is MessageItem {0}, message.IsRestricted {1}, IsDecoded {2}, FailedToDecode {3}", new object[] { message is MessageItem, ((MessageItem)message).IsRestricted, BodyConversionUtilities.IsMessageRestrictedAndDecoded(message), BodyConversionUtilities.IsIRMFailedToDecode(message) }); yield return(attachmentData); } else { AirSyncDiagnostics.TraceDebug <int>(ExTraceGlobals.XsoTracer, this, "The license property on the DRM message is incorrect. Length = {0}", license.Length); } } else { AirSyncDiagnostics.TraceDebug(ExTraceGlobals.XsoTracer, this, "The license property on the DRM message is incorrect. prop = {0}", new object[] { prop }); } } AttachmentCollection attachmentCollection = null; if (BodyConversionUtilities.IsMessageRestrictedAndDecoded(message)) { attachmentCollection = ((RightsManagedMessageItem)message).ProtectedAttachmentCollection; } else { if (BodyConversionUtilities.IsIRMFailedToDecode(message)) { goto IL_3FC; } attachmentCollection = message.AttachmentCollection; } int index = -1; foreach (AttachmentHandle handle in attachmentCollection) { using (Attachment attachment = attachmentCollection.Open(handle)) { if (BodyUtility.IsClearSigned(message) && (string.Equals(attachment.FileName, "smime.p7m", StringComparison.OrdinalIgnoreCase) || string.Equals(attachment.ContentType, "multipart/signed", StringComparison.OrdinalIgnoreCase))) { continue; } attachmentData = this.GetAttachmentData(message, attachment, idbase, ref index); } if (attachmentData != null) { yield return(attachmentData); } } } IL_3FC: yield break; }