Ejemplo n.º 1
0
        public void OnException(ExceptionContext context)
        {
            DomainException domainException = context.Exception as DomainException;

            if (domainException != null)
            {
                string json = JsonConvert.SerializeObject(domainException.Message);
                context.Result = new BadRequestObjectResult(json);
                context.HttpContext.Response.StatusCode = (int)HttpStatusCode.BadRequest;
            }

            ApplicationException applicationException = context.Exception as ApplicationException;

            if (applicationException != null)
            {
                string json = JsonConvert.SerializeObject(applicationException.Message);
                context.Result = new BadRequestObjectResult(json);
                context.HttpContext.Response.StatusCode = (int)HttpStatusCode.BadRequest;
            }

            InfrastructureException infrastructureException = context.Exception as InfrastructureException;

            if (infrastructureException != null)
            {
                string json = JsonConvert.SerializeObject(infrastructureException.Message);
                context.Result = new BadRequestObjectResult(json);
                context.HttpContext.Response.StatusCode = (int)HttpStatusCode.BadRequest;
            }
        }
Ejemplo n.º 2
0
        public IEnumerable <MoviesViewModel> ConsultarFilmes(MoviesViewModel filtro)
        {
            IEnumerable <MoviesViewModel> listaFilmes = new List <MoviesViewModel>();

            try
            {
                using (var client = new HttpClient())
                {
                    client.BaseAddress = new System.Uri(UriFilmes);
                    client.DefaultRequestHeaders.Accept.Clear();
                    client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));

                    //GET
                    var response = client.GetAsync("");
                    response.Wait();
                    var result = response.Result;

                    if (result.IsSuccessStatusCode)
                    {
                        var movies = result.Content.ReadAsAsync <IList <MoviesViewModel> >();
                        movies.Wait();

                        listaFilmes = movies.Result;
                    }
                }
                return(listaFilmes);
            }
            catch (Exception e)
            {
                var ex = new InfrastructureException(e);
                throw ex;
            }
        }
        private Task HandleExceptionAsync(HttpContext context, Exception ex)
        {
            _logger.LogError(
                $"Error while processing request {context.Request.Method} {context.Request.Path}: {ex.Message}");
            if (ex is AutoMapperMappingException mappingException && mappingException.InnerException != null)
            {
                ex = mappingException.InnerException;
            }
            var code = ex switch
            {
                ArgumentException _ => HttpStatusCode.BadRequest,
                BadDataException _ => HttpStatusCode.BadRequest,
                DataChangedException _ => HttpStatusCode.BadRequest,
                ForbiddenException _ => HttpStatusCode.Forbidden,
                InfrastructureException _ => HttpStatusCode.InternalServerError,
                InvalidDataException _ => HttpStatusCode.BadRequest,
                NotFoundException _ => HttpStatusCode.NotFound,
                UnauthorizedException _ => HttpStatusCode.Unauthorized,
                _ => HttpStatusCode.InternalServerError
            };

            var result = JsonSerializer.Serialize(new { error = ex.Message });

            context.Response.ContentType = "application/json";
            context.Response.StatusCode  = (int)code;
            return(context.Response.WriteAsync(result));
        }
    }
Ejemplo n.º 4
0
 public Task <ExceptionResponse> Map(System.Exception exception)
 {
     return(exception switch
     {
         DomainException ex => _exceptionResponseFactory.Create(ex),
         AppException ex => _exceptionResponseFactory.Create(ex),
         InfrastructureException ex => _exceptionResponseFactory.Create(ex),
         _ => _exceptionResponseFactory.Create("error", "There was an error")
     });
Ejemplo n.º 5
0
        private async static Task HandleErrorAsync(HttpContext context, Exception exception)
        {
            var errorCode  = "Error";
            var message    = exception.Message;
            var statusCode = 400;

            (errorCode, message) = exception switch
            {
                InfrastructureException ex => (ex.Code, ex.Message),
                ApplicationException ex => (ex.Code, ex.Message),
                DomainException ex => (ex.Code, ex.Message),
                _ => ("Error", "There was an error.")
            };

            context.Response.StatusCode = (int)statusCode;
            await context.Response.WriteAsJsonAsync(new { errorCode, message });
        }
        public void OnException(ExceptionContext context)
        {
            var jsonSettings = new JsonSerializerSettings
            {
                ContractResolver = new CamelCasePropertyNamesContractResolver()
            };

            if (context.Exception is DomainException)
            {
                DomainException domainException = context.Exception as DomainException;
                string          json            = JsonConvert.SerializeObject(new ErrorResult(domainException), jsonSettings);

                context.Result = new BadRequestObjectResult(json);
                context.HttpContext.Response.StatusCode = (int)HttpStatusCode.BadRequest;
            }

            else if (context.Exception is CleanArchitecture.Application.ApplicationException)
            {
                CleanArchitecture.Application.ApplicationException applicationException = context.Exception as CleanArchitecture.Application.ApplicationException;
                string json = JsonConvert.SerializeObject(new ErrorResult(applicationException), jsonSettings);

                context.Result = new BadRequestObjectResult(json);
                context.HttpContext.Response.StatusCode = (int)HttpStatusCode.BadRequest;
            }

            else if (context.Exception is InfrastructureException)
            {
                InfrastructureException infrastructureException = context.Exception as InfrastructureException;
                string json = JsonConvert.SerializeObject(new ErrorResult(infrastructureException), jsonSettings);

                context.Result = new BadRequestObjectResult(json);
                context.HttpContext.Response.StatusCode = (int)HttpStatusCode.BadRequest;
            }
            else
            {
                string json = JsonConvert.SerializeObject(new ErrorResult(context.Exception), jsonSettings);

                context.Result = new ObjectResult(json);
                context.HttpContext.Response.StatusCode = (int)HttpStatusCode.InternalServerError;
            }
        }