public static void ExtractAccountNamespaceAndSharingDomains(DataRow row, DataTable dataTable, DataObjectStore store) { if (store.GetDataObject("FederatedOrganizationIdentifier") == null) { return; } FederatedOrganizationIdWithDomainStatus federatedOrganizationIdWithDomainStatus = (FederatedOrganizationIdWithDomainStatus)store.GetDataObject("FederatedOrganizationIdentifier"); SmtpDomain smtpDomain = (federatedOrganizationIdWithDomainStatus.AccountNamespace == null) ? null : new SmtpDomain(FederatedOrganizationId.RemoveHybridConfigurationWellKnownSubDomain(federatedOrganizationIdWithDomainStatus.AccountNamespace.Domain)); MultiValuedProperty <FederatedDomain> domains = federatedOrganizationIdWithDomainStatus.Domains; dataTable.Rows[0]["HasAccountNamespace"] = false; dataTable.Rows[0]["HasFederatedDomains"] = false; if (smtpDomain != null) { List <object> list = new List <object>(); dataTable.Rows[0]["HasAccountNamespace"] = true; dataTable.Rows[0]["Name"] = federatedOrganizationIdWithDomainStatus.AccountNamespace.Domain; foreach (FederatedDomain federatedDomain in domains) { if (federatedDomain.Domain.Domain.Equals(smtpDomain.Domain, StringComparison.InvariantCultureIgnoreCase)) { dataTable.Rows[0]["AccountNamespace"] = (SharingDomain)federatedDomain; } else { list.Add((SharingDomain)federatedDomain); } } if (list.Count > 0) { dataTable.Rows[0]["SharingEnabledDomains"] = list; dataTable.Rows[0]["HasFederatedDomains"] = true; } } }
protected override void WriteResult(IConfigurable dataObject) { TaskLogger.LogEnter(new object[] { dataObject.Identity, dataObject }); FederatedOrganizationIdWithDomainStatus dataObject2 = this.CreatePresentationObject((FederatedOrganizationId)dataObject, this.IncludeExtendedDomainInfo); base.WriteResult(dataObject2); TaskLogger.LogExit(); }
public static void GenerateAddAndRemoveCollection(DataRow row, DataTable dataTable, DataObjectStore store) { if (store.GetDataObject("FederatedOrganizationIdentifier") == null) { return; } List <object> list = new List <object>(); if (dataTable.Rows[0]["SharingEnabledDomains"] != DBNull.Value) { foreach (object obj in ((IEnumerable)dataTable.Rows[0]["SharingEnabledDomains"])) { SharingDomain sharingDomain = (SharingDomain)obj; list.Add((SmtpDomain)sharingDomain); } } FederatedOrganizationIdWithDomainStatus federatedOrganizationIdWithDomainStatus = (FederatedOrganizationIdWithDomainStatus)store.GetDataObject("FederatedOrganizationIdentifier"); SmtpDomain smtpDomain = (federatedOrganizationIdWithDomainStatus.AccountNamespace == null) ? null : new SmtpDomain(FederatedOrganizationId.RemoveHybridConfigurationWellKnownSubDomain(federatedOrganizationIdWithDomainStatus.AccountNamespace.Domain)); if (smtpDomain == null && dataTable.Rows[0]["AccountNamespace"] != DBNull.Value) { smtpDomain = (SmtpDomain)((SharingDomain)dataTable.Rows[0]["AccountNamespace"]); } if (smtpDomain != null) { list.Remove(smtpDomain); } MultiValuedProperty <FederatedDomain> multiValuedProperty = (MultiValuedProperty <FederatedDomain>)store.GetValue("FederatedOrganizationIdentifier", "Domains"); List <object> list2 = new List <object>(); if (multiValuedProperty != null) { foreach (FederatedDomain federatedDomain in multiValuedProperty) { if (!federatedDomain.Domain.Domain.Equals(smtpDomain.Domain, StringComparison.InvariantCultureIgnoreCase)) { SmtpDomain item = new SmtpDomain(federatedDomain.Domain.Domain); if (list.Contains(item)) { list.Remove(item); } else { list2.Add(item); } } } } dataTable.Rows[0]["AddedSharingEnabledDomains"] = list; dataTable.Rows[0]["RemovedSharingEnabledDomains"] = list2; }
public IFederatedOrganizationIdentifier GetFederatedOrganizationIdentifier() { SessionParameters sessionParameters = new SessionParameters(); sessionParameters.SetNull <bool>("IncludeExtendedDomainInfo"); FederatedOrganizationIdWithDomainStatus federatedOrganizationIdWithDomainStatus = this.RemotePowershellSession.RunOneCommandSingleResult <FederatedOrganizationIdWithDomainStatus>("Get-FederatedOrganizationIdentifier", sessionParameters, true); if (federatedOrganizationIdWithDomainStatus != null) { return(new FederatedOrganizationIdentifier { Enabled = federatedOrganizationIdWithDomainStatus.Enabled, Domains = federatedOrganizationIdWithDomainStatus.Domains, AccountNamespace = federatedOrganizationIdWithDomainStatus.AccountNamespace, DelegationTrustLink = federatedOrganizationIdWithDomainStatus.DelegationTrustLink, DefaultDomain = federatedOrganizationIdWithDomainStatus.DefaultDomain }); } return(null); }
private FederatedOrganizationIdWithDomainStatus CreatePresentationObject(FederatedOrganizationId fedOrgId, bool includeExtendedDomainInfo) { FederatedOrganizationIdWithDomainStatus federatedOrganizationIdWithDomainStatus = new FederatedOrganizationIdWithDomainStatus(fedOrgId); if (fedOrgId.DelegationTrustLink == null) { return(federatedOrganizationIdWithDomainStatus); } FederationTrust federationTrust = this.ConfigurationSession.Read <FederationTrust>(fedOrgId.DelegationTrustLink); if (federationTrust == null) { fedOrgId.DelegationTrustLink = ADObjectIdResolutionHelper.ResolveDN(fedOrgId.DelegationTrustLink); ADSessionSettings sessionSettings = ADSessionSettings.FromOrganizationIdWithoutRbacScopes(ADSystemConfigurationSession.GetRootOrgContainerIdForLocalForest(), OrganizationId.ForestWideOrgId, null, false); ITopologyConfigurationSession topologyConfigurationSession = DirectorySessionFactory.Default.CreateTopologyConfigurationSession(ConsistencyMode.IgnoreInvalid, sessionSettings, 147, "CreatePresentationObject", "f:\\15.00.1497\\sources\\dev\\Management\\src\\Management\\SystemConfigurationTasks\\Federation\\GetFederatedOrganizationIdentifier.cs"); federationTrust = topologyConfigurationSession.Read <FederationTrust>(fedOrgId.DelegationTrustLink); if (federationTrust == null) { return(federatedOrganizationIdWithDomainStatus); } } List <AcceptedDomain> allFederatedDomains = this.GetAllFederatedDomains(fedOrgId); if (allFederatedDomains.Count == 0) { return(federatedOrganizationIdWithDomainStatus); } foreach (AcceptedDomain acceptedDomain in allFederatedDomains) { if (acceptedDomain.IsDefaultFederatedDomain) { federatedOrganizationIdWithDomainStatus.DefaultDomain = new SmtpDomain(acceptedDomain.DomainName.Domain); break; } } MultiValuedProperty <FederatedDomain> multiValuedProperty = new MultiValuedProperty <FederatedDomain>(); if (!includeExtendedDomainInfo) { foreach (AcceptedDomain acceptedDomain2 in allFederatedDomains) { multiValuedProperty.Add(new FederatedDomain(new SmtpDomain(acceptedDomain2.DomainName.Domain))); } federatedOrganizationIdWithDomainStatus.Domains = multiValuedProperty; return(federatedOrganizationIdWithDomainStatus); } FederationProvision federationProvision = FederationProvision.Create(federationTrust, this); base.WriteVerbose(Strings.GetFedDomainStatusInfo(FederatedOrganizationId.AddHybridConfigurationWellKnownSubDomain(fedOrgId.AccountNamespace.Domain))); DomainState state = DomainState.Unknown; try { state = federationProvision.GetDomainState(FederatedOrganizationId.AddHybridConfigurationWellKnownSubDomain(fedOrgId.AccountNamespace.Domain)); } catch (LocalizedException ex) { this.WriteError(new CannotGetDomainStatusFromPartnerSTSException(fedOrgId.AccountNamespace.ToString(), federationTrust.ApplicationIdentifier, ex.Message), ErrorCategory.ResourceUnavailable, null, false); } multiValuedProperty.Add(new FederatedDomain(fedOrgId.AccountNamespace, state)); foreach (AcceptedDomain acceptedDomain3 in allFederatedDomains) { SmtpDomain smtpDomain = new SmtpDomain(acceptedDomain3.DomainName.Domain); if (!smtpDomain.Equals(fedOrgId.AccountNamespace)) { multiValuedProperty.Add(new FederatedDomain(smtpDomain)); } } federatedOrganizationIdWithDomainStatus.Domains = multiValuedProperty; return(federatedOrganizationIdWithDomainStatus); }