public void DomainJoinProactively()
        {
            TestLogger.LogMessage("Enter DomainJoin.DomainJoinProactively()");
            try
            {
                PlayReadyDomainJoinServiceRequest domainJoinRequest = new PlayReadyDomainJoinServiceRequest();
                domainJoinRequest.DomainServiceId = RequestConfigData.DomainServiceId;
                domainJoinRequest.DomainAccountId = RequestConfigData.DomainAccountId;
                domainJoinRequest.Uri             = RequestConfigData.DomainUri;

                DomainJoinReactively(domainJoinRequest);
            }
            catch (Exception ex)
            {
                if (ex.HResult == ServiceRequest.MSPR_E_NEEDS_INDIVIDUALIZATION)
                {
                    PlayReadyIndividualizationServiceRequest indivServiceRequest = new PlayReadyIndividualizationServiceRequest();

                    RequestChain requestChain = new RequestChain(indivServiceRequest);
                    requestChain.FinishAndReportResult(new ReportResultDelegate(HandleIndivServiceRequest_Finished));
                }
                else
                {
                    TestLogger.LogImportantMessage("DomainJoinProactively failed:" + ex.HResult);
                }
            }

            TestLogger.LogMessage("Leave DomainJoin.DomainJoinProactively");
        }
 public void DumpDomainJoinServiceRequest(PlayReadyDomainJoinServiceRequest domainJoinRequest)
 {
     if (domainJoinRequest != null)
     {
         TestLogger.LogMessage("DomainAccountId      = " + domainJoinRequest.DomainAccountId.ToString());
         TestLogger.LogMessage("DomainServiceId      = " + domainJoinRequest.DomainServiceId.ToString());
         TestLogger.LogMessage("DomainFriendlyName   = " + domainJoinRequest.DomainFriendlyName.ToString());
     }
 }
        protected virtual void DomainJoinServiceRequestCompleted(PlayReadyDomainJoinServiceRequest sender, Exception hrCompletionStatus)
        {
            TestLogger.LogImportantMessage("DomainJoinServiceRequestCompleted");

            if (hrCompletionStatus != null)
            {
                TestLogger.LogError("DomainJoinServiceRequestCompleted failed with " + hrCompletionStatus.HResult);
            }
        }
        void HandleDomainJoinServiceRequest(PlayReadyDomainJoinServiceRequest serviceRequest)
        {
            TestLogger.LogMessage(" ");
            TestLogger.LogMessage("Enter RequestChain.HandleDomainJoinServiceRequest()");

            _domainJoinAndReportResult = new DomainJoinAndReportResult(new ReportResultDelegate(HandleServiceRequest_Finished));
            _domainJoinAndReportResult.RequestConfigData = _requestConfigData;
            _domainJoinAndReportResult.DomainJoinReactively(serviceRequest);

            TestLogger.LogMessage("Leave RequestChain.HandleDomainJoinServiceRequest()");
        }
        async public void DomainJoinReactively(PlayReadyDomainJoinServiceRequest domainJoinRequest)
        {
            TestLogger.LogImportantMessage("Enter DomainJoin.DomainJoinReactively()");
            Exception exception = null;

            try
            {
                _serviceRequest = domainJoinRequest;

                TestLogger.LogMessage("DomainJoinRequest values before challenge:");
                DumpDomainJoinServiceRequest(domainJoinRequest);

                if (RequestConfigData.ManualEnabling)
                {
                    TestLogger.LogMessage("Manually posting the request...");

                    HttpHelper httpHelper = new HttpHelper(domainJoinRequest);
                    await httpHelper.GenerateChallengeAndProcessResponse();
                }
                else
                {
                    TestLogger.LogMessage("Begin domain join service request...");
                    await domainJoinRequest.BeginServiceRequest();
                }
            }
            catch (Exception ex)
            {
                TestLogger.LogMessage("Saving exception..");
                exception = ex;
            }
            finally
            {
                TestLogger.LogMessage("Post-DomainJoin Values:");
                DumpDomainJoinServiceRequest(domainJoinRequest);
                if (exception == null)
                {
                    TestLogger.LogMessage("ResponseCustomData   = " + domainJoinRequest.ResponseCustomData);
                }

                DomainJoinServiceRequestCompleted(domainJoinRequest, exception);
            }

            TestLogger.LogImportantMessage("Leave DomainJoin.DomainJoinReactively()");
        }
        protected override void DomainJoinServiceRequestCompleted(PlayReadyDomainJoinServiceRequest sender, Exception hrCompletionStatus)
        {
            TestLogger.LogMessage("Enter DomainJoinAndReportResult.DomainJoinServiceRequestCompleted()");

            if (hrCompletionStatus == null)
            {
                TestLogger.LogImportantMessage("***Domain Join succeeded***");
                _reportResult(true, null);
            }
            else
            {
                if (!PerformEnablingActionIfRequested(hrCompletionStatus))
                {
                    TestLogger.LogError("DomainJoinServiceRequestCompleted ERROR: " + hrCompletionStatus.ToString());
                    _reportResult(false, null);
                }
            }

            TestLogger.LogMessage("Leave DomainJoinAndReportResult.DomainJoinServiceRequestCompleted()");
        }