public override void OnSetFederatedOrganizationIdentifier(FederationTrust federationTrust, SmtpDomain accountNamespace)
        {
            string    text                 = accountNamespace.ToString();
            string    wkgDomain            = FederatedOrganizationId.AddHybridConfigurationWellKnownSubDomain(text);
            AppIdInfo appIdInfo            = null;
            ManageDelegation2Client client = this.GetManageDelegation(wkgDomain);

            try
            {
                appIdInfo = client.CreateAppId(wkgDomain);
            }
            catch (LiveDomainServicesException ex)
            {
                if (ex.DomainError != null && ex.DomainError.Value == DomainError.ProofOfOwnershipNotValid)
                {
                    throw new DomainProofOwnershipException(Strings.ErrorManageDelegation2ProofDomainOwnership, ex);
                }
                throw new ProvisioningFederatedExchangeException(ex.LocalizedString, ex);
            }
            if (string.IsNullOrEmpty(federationTrust.ApplicationIdentifier))
            {
                if (appIdInfo == null || string.IsNullOrEmpty(appIdInfo.AppId))
                {
                    throw new LiveDomainServicesException(Strings.ErrorLiveDomainServicesUnexpectedResult(Strings.ErrorInvalidApplicationId));
                }
                base.WriteVerbose(Strings.NewFederationTrustSuccessAppId(FederationTrust.PartnerSTSType.LiveId.ToString(), appIdInfo.AppId));
                federationTrust.ApplicationIdentifier = appIdInfo.AppId.Trim();
            }
            base.ReserveDomain(wkgDomain, federationTrust.ApplicationIdentifier, client, Strings.ErrorManageDelegation2ProofDomainOwnership, () => LiveFederationProvision2.GetDomainStateFromDomainInfo(client.GetDomainInfo(federationTrust.ApplicationIdentifier, wkgDomain)));
            using (ManageDelegation2Client manageDelegation = this.GetManageDelegation(text))
            {
                manageDelegation.AddUri(appIdInfo.AppId, text);
            }
        }
        public override void OnRemoveFederatedDomain(SmtpDomain smtpDomain, bool force)
        {
            string text = smtpDomain.ToString();

            using (ManageDelegation2Client manageDelegation = this.GetManageDelegation(text))
            {
                base.RemoveUri(manageDelegation, text, force);
            }
        }
        public override void OnAddFederatedDomain(SmtpDomain smtpDomain)
        {
            string domain = smtpDomain.ToString();

            using (ManageDelegation2Client manageDelegation = this.GetManageDelegation(domain))
            {
                base.AddUri(domain, base.ApplicationIdentifier, manageDelegation, Strings.ErrorManageDelegation2ProofDomainOwnership);
            }
        }
 public override Microsoft.Exchange.Data.Directory.Management.DomainState GetDomainState(string domain)
 {
     Microsoft.Exchange.Data.Directory.Management.DomainState domainStateFromDomainInfo;
     using (ManageDelegation2Client manageDelegation = this.GetManageDelegation(domain))
     {
         domainStateFromDomainInfo = LiveFederationProvision2.GetDomainStateFromDomainInfo(manageDelegation.GetDomainInfo(base.ApplicationIdentifier, domain));
     }
     return(domainStateFromDomainInfo);
 }
        public override void OnPublishFederationCertificate(FederationTrust federationTrust)
        {
            X509Certificate2 x509Certificate      = FederationCertificate.LoadCertificateWithPrivateKey(federationTrust.OrgNextPrivCertificate, base.WriteVerbose);
            string           rawBase64Certificate = Convert.ToBase64String(x509Certificate.GetRawCertData());

            using (ManageDelegation2Client manageDelegation = this.GetManageDelegation(federationTrust.ApplicationUri.OriginalString))
            {
                manageDelegation.UpdateAppIdCertificate(federationTrust.ApplicationIdentifier, rawBase64Certificate);
            }
        }
 public override void OnRemoveAccountNamespace(SmtpDomain smtpDomain, bool force)
 {
     LiveFederationProvision2.< > c__DisplayClass4 CS$ < > 8__locals1 = new LiveFederationProvision2.< > c__DisplayClass4();
     CS$ < > 8__locals1.< > 4__this = this;
     CS$ < > 8__locals1.domain      = smtpDomain.ToString();
     if (FederatedOrganizationId.ContainsHybridConfigurationWellKnownSubDomain(CS$ < > 8__locals1.domain))
     {
         string text = FederatedOrganizationId.RemoveHybridConfigurationWellKnownSubDomain(CS$ < > 8__locals1.domain);
         using (ManageDelegation2Client manageDelegation = this.GetManageDelegation(text))
         {
             base.RemoveUri(manageDelegation, text, force);
         }
     }
     using (ManageDelegation2Client client = this.GetManageDelegation(CS$ < > 8__locals1.domain))
     {
         base.RemoveUri(client, CS$ < > 8__locals1.domain, force);
         base.ReleaseDomain(CS$ < > 8__locals1.domain, base.ApplicationIdentifier, force, client, () => LiveFederationProvision2.GetDomainStateFromDomainInfo(client.GetDomainInfo(CS$ < > 8__locals1.< > 4__this.ApplicationIdentifier, CS$ < > 8__locals1.domain)));
     }
 }