コード例 #1
0
        /// <summary>
        /// 
        /// </summary>
        /// <param name="request"></param>
        /// <param name="headerArgs"></param>
        /// <returns></returns>
        public ActivateServiceOrderResponseDto ActivateServiceOrder(ActivateServiceOrderRequestDto request, HeaderArgs headerArgs)
        {
            if (string.IsNullOrWhiteSpace(request.TN)) throw new ArgumentNullException(request.TN);

            var getActivateServiceOrderResponse = new ActivateServiceOrderResponseDto()
            {
                Status = false
            };

            try
            {
                if (Boolean.Parse(ConfigurationManager.AppSettings["NewPerformSOAEnabled"]))
                {
                    var esbRequest = CreateWpsActivateServiceOrderRequest(request, headerArgs);
                    var client = new ManageTelephoneNumberRegistrationClient();
                    var esbResponse = client.UpdateLineNumberPortability(esbRequest.ManageTelephoneNumberRegistrationUpdateLineNumberPortabilityRequest);

                    // Handle any unsuccessful conditions
                    if (esbResponse.ExecutionContext.ExecutionStatus.ExecutionStatusSuccessFlag == false)
                    {
                        var messages = esbResponse.ExecutionContext.ExecutionStatus.ExecutionStatusMessage;
                        var errorMessage = String.Empty;
                        var sb = new StringBuilder();

                        for (int i = 0; i < messages.Length; i++)
                        {
                            sb.AppendLine(String.Format("Error {0}:: Severity: {1}, Code: {2}, Message: {3}",
                                i + 1,
                                messages[i].ExecutionStatusSeverity.ToString(),
                                messages[i].ExecutionStatusCode,
                                messages[i].ExecutionStatusDescription));
                        }

                        if (sb.ToString().Length > 0)
                        {
                            errorMessage =
                                String.Concat(
                                    String.Format(
                                        "The activation process for TN # {0} has failed with the following errors: \n\n",
                                        request.TN), sb.ToString());
                        }
                        else
                        {
                            errorMessage = String.Format(
                                "The activation process for TN # {0} has failed for unknown reasons.",
                                request.TN);
                        }

                        throw new EnterpriseServiceException(errorMessage);
                    }
                }
                else
                {
                    var esbRequest = CreateActivateServiceOrderRequest(request, headerArgs);
                    _serviceOrderOrchestration.resumeServiceOrder(esbRequest);
                }

               getActivateServiceOrderResponse.Status = true;
            }
            catch (System.Exception e)
            {
                var isServiceException = _enterpriseExceptionHandler.HandleGeneralServiceExceptions(e);
                if (isServiceException)
                {
                    var myException = new System.Exception(Constants.IsServiceExceptionUpperCase, e);
                    throw myException;
                }

                throw;
            }

            return getActivateServiceOrderResponse;
        }
コード例 #2
0
        /// <summary>
        /// Gets status of SOA for subscriber
        /// </summary>
        /// <param name="request"></param>
        /// <param name="headerArgs"></param>
        /// <returns></returns>
        public LineNumberPortabilityStatusDto GetLineNumberPortabilityStatus(ActivateServiceOrderRequestDto request, HeaderArgs headerArgs)
        {
            if (string.IsNullOrWhiteSpace(request.TN)) throw new ArgumentNullException(request.TN);

            try
            {
                var esbRequest = CreateLineTestPortabilityStatusRequest(request, headerArgs);
                var client = new ManageTelephoneNumberRegistrationClient();
                var esbResponse =
                    client.GetLineNumberPortabilityStatus(esbRequest.ManageTelephoneNumberRegistrationGetLineNumberPortabilityStatusRequest);

                // Handle any unsuccessful conditions
                if (esbResponse.ExecutionContext.ExecutionStatus.ExecutionStatusSuccessFlag == false)
                {
                    var messages = esbResponse.ExecutionContext.ExecutionStatus.ExecutionStatusMessage;
                    var errorMessage = String.Empty;
                    var sb = new StringBuilder();

                    for (int i = 0; i < messages.Length; i++)
                    {
                        sb.AppendLine(String.Format("Error {0}:: Severity: {1}, Code: {2}, Message: {3}",
                            i + 1,
                            messages[i].ExecutionStatusSeverity.ToString(),
                            messages[i].ExecutionStatusCode,
                            messages[i].ExecutionStatusText));
                    }

                    if (sb.ToString().Length > 0)
                    {
                        errorMessage =
                            String.Concat(
                                String.Format(
                                    "The activation process for TN # {0} has failed with the following errors: \n\n",
                                    request.TN), sb.ToString());
                    }
                    else
                    {
                        errorMessage = String.Format(
                            "The activation process for TN # {0} has failed for unknown reasons.",
                            request.TN);
                    }

                    throw new EnterpriseServiceException(errorMessage);
                }

                // Parse Data

                return new LineNumberPortabilityStatusDto()
                {
                    StatusCode = esbResponse.LineNumberPortabilityStatus.StatusCode,
                    StatusSource = esbResponse.LineNumberPortabilityStatus.StatusSource,
                    Message = esbResponse.LineNumberPortabilityStatus.Message
                };

            }
            catch (System.Exception e)
            {
                var isServiceException = _enterpriseExceptionHandler.HandleGeneralServiceExceptions(e);
                if (isServiceException)
                {
                    var myException = new System.Exception(Constants.IsServiceExceptionUpperCase, e);
                    throw myException;
                }
                throw;
            }
        }