public PedidoTransacaoViewModel MapearParaPedido(CarrinhoViewModel carrinho, EnderecoViewModel endereco) { var pedido = new PedidoTransacaoViewModel { ValorTotal = carrinho.ValorTotal, Itens = carrinho.Itens, Desconto = carrinho.Desconto, VoucherUtilizado = carrinho.VoucherUtilizado, VoucherCodigo = carrinho.Voucher?.Codigo }; if (endereco != null) { pedido.Endereco = new EnderecoViewModel { Logradouro = endereco.Logradouro, Numero = endereco.Numero, Bairro = endereco.Bairro, Cep = endereco.Cep, Complemento = endereco.Complemento, Cidade = endereco.Cidade, Estado = endereco.Estado }; } return(pedido); }
public async Task <IActionResult> FinalizarPedido(PedidoTransacaoViewModel pedidoTransacao) { if (!ModelState.IsValid) { return(View("Pagamento", _comprasBffService.MapearParaPedido( await _comprasBffService.ObterCarrinho(), null))); } var retorno = await _comprasBffService.FinalizarPedido(pedidoTransacao); if (ResponsePossuiErros(retorno)) { var carrinho = await _comprasBffService.ObterCarrinho(); if (carrinho.Itens.Count == 0) { return(RedirectToAction("Index", "Carrinho")); } var pedidoMap = _comprasBffService.MapearParaPedido(carrinho, null); return(View("Pagamento", pedidoMap)); } return(RedirectToAction("PedidoConcluido")); }
public async Task <ResponseResult> FinalizarPedido(PedidoTransacaoViewModel pedidoTransacao) { var pedidoContent = ObterConteudo(pedidoTransacao); var response = await _httpClient.PostAsync("/compras/pedido/", pedidoContent); if (!TratarErrosResponse(response)) { return(await DeserializarObjetoResponse <ResponseResult>(response)); } return(RetornoOk()); }