public async Task <IActionResult> Index(string codigo = null) { try { string idUsuario = GetUserId(); CarrinhoCliente carrinho; if (!string.IsNullOrWhiteSpace(codigo)) { var produto = await catalogoService.GetProduto(codigo); if (produto == null) { return(RedirectToAction("ProdutoNaoEncontrado", "Carrinho", codigo)); } ItemCarrinho itemCarrinho = new ItemCarrinho(produto.Codigo, produto.Codigo, produto.Nome, produto.Preco, 1, produto.UrlImagem); carrinho = await carrinhoService.AddItem(idUsuario, itemCarrinho); } else { carrinho = await carrinhoService.GetCarrinho(idUsuario); } await CheckUserCounterData(); return(View(carrinho)); } catch (BrokenCircuitException e) { logger.LogError(e, e.Message); HandleBrokenCircuitException(catalogoService); } catch (Exception e) { logger.LogError(e, e.Message); HandleException(); } return(View()); }