public override MessageItem CreateForward(MailboxSession session, StoreId parentFolderId, ReplyForwardConfiguration configuration) { this.CheckDisposed("CreateForward"); ExTraceGlobals.MeetingMessageTracer.Information <GlobalObjectId>((long)this.GetHashCode(), "Storage.MeetingMessage.CreateForward: GOID={0}", this.GlobalObjectId); Util.ThrowOnNullArgument(session, "session"); Util.ThrowOnNullArgument(parentFolderId, "parentFolderId"); Util.ThrowOnNullArgument(configuration, "configuration"); MeetingRequest meetingRequest = null; bool flag = false; MessageItem result; try { meetingRequest = (base.IsSeriesMessage ? MeetingRequest.CreateMeetingRequestSeries(session) : MeetingRequest.CreateMeetingRequest(session)); ForwardCreation forwardCreation = new ForwardCreation(this, meetingRequest, configuration); forwardCreation.PopulateProperties(); meetingRequest.AdjustAppointmentStateFlagsForForward(); List <BlobRecipient> mergedRecipientList = this.GetMergedRecipientList(); meetingRequest.SetUnsendableRecipients(mergedRecipientList); base.LocationIdentifierHelperInstance.SetLocationIdentifier(42485U, LastChangeAction.CreateForward); flag = true; result = meetingRequest; } finally { if (!flag && meetingRequest != null) { meetingRequest.Dispose(); meetingRequest = null; } } return(result); }
protected override MeetingRequest CreateNewMeetingRequest(MailboxSession mailboxSession) { return(MeetingRequest.CreateMeetingRequestSeries(mailboxSession)); }