/// <summary> /// Creates the error response. /// </summary> /// <param name="request">The request.</param> /// <param name="requestDto">The request dto.</param> /// <param name="ex">The ex.</param> /// <returns></returns> public static HttpError CreateErrorResponse(global::ServiceStack.Web.IRequest request, object requestDto, Exception ex) { try { Core.Log.WebEasNLogExtensions.ExecuteUsingLogicalContext(() => LogError(ex), request.SessionAs <IWebEasSession>(), requestDto); WebEasResponseStatus errorResponse = CreateWebEasResponseStatus(ex, requestDto); #if DEBUG errorResponse.StackTrace = GetStackTrace(request, requestDto, ex); errorResponse.Errors = GetErrors(ex, new List <ResponseError>()); #endif return(new HttpError(errorResponse, GetStatusCode(ex), GetErrorCode(ex), errorResponse.Message)); } catch (Exception exx) { // Trace.TraceInformation(exx.Message); return(new HttpError(exx, GetStatusCode(ex), GetErrorCode(ex), ex.Message)); } }
/// <summary> /// Creates the web eas response status. /// </summary> /// <param name="exception">The exception.</param> /// <param name="dto">The dto.</param> /// <returns></returns> public static WebEasResponseStatus CreateWebEasResponseStatus(Exception exception, object dto) { var errorResponse = new WebEasResponseStatus { Caption = GetCaption(exception) }; errorResponse.Message = GetMessage(exception) ?? string.Format("Nastala interná chyba pri volaní {0}. Chyba bola zaevidovaná a zaslaná na spracovanie.", dto == null ? "unknown" : dto.GetType().Name); #if DEBUG if (exception is WebEasException && ((WebEasException)exception).HasDetailMessage) { errorResponse.DetailMessage = string.Format("{0} {1}{2}{3}", exception.GetExceptionTypeName(), exception.GetIdentifier(), Environment.NewLine, ((WebEasException)exception).DetailMessage); } else { errorResponse.DetailMessage = string.Format("{0} {1}{2}{3}", exception.GetExceptionTypeName(), exception.GetIdentifier(), Environment.NewLine, GetDetailMessage(exception, new StringBuilder()).ToString()); } #else errorResponse.DetailMessage = "Kontaktujte Call Centrum s kódom : " + exception.GetIdentifier(); #endif return(errorResponse); }