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)); } }
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)); } }