Exemple #1
0
        /// <summary>
        /// Handle exception and build response for it.
        /// </summary>
        /// <param name="context">HTTP context.</param>
        /// <param name="requestBody">Request body content.</param>
        /// <param name="ex">Exception information.</param>
        private static Task HandleExceptionAsync(HttpContext context, string requestBody, Exception ex, AppSettings appSettings)
        {
            ErrorBuilder errorBuilder = new ErrorBuilder(context, requestBody, ex, appSettings);

            if (ex is ControllerException controllerEx)
            {
                return(BuildAndSendAsync(controllerEx, errorBuilder));
            }
            if (ex is RequestValidationException validationEx)
            {
                return(BuildAndSendAsync(validationEx, errorBuilder));
            }
            if (ex is AppBusinessException businessEx)
            {
                return(BuildAndSendAsync(businessEx, errorBuilder));
            }

            return(errorBuilder.BuildAndSendAsync());
        }