public static SharingMessageItem CreateWithSpecficProvider(MailboxSession session, StoreId destFolderId, StoreId folderIdToShare, SharingProvider provider, bool force)
        {
            if (provider == null)
            {
                throw new ArgumentNullException("provider");
            }
            SharingMessageItem sharingMessageItem = SharingMessageItem.InternalCreate(session, destFolderId, folderIdToShare, provider);

            if (force)
            {
                sharingMessageItem.ForceSharingProvider = provider;
            }
            return(sharingMessageItem);
        }
        private SharingMessageItem CreateRequestResponseMessage(SharingResponseType responseType, StoreId destFolderId)
        {
            if (base.IsDraft)
            {
                throw new InvalidOperationException("Cannot response on draft message.");
            }
            if (!this.SharingMessageType.IsRequest)
            {
                throw new InvalidOperationException("Only can response to a request message.");
            }
            StoreId            defaultFolderId    = this.MailboxSession.GetDefaultFolderId(this.SharedFolderType);
            SharingMessageItem sharingMessageItem = SharingMessageItem.InternalCreate(this.MailboxSession, destFolderId, defaultFolderId, this.GetTargetSharingProvider());

            sharingMessageItem.SharingMessageType = SharingMessageItem.GetMessageTypeFromResponseType(responseType);
            sharingMessageItem.Recipients.Add(base.From);
            sharingMessageItem[SharingMessageItemSchema.SharingOriginalMessageEntryId] = HexConverter.HexStringToByteArray(base.StoreObjectId.ToHexEntryId());
            sharingMessageItem[InternalSchema.NormalizedSubject] = this[InternalSchema.NormalizedSubject];
            sharingMessageItem[InternalSchema.SubjectPrefix]     = SharingMessageItem.GetSubjectPrefixFromResponseType(responseType).ToString(this.MailboxSession.InternalPreferedCulture);
            return(sharingMessageItem);
        }
 public static SharingMessageItem CreateForPublishing(MailboxSession session, StoreId destFolderId, StoreId folderIdToShare)
 {
     return(SharingMessageItem.InternalCreate(session, destFolderId, folderIdToShare, SharingProvider.SharingProviderPublish));
 }
 public static SharingMessageItem Create(MailboxSession session, StoreId destFolderId, StoreId folderIdToShare)
 {
     return(SharingMessageItem.InternalCreate(session, destFolderId, folderIdToShare, null));
 }