Пример #1
0
        private CheckRecipientsResults CheckRecipients()
        {
            List <string> list  = new List <string>(base.Recipients.Count);
            List <string> list2 = new List <string>(base.Recipients.Count);

            foreach (Recipient recipient in base.Recipients)
            {
                string valueOrDefault = recipient.GetValueOrDefault <string>(ParticipantSchema.SmtpAddress, string.Empty);
                if (!string.IsNullOrEmpty(valueOrDefault))
                {
                    list2.Add(valueOrDefault);
                }
                else
                {
                    list.Add(recipient.Participant.EmailAddress);
                }
            }
            List <ValidRecipient> list3 = new List <ValidRecipient>(list2.Count);

            string[] array = list2.ToArray();
            List <SharingProvider> list4 = new List <SharingProvider>(this.SharingContext.AvailableSharingProviders.Keys);

            foreach (SharingProvider sharingProvider in list4)
            {
                if (array == null || array.Length == 0)
                {
                    break;
                }
                CheckRecipientsResults checkRecipientsResults;
                if (this.ForceSharingProvider != null)
                {
                    if (sharingProvider == this.ForceSharingProvider)
                    {
                        checkRecipientsResults = new CheckRecipientsResults(ValidRecipient.ConvertFromStringArray(array));
                    }
                    else
                    {
                        checkRecipientsResults = new CheckRecipientsResults(array);
                    }
                    this.SharingContext.AvailableSharingProviders[sharingProvider] = checkRecipientsResults;
                }
                else
                {
                    checkRecipientsResults = sharingProvider.CheckRecipients(this.MailboxOwner, this.SharingContext, array);
                }
                list3.AddRange(checkRecipientsResults.ValidRecipients);
                array = checkRecipientsResults.InvalidRecipients;
            }
            list.AddRange(array);
            return(new CheckRecipientsResults(list3.ToArray(), list.ToArray()));
        }
Пример #2
0
 private void ReadActionFromMetadataXml(SharingMessageAction action)
 {
     if (action != null)
     {
         this.context.IsPrimary = string.IsNullOrEmpty(action.Title);
         if (!this.context.IsPrimary)
         {
             this.context.FolderName = action.Title;
         }
         foreach (SharingMessageProvider sharingMessageProvider in action.Providers)
         {
             string[] recipients = sharingMessageProvider.TargetRecipients.Split(new char[]
             {
                 ';'
             });
             SharingProvider sharingProvider = SharingProvider.FromExternalName(sharingMessageProvider.Type);
             if (sharingProvider != null)
             {
                 sharingProvider.ParseSharingMessageProvider(this.context, sharingMessageProvider);
                 this.context.AvailableSharingProviders.Add(sharingProvider, new CheckRecipientsResults(ValidRecipient.ConvertFromStringArray(recipients)));
             }
         }
     }
 }