protected override void InternalValidate()
        {
            TaskLogger.LogEnter();
            base.InternalValidate();
            if (base.HasErrors)
            {
                return;
            }
            ExchangeOrganizationalUnit exchangeOrganizationalUnit = null;

            if (base.Fields.IsModified("DefaultDistributionListOU"))
            {
                this.DataObject.DefaultDistributionListOU = ((this.defaultOU == null) ? null : this.defaultOU.Id);
                exchangeOrganizationalUnit = this.defaultOU;
            }
            else if (this.DataObject.IsChanged(RecipientTemplateProvisioningPolicySchema.DefaultDistributionListOU) && this.DataObject.DefaultDistributionListOU != null)
            {
                exchangeOrganizationalUnit = RecipientTaskHelper.ResolveOrganizationalUnitInOrganization(new OrganizationalUnitIdParameter(this.DataObject.DefaultDistributionListOU), this.ConfigurationSession, null, new DataAccessHelper.CategorizedGetDataObjectDelegate(base.GetDataObject <ExchangeOrganizationalUnit>), ExchangeErrorCategory.Client, new Task.TaskVerboseLoggingDelegate(base.WriteVerbose), new Task.ErrorLoggerDelegate(base.WriteError));
            }
            if (exchangeOrganizationalUnit != null)
            {
                OrganizationId organizationId = OrganizationId.ForestWideOrgId;
                if (this.ConfigurationSession is ITenantConfigurationSession)
                {
                    organizationId = TaskHelper.ResolveOrganizationId(this.DataObject.Id, ADProvisioningPolicy.RdnContainer, (ITenantConfigurationSession)this.ConfigurationSession);
                }
                RecipientTaskHelper.IsOrgnizationalUnitInOrganization(this.ConfigurationSession, organizationId, exchangeOrganizationalUnit, new Task.TaskVerboseLoggingDelegate(base.WriteVerbose), new Task.ErrorLoggerDelegate(base.WriteError));
            }
            TaskLogger.LogExit();
        }
Example #2
0
        protected override void InternalValidate()
        {
            TaskLogger.LogEnter();
            base.InternalValidate();
            OrganizationId organizationId = this.DataObject.OrganizationId;
            OrganizationalUnitIdParameter organizationalUnitIdParameter = null;

            if (base.Fields.IsModified("RecipientContainer"))
            {
                if (this.RecipientContainer == null)
                {
                    this.DataObject.RecipientContainer = null;
                }
                else
                {
                    organizationalUnitIdParameter = this.RecipientContainer;
                }
            }
            else if (this.DataObject.IsModified(AddressBookBaseSchema.RecipientContainer) && this.DataObject.RecipientContainer != null)
            {
                organizationalUnitIdParameter = new OrganizationalUnitIdParameter(this.DataObject.RecipientContainer);
            }
            if (organizationalUnitIdParameter != null)
            {
                if (base.GlobalConfigSession.IsInPreE14InteropMode())
                {
                    base.WriteError(new InvalidOperationException(Strings.ErrorCannotSetRecipientContainer), ErrorCategory.InvalidArgument, this.DataObject.Identity);
                }
                this.DataObject.RecipientContainer = NewAddressBookBase.GetRecipientContainer(organizationalUnitIdParameter, (IConfigurationSession)base.DataSession, organizationId, new NewAddressBookBase.GetUniqueObject(base.GetDataObject <ExchangeOrganizationalUnit>), new Task.ErrorLoggerDelegate(base.WriteError), new Task.TaskVerboseLoggingDelegate(base.WriteVerbose));
            }
            if (this.IsObjectStateChanged() && this.DataObject.HasMailboxManagerSetting)
            {
                base.WriteError(new InvalidOperationException(Strings.ErrorCanNotUpgradePolicyWithMailboxSetting(this.Identity.ToString())), ErrorCategory.InvalidOperation, this.DataObject.Id);
            }
            if (this.IsObjectStateChanged() && this.DataObject.ExchangeVersion.IsOlderThan(ExchangeObjectVersion.Exchange2007))
            {
                base.WriteError(new InvalidOperationException(Strings.ErrorObjectNotManagableFromCurrentConsole(this.Identity.ToString(), this.DataObject.ExchangeVersion.ToString())), ErrorCategory.InvalidOperation, this.DataObject.Identity);
            }
            if (!base.HasErrors)
            {
                if (this.DataObject.IsChanged(EmailAddressPolicySchema.Priority) && this.DataObject.Priority != 0)
                {
                    UpdateEmailAddressPolicy.PreparePriorityOfEapObjects(organizationId, this.DataObject, base.DataSession, new TaskExtendedErrorLoggingDelegate(this.WriteError), out this.affectedPolicies, out this.affectedPoliciesOriginalPriority);
                }
                if (!base.HasErrors && (this.DataObject.IsChanged(EmailAddressPolicySchema.RecipientFilter) || this.DataObject.IsChanged(EmailAddressPolicySchema.Priority) || this.DataObject.IsChanged(EmailAddressPolicySchema.RawEnabledEmailAddressTemplates) || this.DataObject.IsChanged(EmailAddressPolicySchema.DisabledEmailAddressTemplates) || this.DataObject.IsChanged(EmailAddressPolicySchema.NonAuthoritativeDomains) || this.DataObject.IsChanged(EmailAddressPolicySchema.RecipientContainer)))
                {
                    this.DataObject[EmailAddressPolicySchema.RecipientFilterApplied] = false;
                }
            }
            if (this.domainValidator == null || !this.domainValidator.OrganizationId.Equals(organizationId))
            {
                this.domainValidator = new UpdateEmailAddressPolicy.WritableDomainValidator(organizationId, this.ConfigurationSession, new Task.TaskErrorLoggingDelegate(base.WriteError));
            }
            this.domainValidator.Validate(this.DataObject);
            TaskLogger.LogExit();
        }
        protected override void InternalValidate()
        {
            TaskLogger.LogEnter();
            base.InternalValidate();
            OrganizationalUnitIdParameter organizationalUnitIdParameter = null;

            if (base.Fields.IsModified("RecipientContainer"))
            {
                if (this.RecipientContainer == null)
                {
                    this.DataObject.RecipientContainer = null;
                }
                else
                {
                    organizationalUnitIdParameter = this.RecipientContainer;
                }
            }
            else if (this.DataObject.IsModified(AddressBookBaseSchema.RecipientContainer) && this.DataObject.RecipientContainer != null)
            {
                organizationalUnitIdParameter = new OrganizationalUnitIdParameter(this.DataObject.RecipientContainer);
            }
            if (organizationalUnitIdParameter != null)
            {
                if (base.GlobalConfigSession.IsInPreE14InteropMode())
                {
                    base.WriteError(new InvalidOperationException(Strings.ErrorCannotSetRecipientContainer), ErrorCategory.InvalidArgument, this.DataObject.Identity);
                }
                OrganizationId organizationId = this.DataObject.OrganizationId;
                this.DataObject.RecipientContainer = NewAddressBookBase.GetRecipientContainer(organizationalUnitIdParameter, this.ConfigurationSession, organizationId, new NewAddressBookBase.GetUniqueObject(base.GetDataObject <ExchangeOrganizationalUnit>), new Task.ErrorLoggerDelegate(base.WriteError), new Task.TaskVerboseLoggingDelegate(base.WriteVerbose));
            }
            if (this.IsObjectStateChanged() && this.DataObject.ExchangeVersion.IsOlderThan(ExchangeObjectVersion.Exchange2007))
            {
                TIdParameter identity = this.Identity;
                base.WriteError(new InvalidOperationException(Strings.ErrorObjectNotManagableFromCurrentConsole(identity.ToString(), this.DataObject.ExchangeVersion.ToString())), ErrorCategory.InvalidOperation, this.DataObject.Identity);
            }
            if (!base.HasErrors)
            {
                if (this.DataObject.IsTopContainer)
                {
                    if (this.DataObject.IsModified(ADObjectSchema.Name) || this.DataObject.IsModified(AddressBookBaseSchema.DisplayName))
                    {
                        TIdParameter identity2 = this.Identity;
                        base.WriteError(new InvalidOperationException(Strings.ErrorInvalidOperationOnContainer(identity2.ToString())), ErrorCategory.InvalidOperation, this.DataObject.Identity);
                    }
                    this.ValidateBrokenRecipientFilterChange(null);
                }
                if (!base.HasErrors && (this.DataObject.IsChanged(AddressBookBaseSchema.RecipientFilter) || this.DataObject.IsChanged(AddressBookBaseSchema.RecipientContainer)))
                {
                    this.DataObject[AddressBookBaseSchema.RecipientFilterApplied] = false;
                }
            }
            TaskLogger.LogExit();
        }
        protected override IConfigurable PrepareDataObject()
        {
            TaskLogger.LogEnter();
            IConfigurationSession configurationSession = (IConfigurationSession)base.DataSession;

            this.containerId = base.CurrentOrgContainerId.GetDescendantId(EmailAddressPolicy.RdnEapContainerToOrganization);
            this.DataObject  = (EmailAddressPolicy)base.PrepareDataObject();
            if (!base.HasErrors)
            {
                this.DataObject.SetId(this.containerId.GetChildId(base.Name));
                if (!this.DataObject.IsModified(EmailAddressPolicySchema.Priority))
                {
                    this.DataObject.Priority = EmailAddressPolicyPriority.Lowest;
                }
                if (!base.HasErrors && (this.DataObject.Priority != 0 || !this.DataObject.IsModified(EmailAddressPolicySchema.Priority)))
                {
                    UpdateEmailAddressPolicy.PreparePriorityOfEapObjects(base.OrganizationId ?? OrganizationId.ForestWideOrgId, this.DataObject, base.DataSession, new TaskExtendedErrorLoggingDelegate(this.WriteError), out this.affectedPolicies, out this.affectedPoliciesOriginalPriority);
                }
                OrganizationalUnitIdParameter organizationalUnitIdParameter = null;
                if (base.Fields.IsModified("RecipientContainer"))
                {
                    if (this.RecipientContainer == null)
                    {
                        this.DataObject.RecipientContainer = null;
                    }
                    else
                    {
                        organizationalUnitIdParameter = this.RecipientContainer;
                    }
                }
                else if (this.DataObject.RecipientContainer != null)
                {
                    organizationalUnitIdParameter = new OrganizationalUnitIdParameter(this.DataObject.RecipientContainer);
                }
                if (organizationalUnitIdParameter != null)
                {
                    if (base.GlobalConfigSession.IsInPreE14InteropMode())
                    {
                        base.WriteError(new InvalidOperationException(Strings.ErrorCannotSetRecipientContainer), ErrorCategory.InvalidArgument, this.DataObject.Identity);
                    }
                    this.DataObject.RecipientContainer = NewAddressBookBase.GetRecipientContainer(organizationalUnitIdParameter, (IConfigurationSession)base.DataSession, base.OrganizationId ?? OrganizationId.ForestWideOrgId, new NewAddressBookBase.GetUniqueObject(base.GetDataObject <ExchangeOrganizationalUnit>), new Task.ErrorLoggerDelegate(base.WriteError), new Task.TaskVerboseLoggingDelegate(base.WriteVerbose));
                }
            }
            TaskLogger.LogExit();
            return(this.DataObject);
        }
Example #5
0
        protected override IConfigurable PrepareDataObject()
        {
            TaskLogger.LogEnter();
            this.DataObject = (AddressBookBase)base.PrepareDataObject();
            if (!base.HasErrors)
            {
                if (!this.DataObject.IsModified(AddressBookBaseSchema.DisplayName))
                {
                    this.DataObject.DisplayName = base.Name;
                }
                ADObjectId containerId = this.GetContainerId();
                if (!base.HasErrors)
                {
                    this.DataObject.SetId(containerId.GetChildId(base.Name));
                }
            }
            OrganizationalUnitIdParameter organizationalUnitIdParameter = null;

            if (base.Fields.IsModified("RecipientContainer"))
            {
                if (this.RecipientContainer == null)
                {
                    this.DataObject.RecipientContainer = null;
                }
                else
                {
                    organizationalUnitIdParameter = this.RecipientContainer;
                }
            }
            else if (this.DataObject.RecipientContainer != null)
            {
                organizationalUnitIdParameter = new OrganizationalUnitIdParameter(this.DataObject.RecipientContainer);
            }
            if (organizationalUnitIdParameter != null)
            {
                if (base.GlobalConfigSession.IsInPreE14InteropMode())
                {
                    base.WriteError(new InvalidOperationException(Strings.ErrorCannotSetRecipientContainer), ErrorCategory.InvalidArgument, this.DataObject.Identity);
                }
                this.DataObject.RecipientContainer = NewAddressBookBase.GetRecipientContainer(organizationalUnitIdParameter, (IConfigurationSession)base.DataSession, base.OrganizationId ?? OrganizationId.ForestWideOrgId, new NewAddressBookBase.GetUniqueObject(base.GetDataObject <ExchangeOrganizationalUnit>), new Task.ErrorLoggerDelegate(base.WriteError), new Task.TaskVerboseLoggingDelegate(base.WriteVerbose));
            }
            TaskLogger.LogExit();
            return(this.DataObject);
        }
Example #6
0
        internal static ADObjectId GetRecipientContainer(OrganizationalUnitIdParameter recipientContainer, IConfigurationSession cfgSession, OrganizationId organizationId, NewAddressBookBase.GetUniqueObject getDataObject, Task.ErrorLoggerDelegate writeError, Task.TaskVerboseLoggingDelegate writeVerbose)
        {
            bool useConfigNC      = cfgSession.UseConfigNC;
            bool useGlobalCatalog = cfgSession.UseGlobalCatalog;

            cfgSession.UseConfigNC      = false;
            cfgSession.UseGlobalCatalog = true;
            ExchangeOrganizationalUnit exchangeOrganizationalUnit;

            try
            {
                exchangeOrganizationalUnit = (ExchangeOrganizationalUnit)getDataObject(recipientContainer, cfgSession, organizationId.OrganizationalUnit, new LocalizedString?(Strings.ErrorOrganizationalUnitNotFound(recipientContainer.ToString())), new LocalizedString?(Strings.ErrorOrganizationalUnitNotUnique(recipientContainer.ToString())), ExchangeErrorCategory.Client);
                RecipientTaskHelper.IsOrgnizationalUnitInOrganization(cfgSession, organizationId, exchangeOrganizationalUnit, writeVerbose, writeError);
            }
            finally
            {
                cfgSession.UseConfigNC      = useConfigNC;
                cfgSession.UseGlobalCatalog = useGlobalCatalog;
            }
            return(exchangeOrganizationalUnit.Id);
        }
Example #7
0
        private ADObjectId ValidateRecipientContainer(OrganizationalUnitIdParameter recipientContainer)
        {
            bool       useConfigNC      = this.ConfigurationSession.UseConfigNC;
            bool       useGlobalCatalog = this.ConfigurationSession.UseGlobalCatalog;
            ADObjectId id;

            try
            {
                this.ConfigurationSession.UseConfigNC = false;
                if (string.IsNullOrEmpty(this.ConfigurationSession.DomainController))
                {
                    this.ConfigurationSession.UseGlobalCatalog = true;
                }
                ADConfigurationObject adconfigurationObject = (ADConfigurationObject)base.GetDataObject <ExchangeOrganizationalUnit>(recipientContainer, this.ConfigurationSession, null, new LocalizedString?(Strings.ErrorRecipientContainerInvalidOrNotExists), new LocalizedString?(Strings.ErrorOrganizationalUnitNotUnique(recipientContainer.ToString())), ExchangeErrorCategory.Client);
                id = adconfigurationObject.Id;
            }
            finally
            {
                this.ConfigurationSession.UseConfigNC      = useConfigNC;
                this.ConfigurationSession.UseGlobalCatalog = useGlobalCatalog;
            }
            return(id);
        }
Example #8
0
        protected override IConfigurable PrepareDataObject()
        {
            TaskLogger.LogEnter();
            UMAutoAttendant umautoAttendant = (UMAutoAttendant)base.PrepareDataObject();

            if (base.HasErrors)
            {
                return(null);
            }
            if (base.Fields.IsModified("ContactRecipientContainer") && base.Fields.IsModified("ContactAddressList"))
            {
                base.WriteError(new InvalidALParameterException(), ErrorCategory.NotSpecified, null);
                TaskLogger.LogExit();
                return(null);
            }
            if (base.Fields.IsModified("TimeZone") && base.Fields.IsModified("TimeZoneName"))
            {
                base.WriteError(new InvalidParameterException(Strings.InvalidTimeZoneParameters), ErrorCategory.NotSpecified, null);
            }
            if (base.Fields.IsModified("ContactRecipientContainer"))
            {
                OrganizationalUnitIdParameter contactRecipientContainer = this.ContactRecipientContainer;
                if (contactRecipientContainer != null)
                {
                    bool useConfigNC = this.ConfigurationSession.UseConfigNC;
                    this.ConfigurationSession.UseConfigNC = false;
                    ADConfigurationObject adconfigurationObject = (ADConfigurationObject)base.GetDataObject <ExchangeOrganizationalUnit>(contactRecipientContainer, this.ConfigurationSession, null, new LocalizedString?(Strings.ErrorOrganizationalUnitNotFound(this.ContactRecipientContainer.ToString())), new LocalizedString?(Strings.ErrorOrganizationalUnitNotUnique(this.ContactRecipientContainer.ToString())));
                    this.ConfigurationSession.UseConfigNC = useConfigNC;
                    if (!base.HasErrors)
                    {
                        umautoAttendant.ContactAddressList = adconfigurationObject.Id;
                    }
                }
                else
                {
                    umautoAttendant.ContactAddressList = null;
                }
            }
            if (base.Fields.IsModified("ContactAddressList"))
            {
                AddressListIdParameter contactAddressList = this.ContactAddressList;
                if (contactAddressList != null)
                {
                    IEnumerable <AddressBookBase> objects = contactAddressList.GetObjects <AddressBookBase>(null, this.ConfigurationSession);
                    using (IEnumerator <AddressBookBase> enumerator = objects.GetEnumerator())
                    {
                        if (enumerator.MoveNext())
                        {
                            umautoAttendant.ContactAddressList = (ADObjectId)enumerator.Current.Identity;
                        }
                        goto IL_193;
                    }
                }
                umautoAttendant.ContactAddressList = null;
            }
IL_193:
            if (base.Fields.IsModified("DTMFFallbackAutoAttendant"))
            {
                UMAutoAttendantIdParameter dtmffallbackAutoAttendant = this.DTMFFallbackAutoAttendant;
                if (dtmffallbackAutoAttendant != null)
                {
                    this.fallbackAA = (UMAutoAttendant)base.GetDataObject <UMAutoAttendant>(dtmffallbackAutoAttendant, this.ConfigurationSession, null, new LocalizedString?(Strings.NonExistantAutoAttendant(dtmffallbackAutoAttendant.ToString())), new LocalizedString?(Strings.MultipleAutoAttendantsWithSameId(dtmffallbackAutoAttendant.ToString())));
                    umautoAttendant.DTMFFallbackAutoAttendant = this.fallbackAA.Id;
                }
                else
                {
                    umautoAttendant.DTMFFallbackAutoAttendant = null;
                }
            }
            if (base.Fields.IsModified("DefaultMailbox"))
            {
                if (this.DefaultMailbox == null)
                {
                    umautoAttendant.DefaultMailbox         = null;
                    umautoAttendant.DefaultMailboxLegacyDN = null;
                }
                else
                {
                    IRecipientSession recipientSessionScopedToOrganization = Utility.GetRecipientSessionScopedToOrganization(umautoAttendant.OrganizationId, true);
                    LocalizedString   value = Strings.InvalidMailbox(this.DefaultMailbox.ToString(), "DefaultMailbox");
                    umautoAttendant.DefaultMailbox         = (ADUser)base.GetDataObject <ADUser>(this.DefaultMailbox, recipientSessionScopedToOrganization, null, null, new LocalizedString?(value), new LocalizedString?(value));
                    umautoAttendant.DefaultMailboxLegacyDN = umautoAttendant.DefaultMailbox.LegacyExchangeDN;
                }
            }
            if (!base.HasErrors)
            {
                if (base.Fields.IsModified("TimeZone"))
                {
                    umautoAttendant.TimeZone = this.TimeZone;
                }
                if (base.Fields.IsModified("TimeZoneName"))
                {
                    umautoAttendant.TimeZoneName = this.TimeZoneName;
                }
            }
            TaskLogger.LogExit();
            return(umautoAttendant);
        }
Example #9
0
        private ADObjectId GetADObjectIdFromOrganizationalUnitIdParameter(IConfigurationSession configurationSession, OrganizationalUnitIdParameter root)
        {
            bool       useConfigNC      = configurationSession.UseConfigNC;
            bool       useGlobalCatalog = configurationSession.UseGlobalCatalog;
            ADObjectId id;

            try
            {
                configurationSession.UseConfigNC      = false;
                configurationSession.UseGlobalCatalog = true;
                IConfigurable configurable = (ADConfigurationObject)base.GetDataObject <ExchangeOrganizationalUnit>(root, configurationSession, base.OrganizationId.OrganizationalUnit, new LocalizedString?(Strings.ErrorOrganizationalUnitNotFound(root.ToString())), new LocalizedString?(Strings.ErrorOrganizationalUnitNotUnique(root.ToString())));
                id = ((ADObject)configurable).Id;
            }
            finally
            {
                configurationSession.UseConfigNC      = useConfigNC;
                configurationSession.UseGlobalCatalog = useGlobalCatalog;
            }
            return(id);
        }
Example #10
0
        private ADObjectId GetADObjectIdFromOrganizationalUnitIdParameter(IConfigurationSession configurationSession, OrganizationalUnitIdParameter root)
        {
            OrganizationId organizationId = OrganizationId.ForestWideOrgId;

            if (configurationSession is ITenantConfigurationSession)
            {
                organizationId = TaskHelper.ResolveOrganizationId(this.DataObject.Id, ManagementScope.RdnScopesContainerToOrganization, (ITenantConfigurationSession)configurationSession);
            }
            bool       useConfigNC      = configurationSession.UseConfigNC;
            bool       useGlobalCatalog = configurationSession.UseGlobalCatalog;
            ADObjectId id;

            try
            {
                configurationSession.UseConfigNC      = false;
                configurationSession.UseGlobalCatalog = true;
                IConfigurable configurable = (ADConfigurationObject)base.GetDataObject <ExchangeOrganizationalUnit>(root, configurationSession, (null == organizationId) ? null : organizationId.OrganizationalUnit, new LocalizedString?(Strings.ErrorOrganizationalUnitNotFound(root.ToString())), new LocalizedString?(Strings.ErrorOrganizationalUnitNotUnique(root.ToString())));
                id = ((ADObject)configurable).Id;
            }
            finally
            {
                configurationSession.UseConfigNC      = useConfigNC;
                configurationSession.UseGlobalCatalog = useGlobalCatalog;
            }
            return(id);
        }
Example #11
0
        private void VerifyAndSetRecipientViewRoot(string root)
        {
            if (object.Equals(root, this.modifiedServerSettings.RecipientViewRoot))
            {
                return;
            }
            OrganizationalUnitIdParameter organizationalUnitIdParameter = null;

            try
            {
                organizationalUnitIdParameter = OrganizationalUnitIdParameter.Parse(root);
            }
            catch (ArgumentException exception)
            {
                base.WriteError(exception, ErrorCategory.InvalidArgument, this);
            }
            if (this.configSession == null)
            {
                ADSessionSettings sessionSettings = ADSessionSettings.FromCustomScopeSet(base.ScopeSet, ADSystemConfigurationSession.GetRootOrgContainerIdForLocalForest(), base.CurrentOrganizationId, base.ExecutingUserOrganizationId, true);
                this.configSession = DirectorySessionFactory.Default.GetTenantOrTopologyConfigurationSession(ConsistencyMode.PartiallyConsistent, sessionSettings, 588, "VerifyAndSetRecipientViewRoot", "f:\\15.00.1497\\sources\\dev\\Management\\src\\Management\\ADServerSettings\\SetADServerSettings.cs");
                this.configSession.UseGlobalCatalog = true;
                this.configSession.UseConfigNC      = false;
            }
            ADObjectId adobjectId = null;

            if (base.ScopeSet.RecipientReadScope != null && base.ScopeSet.RecipientReadScope.Root != null)
            {
                adobjectId = base.ScopeSet.RecipientReadScope.Root;
            }
            ExchangeOrganizationalUnit exchangeOrganizationalUnit = null;

            if (base.IsVerboseOn)
            {
                base.WriteVerbose(Strings.VerboseVerifyingRecipientViewRoot(root));
            }
            IEnumerable <ExchangeOrganizationalUnit> objects = organizationalUnitIdParameter.GetObjects <ExchangeOrganizationalUnit>(adobjectId, this.configSession);

            using (IEnumerator <ExchangeOrganizationalUnit> enumerator = objects.GetEnumerator())
            {
                if (enumerator.MoveNext())
                {
                    exchangeOrganizationalUnit = enumerator.Current;
                    if (enumerator.MoveNext())
                    {
                        if (adobjectId != null)
                        {
                            base.WriteError(new ManagementObjectAmbiguousException(Strings.ErrorRecipientViewRootDuplicatedUnderScope(root, adobjectId.ToString())), ErrorCategory.InvalidArgument, this);
                        }
                        else
                        {
                            base.WriteError(new ManagementObjectAmbiguousException(Strings.ErrorRecipientViewRootDuplicated(root)), ErrorCategory.InvalidArgument, this);
                        }
                    }
                }
                else if (adobjectId != null)
                {
                    base.WriteError(new ArgumentException(Strings.ErrorRecipientViewRootNotFoundUnderScope(root, adobjectId.ToString())), ErrorCategory.InvalidArgument, this);
                }
                else
                {
                    base.WriteError(new ArgumentException(Strings.ErrorRecipientViewRootNotFound(root)), ErrorCategory.InvalidArgument, this);
                }
            }
            this.modifiedServerSettings.RecipientViewRoot = exchangeOrganizationalUnit.Id;
            if (base.IsVerboseOn)
            {
                base.WriteVerbose(Strings.VerboseVerifyRecipientViewRootSucceed);
            }
        }
Example #12
0
        protected override IConfigurable PrepareDataObject()
        {
            TaskLogger.LogEnter();
            UMDialPlan umdialPlan = (UMDialPlan)base.PrepareDataObject();

            if (base.HasErrors)
            {
                return(null);
            }
            if (base.Fields.IsModified("ContactRecipientContainer") && base.Fields.IsModified("ContactAddressList"))
            {
                base.WriteError(new InvalidALParameterException(), ErrorCategory.NotSpecified, null);
                TaskLogger.LogExit();
                return(null);
            }
            if (base.Fields.IsModified("CountryOrRegionCode"))
            {
                if (string.IsNullOrEmpty(this.CountryOrRegionCode))
                {
                    base.WriteError(new InvalidParameterException(Strings.EmptyCountryOrRegionCode), ErrorCategory.InvalidArgument, null);
                }
                else
                {
                    umdialPlan.CountryOrRegionCode = this.CountryOrRegionCode;
                }
            }
            if (base.Fields.IsModified("ContactRecipientContainer"))
            {
                OrganizationalUnitIdParameter contactRecipientContainer = this.ContactRecipientContainer;
                if (contactRecipientContainer != null)
                {
                    bool useConfigNC = this.ConfigurationSession.UseConfigNC;
                    this.ConfigurationSession.UseConfigNC = false;
                    ADConfigurationObject adconfigurationObject = (ADConfigurationObject)base.GetDataObject <ExchangeOrganizationalUnit>(contactRecipientContainer, this.ConfigurationSession, null, new LocalizedString?(Strings.ErrorOrganizationalUnitNotFound(this.ContactRecipientContainer.ToString())), new LocalizedString?(Strings.ErrorOrganizationalUnitNotUnique(this.ContactRecipientContainer.ToString())));
                    this.ConfigurationSession.UseConfigNC = useConfigNC;
                    if (!base.HasErrors)
                    {
                        umdialPlan.ContactAddressList = adconfigurationObject.Id;
                    }
                }
                else
                {
                    umdialPlan.ContactAddressList = null;
                }
            }
            if (base.Fields.IsModified("ContactAddressList"))
            {
                AddressListIdParameter contactAddressList = this.ContactAddressList;
                if (contactAddressList != null)
                {
                    IEnumerable <AddressBookBase> objects = contactAddressList.GetObjects <AddressBookBase>(null, this.ConfigurationSession);
                    using (IEnumerator <AddressBookBase> enumerator = objects.GetEnumerator())
                    {
                        if (enumerator.MoveNext())
                        {
                            umdialPlan.ContactAddressList = (ADObjectId)enumerator.Current.Identity;
                        }
                        goto IL_19C;
                    }
                }
                umdialPlan.ContactAddressList = null;
            }
IL_19C:
            if (umdialPlan.ContactScope != CallSomeoneScopeEnum.AddressList)
            {
                umdialPlan.ContactAddressList = null;
            }
            if (base.Fields.IsModified("UMAutoAttendant"))
            {
                UMAutoAttendantIdParameter umautoAttendant = this.UMAutoAttendant;
                if (umautoAttendant != null)
                {
                    UMAutoAttendant umautoAttendant2 = (UMAutoAttendant)base.GetDataObject <UMAutoAttendant>(umautoAttendant, this.ConfigurationSession, null, new LocalizedString?(Strings.NonExistantAutoAttendant(umautoAttendant.ToString())), new LocalizedString?(Strings.MultipleAutoAttendantsWithSameId(umautoAttendant.ToString())));
                    if (!base.HasErrors)
                    {
                        umdialPlan.UMAutoAttendant = umautoAttendant2.Id;
                    }
                }
                else
                {
                    umdialPlan.UMAutoAttendant = null;
                }
            }
            TaskLogger.LogExit();
            return(umdialPlan);
        }