Exemple #1
0
        protected override IConfigurable PrepareDataObject()
        {
            TaskLogger.LogEnter();
            ADRecipient adrecipient = (ADRecipient)base.PrepareDataObject();

            if (!adrecipient.EmailAddressPolicyEnabled && adrecipient.PrimarySmtpAddress != adrecipient.OriginalPrimarySmtpAddress && adrecipient.WindowsEmailAddress == adrecipient.OriginalWindowsEmailAddress)
            {
                adrecipient.WindowsEmailAddress = adrecipient.PrimarySmtpAddress;
            }
            if (this.CreateDTMFMap)
            {
                adrecipient.PopulateDtmfMap(true);
            }
            if (base.Fields.IsModified(ADRecipientSchema.ArbitrationMailbox))
            {
                if (this.arbitrationMbx != null)
                {
                    if (!adrecipient.OrganizationId.Equals(this.arbitrationMbx.OrganizationId))
                    {
                        base.WriteError(new RecipientTaskException(Strings.ErrorArbitrationMbxCrossOrg(this.arbitrationMbx.Identity.ToString())), ExchangeErrorCategory.Client, adrecipient.Identity);
                    }
                    adrecipient.ArbitrationMailbox = this.arbitrationMbx.Id;
                }
                else
                {
                    adrecipient.ArbitrationMailbox = null;
                }
            }
            MultiValuedProperty <string> source;

            if (!this.isDeletingMailTipTranslations && this.isDeletingDefaultMailTip && adrecipient.TryGetOriginalValue <MultiValuedProperty <string> >(ADRecipientSchema.MailTipTranslations, out source))
            {
                if (source.Any((string translation) => !ADRecipient.IsDefaultTranslation(translation)))
                {
                    base.WriteError(new RecipientTaskException(Strings.ErrorMailTipRemoveDefaultAndTranslationsExist), ExchangeErrorCategory.Client, null);
                }
            }
            TaskLogger.LogExit();
            return(adrecipient);
        }