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())); }
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))); } } } }