internal override void ParseSharingMessageProvider(SharingContext context, SharingMessageProvider sharingMessageProvider)
 {
     if (!AddressBookEntryId.IsAddressBookEntryId(context.InitiatorEntryId))
     {
         ExTraceGlobals.SharingTracer.TraceError <string>((long)this.GetHashCode(), "{0}: InitiatorEntryId is invalid.", context.UserLegacyDN);
         throw new InvalidSharingDataException("InitiatorEntryId", HexConverter.ByteArrayToHexString(context.InitiatorEntryId));
     }
     if (!string.IsNullOrEmpty(sharingMessageProvider.FolderId))
     {
         try
         {
             context.FolderId = StoreObjectId.FromHexEntryId(sharingMessageProvider.FolderId, ObjectClass.GetObjectType(context.FolderClass));
         }
         catch (CorruptDataException)
         {
             ExTraceGlobals.SharingTracer.TraceError <string, string>((long)this.GetHashCode(), "{0}: FolderId is invalid: {1}", context.UserLegacyDN, sharingMessageProvider.FolderId);
             throw new InvalidSharingDataException("FolderId", sharingMessageProvider.FolderId);
         }
     }
     if (!string.IsNullOrEmpty(sharingMessageProvider.MailboxId))
     {
         byte[] array = HexConverter.HexStringToByteArray(sharingMessageProvider.MailboxId);
         if (StoreEntryId.TryParseStoreEntryIdMailboxDN(array) == null)
         {
             ExTraceGlobals.SharingTracer.TraceError <string, string>((long)this.GetHashCode(), "{0}: MailboxId is invalid: {1}", context.UserLegacyDN, sharingMessageProvider.MailboxId);
             throw new InvalidSharingDataException("MailboxId", sharingMessageProvider.MailboxId);
         }
         context.MailboxId = array;
     }
 }
        internal override void ParseSharingMessageProvider(SharingContext context, SharingMessageProvider sharingMessageProvider)
        {
            Uri uri = null;

            if (!PublishingUrl.IsAbsoluteUriString(sharingMessageProvider.BrowseUrl, out uri))
            {
                ExTraceGlobals.SharingTracer.TraceError <string, string>((long)this.GetHashCode(), "{0}: BrowseUrl is invalid: {1}", context.UserLegacyDN, sharingMessageProvider.BrowseUrl);
                throw new InvalidSharingDataException("BrowseUrl", sharingMessageProvider.BrowseUrl);
            }
            context.BrowseUrl = sharingMessageProvider.BrowseUrl;
            if (context.DataType == SharingDataType.Calendar)
            {
                if (string.IsNullOrEmpty(sharingMessageProvider.ICalUrl))
                {
                    ExTraceGlobals.SharingTracer.TraceError <string, string>((long)this.GetHashCode(), "{0}: ICalUrl is missing: {1}", context.UserLegacyDN, sharingMessageProvider.ICalUrl);
                    throw new InvalidSharingDataException("ICalUrl", string.Empty);
                }
                if (!PublishingUrl.IsAbsoluteUriString(sharingMessageProvider.ICalUrl, out uri))
                {
                    ExTraceGlobals.SharingTracer.TraceError <string, string>((long)this.GetHashCode(), "{0}: ICalUrl is invalid: {1}", context.UserLegacyDN, sharingMessageProvider.ICalUrl);
                    throw new InvalidSharingDataException("ICalUrl", sharingMessageProvider.ICalUrl);
                }
                context.ICalUrl = sharingMessageProvider.ICalUrl;
            }
        }
Ejemplo n.º 3
0
        internal SharingMessageProvider CreateSharingMessageProvider(SharingContext context)
        {
            Util.ThrowOnNullArgument(context, "context");
            SharingMessageProvider sharingMessageProvider = this.CreateSharingMessageProvider();

            this.sharingProviderHandler.FillSharingMessageProvider(context, sharingMessageProvider);
            return(sharingMessageProvider);
        }
 internal override void FillSharingMessageProvider(SharingContext context, SharingMessageProvider sharingMessageProvider)
 {
     sharingMessageProvider.BrowseUrl = context.BrowseUrl.ToString();
     if (context.ICalUrl != null)
     {
         sharingMessageProvider.ICalUrl = context.ICalUrl.ToString();
     }
 }
Ejemplo n.º 5
0
        private SharingMessageAction CreateRequestAction()
        {
            List <SharingMessageProvider> list = new List <SharingMessageProvider>(this.context.AvailableSharingProviders.Count);

            foreach (KeyValuePair <SharingProvider, CheckRecipientsResults> keyValuePair in this.context.AvailableSharingProviders)
            {
                SharingProvider        key   = keyValuePair.Key;
                CheckRecipientsResults value = keyValuePair.Value;
                if (key != SharingProvider.SharingProviderPublish && value != null && value.ValidRecipients != null && value.ValidRecipients.Length > 0)
                {
                    SharingMessageProvider sharingMessageProvider = key.CreateSharingMessageProvider();
                    sharingMessageProvider.TargetRecipients = value.TargetRecipients;
                    list.Add(sharingMessageProvider);
                }
            }
            return(new SharingMessageAction
            {
                Providers = list.ToArray()
            });
        }
Ejemplo n.º 6
0
        private SharingMessageAction CreateInvitationAction()
        {
            List <SharingMessageProvider> list = new List <SharingMessageProvider>(this.context.AvailableSharingProviders.Count);

            foreach (KeyValuePair <SharingProvider, CheckRecipientsResults> keyValuePair in this.context.AvailableSharingProviders)
            {
                SharingProvider        key   = keyValuePair.Key;
                CheckRecipientsResults value = keyValuePair.Value;
                if (value != null && value.ValidRecipients != null && value.ValidRecipients.Length > 0)
                {
                    SharingMessageProvider sharingMessageProvider = key.CreateSharingMessageProvider(this.context);
                    sharingMessageProvider.TargetRecipients = value.TargetRecipients;
                    list.Add(sharingMessageProvider);
                }
            }
            return(new SharingMessageAction
            {
                Title = (this.context.IsPrimary ? null : this.context.FolderName),
                Providers = list.ToArray()
            });
        }
Ejemplo n.º 7
0
 internal abstract void ParseSharingMessageProvider(SharingContext context, SharingMessageProvider sharingMessageProvider);
Ejemplo n.º 8
0
 internal void ParseSharingMessageProvider(SharingContext context, SharingMessageProvider sharingMessageProvider)
 {
     Util.ThrowOnNullArgument(context, "context");
     Util.ThrowOnNullArgument(sharingMessageProvider, "sharingMessageProvider");
     this.sharingProviderHandler.ParseSharingMessageProvider(context, sharingMessageProvider);
 }
 internal override void FillSharingMessageProvider(SharingContext context, SharingMessageProvider sharingMessageProvider)
 {
     sharingMessageProvider.FolderId  = context.FolderId.ToHexEntryId();
     sharingMessageProvider.MailboxId = HexConverter.ByteArrayToHexString(context.MailboxId);
 }
Ejemplo n.º 10
0
 internal override void ParseSharingMessageProvider(SharingContext context, SharingMessageProvider sharingMessageProvider)
 {
     context.FolderEwsId = sharingMessageProvider.FolderId;
     context.EncryptedSharedFolderDataCollection = sharingMessageProvider.EncryptedSharedFolderDataCollection;
 }
Ejemplo n.º 11
0
 internal override void FillSharingMessageProvider(SharingContext context, SharingMessageProvider sharingMessageProvider)
 {
     sharingMessageProvider.FolderId = context.FolderEwsId;
     sharingMessageProvider.EncryptedSharedFolderDataCollection = context.EncryptedSharedFolderDataCollection;
 }