protected override void InternalValidate() { base.InternalValidate(); if (base.HasErrors) { return; } string message; if (!NewReceiveConnector.ValidataName(this.DataObject.Name, out message)) { base.WriteError(new ArgumentException(message), ErrorCategory.InvalidArgument, null); } if (base.Fields.IsModified("DefaultDomain")) { AcceptedDomainIdParameter defaultDomain = this.DefaultDomain; if (defaultDomain != null) { AcceptedDomain acceptedDomain = (AcceptedDomain)base.GetDataObject <AcceptedDomain>(defaultDomain, base.DataSession, this.RootId, new LocalizedString?(Strings.ErrorDefaultDomainNotFound(defaultDomain)), new LocalizedString?(Strings.ErrorDefaultDomainNotUnique(defaultDomain))); this.DataObject.DefaultDomain = acceptedDomain.Id; } else { this.DataObject.DefaultDomain = null; } } LocalizedException exception; if (!ReceiveConnectorNoMappingConflictCondition.Verify(this.DataObject, base.DataSession as IConfigurationSession, out exception)) { base.WriteError(exception, ErrorCategory.InvalidOperation, this.DataObject); } if (!this.serverObject.IsEdgeServer && (this.DataObject.AuthMechanism & AuthMechanisms.ExchangeServer) != AuthMechanisms.None && !ReceiveConnectorFqdnCondition.Verify(this.DataObject, this.serverObject, out exception)) { base.WriteError(exception, ErrorCategory.InvalidOperation, this.DataObject); } if (this.DataObject.AdvertiseClientSettings && (this.DataObject.PermissionGroups & PermissionGroups.ExchangeUsers) != PermissionGroups.ExchangeUsers) { base.WriteError(new AdvertiseClientSettingsWithoutExchangeUsersPermissionGroupsException(), ErrorCategory.InvalidOperation, this.DataObject); } }
private void CheckServerAndSetReceiveConnectorID() { string message; if (!NewReceiveConnector.ValidataName(this.DataObject.Name, out message)) { base.WriteError(new ArgumentException(message), ErrorCategory.InvalidArgument, null); } if (this.Server == null) { try { this.serverObject = ((ITopologyConfigurationSession)base.DataSession).FindLocalServer(); goto IL_AD; } catch (LocalServerNotFoundException) { base.WriteError(new NeedToSpecifyServerObjectException(), ErrorCategory.InvalidOperation, this.DataObject); goto IL_AD; } } this.serverObject = (Server)base.GetDataObject <Server>(this.Server, base.DataSession, this.RootId, new LocalizedString?(Strings.ErrorServerNotFound(this.Server.ToString())), new LocalizedString?(Strings.ErrorServerNotUnique(this.Server.ToString()))); if (this.serverObject == null) { return; } IL_AD: this.isEdgeRole = this.serverObject.IsEdgeServer; if (!this.isEdgeRole && !this.serverObject.IsHubTransportServer && !this.serverObject.IsFrontendTransportServer && !this.serverObject.IsMailboxServer) { base.WriteError(new ServerNotHubOrEdgeException(), ErrorCategory.InvalidOperation, this.serverObject); } ADObjectId id = this.serverObject.Id; ADObjectId childId = id.GetChildId("Protocols").GetChildId("SMTP Receive Connectors").GetChildId(this.DataObject.Name); this.DataObject.SetId(childId); }