private void ValidateRecipientsForRemove()
        {
            base.WriteVerbose(Strings.VerboseValidatingRemoveExchangeBinding);
            ExchangeValidator exchangeValidator = this.CreateExchangeValidator(false, "Validating RemoveExchangeBinding", 0);

            this.InternalRemoveExchangeBindings = exchangeValidator.ValidateRecipients(this.RemoveExchangeBinding);
        }
        private MultiValuedProperty <BindingMetadata> ValidateExchangeBindings(IEnumerable <string> bindings, int maxCount)
        {
            base.WriteVerbose(Strings.VerboseValidatingExchangeBinding);
            MultiValuedProperty <BindingMetadata> multiValuedProperty = new MultiValuedProperty <BindingMetadata>();

            if (bindings.Any <string>())
            {
                List <string> list = (from binding in bindings
                                      where SourceValidator.IsWideScope(binding)
                                      select binding).ToList <string>();
                if (list.Any <string>())
                {
                    throw new ExCannotContainWideScopeBindingsException(string.Join(", ", list));
                }
                this.ExchangeBinding = NewCompliancePolicyBase.ValidateWideScopeBinding(this.ExchangeBinding, "All", "All", new BindingCannotCombineAllWithIndividualBindingsException("Exchange"));
                ExchangeValidator exchangeValidator = this.CreateExchangeValidator(true, "Validating ExchangeBinding");
                multiValuedProperty = exchangeValidator.ValidateRecipients(this.ExchangeBinding);
                if (this.ExchangeBinding.Count <string>() > 1000)
                {
                    throw new BindingCountExceedsLimitException("Exchange", 1000);
                }
            }
            NewCompliancePolicyBase.SetBindingsSubWorkload(multiValuedProperty, Workload.Exchange);
            return(multiValuedProperty);
        }
        private void ExpandGroupsAndValidateRecipientsForAdd()
        {
            base.WriteVerbose(Strings.VerboseValidatingAddExchangeBinding);
            int existingRecipientsCount         = SetCompliancePolicyBase.CalculateBindingCountAfterRemove(this.PsPolicyPresentationObject.ExchangeBinding, this.InternalRemoveExchangeBindings);
            ExchangeValidator exchangeValidator = this.CreateExchangeValidator(true, "Validating AddExchangeBinding", existingRecipientsCount);

            this.InternalAddExchangeBindings = exchangeValidator.ValidateRecipients(this.AddExchangeBinding);
        }