private async Task <ValorPrazoFrete> CalcularValorPrazoFrete(String cepDestino, String tipoFrete, Pacote pacote) { var cepOrigem = _configuration.GetValue <String>("Frete:CepOrigem"); var maoPropria = _configuration.GetValue <String>("Frete:MaoPropria"); var avisoRecebimento = _configuration.GetValue <String>("Frete:AvisoRecebimento"); var diametro = Math.Max(Math.Max(pacote.Comprimento, pacote.Largura), pacote.Altura); cResultado resultado = await _servico.CalcPrecoPrazoAsync("", "", tipoFrete, cepOrigem, cepDestino, pacote.Peso.ToString(), 1, pacote.Comprimento, pacote.Altura, pacote.Largura, diametro, maoPropria, 0, avisoRecebimento); if (resultado.Servicos[0].Erro == "0") { var valorLimpo = resultado.Servicos[0].Valor.Replace(".", ""); var valorFinal = double.Parse(valorLimpo); return(new ValorPrazoFrete() { TipoFrete = TipoFreteConstant.GetNames(tipoFrete), CodTipoFrete = tipoFrete, Prazo = int.Parse(resultado.Servicos[0].PrazoEntrega), Valor = valorFinal }); } else if (resultado.Servicos[0].Erro == "008") { //Ex.: SEDEX10 - não entrega naquela região return(null); } else { throw new Exception("Erro: " + resultado.Servicos[0].MsgErro); } }
private async Task <ValorPrazoFrete> CalcularValorPrazoFrete(String cepDestino, String tipoFrete, Pacote pacote) { Servicos resultado = await Calcular(tipoFrete, cepDestino, pacote); if (resultado.cServico.Erro == "0") { var valorLimpo = resultado.cServico.Valor.Replace(".", ""); var valorFinal = double.Parse(valorLimpo); return(new ValorPrazoFrete() { TipoFrete = TipoFreteConstant.GetNames(tipoFrete), CodTipoFrete = tipoFrete, Prazo = int.Parse(resultado.cServico.PrazoEntrega), Valor = valorFinal }); } else if (resultado.cServico.Erro == "008" || resultado.cServico.Erro == "-888") { //Ex.: SEDEX10 - não entrega naquela região return(null); } else { throw new Exception("Erro: " + resultado.cServico.MsgErro); } }