Example #1
0
        public async Task <IActionResult> RemoveItemCarrinho([FromRoute] long id)
        {
            try
            {
                if (id < 0)
                {
                    _logger.LogWarning($"Carrinho - RemoveItemCarrinho - Erro - Id menor que zero '{id}'");

                    return(StatusCode((int)HttpStatusCode.BadRequest,
                                      Json("ItemCarrinho id inválido")));
                }

                var claimId = User?.FindFirst(ClaimTypes.PrimarySid)
                              ?.Value;

                if (long.TryParse(claimId, out long clienteId))
                {
                    await _carrinhoService.RemoteItemCarrinhoAsync(clienteId, id);

                    _logger.LogInformation($"Carrinho - RemoveItemCarrinho - Sucesso - ClienteId '{clienteId}', itemId '{id}'");

                    return(StatusCode((int)HttpStatusCode.OK,
                                      Json("Item removido do carrinho!")));
                }
                else
                {
                    _logger.LogWarning($"Carrinho - RemoveItemCarrinho - Erro - ClienteId não numérico '{claimId}'");

                    return(StatusCode((int)HttpStatusCode.Unauthorized));
                }
            }
            catch (Exception ex)
            {
                _logger.LogError(ex, $"Carrinho - RemoveItemCarrinho - Erro - Id {id}");

                return(StatusCode((int)HttpStatusCode.InternalServerError,
                                  Json("Ocorreu um erro ao processar a requisição.")));
            }
        }