protected static Exception ConvertPayloadToException(FailResponsePayload exception)
        {
            switch (exception.Exception.Name)
            {
            case "NotRegisteredException":
                return(new NotRegisteredException(exception.Exception.Message));

            case "InvalidLoginException":
                return(new InvalidLoginException(exception.Exception.Message));

            case "AbortActivityChangeException":
                return(new AbortActivityChangeException(exception.Exception.Message));

            case "SecurityException":
                return(new SecurityException(exception.Exception.Message));

            case "DataBaseException":
                return(new DataBaseException(exception.Exception.Message));

            case "UserException":
                return(new UserException(exception.Exception.Message));

            case "CommunicationException":
                return(new CommunicationException(exception.Exception.Message));

            default:
                return(new Exception(exception.Exception.Message));
            }
        }
Ejemplo n.º 2
0
        protected IHttpActionResult GetExceptionResult(Exception e, RequestSecurityTokenPayload authorizationPayload)
        {
            var failPayload = new FailResponsePayload(GetExceptionPayload(e));
            var content     = JsonConvert.SerializeObject(failPayload, Formatting.None, BehaviorsConfiguration.SerializerSettings);

            return(GetResponseResultWithAuthentication(
                       value: content,
                       statusCode: HttpStatusCode.InternalServerError,
                       authorizationPayload: authorizationPayload));
        }
        protected static Exception ProcessErrorResponse(WebException e)
        {
            HttpWebResponse response = (HttpWebResponse)e.Response;

            if (response != null && response.StatusCode == HttpStatusCode.InternalServerError)
            {
                string responseString = FetchResponseString(response);

                try {
                    FailResponsePayload exceptionPayload = JsonConvert.DeserializeObject <FailResponsePayload>(responseString);
                    return(ConvertPayloadToException(exceptionPayload));
                } catch (Exception parseException) {
                    return(new CommunicationException($"{e.Message} Failed to parse the error response.", parseException));
                }
            }
            else
            {
                return(new CommunicationException(e.Message));
            }
        }