public async Task <IActionResult> CalcularFrete(string CepDestino) { try { List <ShoppingCartItem> produtos = _carrinho.GetShoppingCartItens(); List <PacoteFrete> pacotes = _calcularPacote.CalcularPacotesdeProdutos(produtos); ValorPrazoFrete ValorPAC = await _wscorreios.CalcularFrete(CepDestino.ToString(), TipoFreteConstante.PAC, pacotes); ValorPrazoFrete ValorSEDEX = await _wscorreios.CalcularFrete(CepDestino.ToString(), TipoFreteConstante.SEDEX, pacotes); ValorPrazoFreteModel valorPrazoFreteModel = new ValorPrazoFreteModel(); valorPrazoFreteModel.ListaValorPrazoFrete = new List <ValorPrazoFrete>(); //_frete = ValorPAC; ValorPAC.SomaTotal = _carrinho.TotalCarrinho() + (decimal)ValorPAC.Valor; ValorSEDEX.SomaTotal = _carrinho.TotalCarrinho() + (decimal)ValorSEDEX.Valor; valorPrazoFreteModel.ListaValorPrazoFrete.Add(ValorPAC); valorPrazoFreteModel.ListaValorPrazoFrete.Add(ValorSEDEX); //valorPrazoFreteModel.SomaTotalFrete = valorPrazoFreteModel.ListaValorPrazoFrete[0].SomaTotal; return(PartialView("_CalculoFrete", valorPrazoFreteModel)); } catch (Exception e) { return(BadRequest(e)); } }
public async Task <IActionResult> CalcularFrete([FromRoute] string cepDestino) { var produtos = await _carrinhoCompras.TodosItemsCarrinho(); Frete frete = _cookieFrete.Consultar().Where(a => a.CEP == Convert.ToInt32(cepDestino) && a.CodCarrinho == StringMD5.GerarHash(produtos)).FirstOrDefault(); if (frete != null) { return(Ok(frete)); } //await _memoryCache.GetOrCreate("Itens",async () => await _carrinhoCompras.TodosItemsCarrinho()); List <Pacote> pacotes = _calcularPacote.CalcularPacotesDeProdutos(produtos); ValorPrazoFrete valorPAC = await _wscorreios.CalcularFrete(cepDestino, TipoFreteConstant.PAC, pacotes); ValorPrazoFrete valorSEDEX = await _wscorreios.CalcularFrete(cepDestino, TipoFreteConstant.SEDEX, pacotes); ValorPrazoFrete valorSEDEX10 = await _wscorreios.CalcularFrete(cepDestino, TipoFreteConstant.SEDEX10, pacotes); List <ValorPrazoFrete> lista = new List <ValorPrazoFrete>(); if (valorPAC != null) { lista.Add(valorPAC); } if (valorSEDEX != null) { lista.Add(valorSEDEX); } if (valorSEDEX10 != null) { lista.Add(valorSEDEX10); } frete = new Frete() { CEP = Convert.ToInt32(cepDestino), CodCarrinho = StringMD5.GerarHash(produtos), ListaValores = lista }; _cookieFrete.Cadastrar(frete); return(Ok(frete)); }
public async Task <IActionResult> CalcularFrete(int cepDestino) { try { List <ProdutoItem> produtos = CarregarProdutoDB(); List <Pacote> pacotes = _calcularPacote.CalcularPacotesDeProdutos(produtos); ValorPrazoFrete valorPAC = await _wscorreios.CalcularFrete(cepDestino.ToString(), TipoFreteConstant.PAC, pacotes); ValorPrazoFrete valorSEDEX = await _wscorreios.CalcularFrete(cepDestino.ToString(), TipoFreteConstant.SEDEX, pacotes); ValorPrazoFrete valorSEDEX10 = await _wscorreios.CalcularFrete(cepDestino.ToString(), TipoFreteConstant.SEDEX10, pacotes); List <ValorPrazoFrete> lista = new List <ValorPrazoFrete>(); if (valorPAC != null) { lista.Add(valorPAC); } if (valorSEDEX != null) { lista.Add(valorSEDEX); } if (valorSEDEX10 != null) { lista.Add(valorSEDEX10); } _cookieValorPrazoFrete.Cadastrar(lista); return(Ok(lista)); } catch (Exception e) { _cookieValorPrazoFrete.Remover(); return(BadRequest(e)); } }