Exemplo n.º 1
0
        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);
            }
        }