Exemple #1
0
        static void BuscarLogradourosBairros(CidadeDAO cidade)
        {
            Console.WriteLine("A busca pode demorar alguns minutos. Aguarde...");
            Bairro b  = null;
            var    sw = new Stopwatch();

            for (int id = 39; id < cidade.BairrosDAO.Count; id++)
            {
                sw.Start();
                Task.Run(async() =>
                {
                    var city = new Cidade(cidade.Nome, cidade.UF);
                    b        = await Correios.GetLogradouroPorBairroAsync(city, cidade.BairrosDAO[id].Nome, new Status());
                }).Wait();
                foreach (var log in b.Logradouros)
                {
                    LogradouroDAO.AdicionarLogradouro(log, cidade.Id, cidade.BairrosDAO[id].Id);
                    Console.WriteLine($"{log.Nome} - {log.Cep} adicionado ao bd");
                }
                sw.Stop();
                Console.WriteLine($"A busca do {b.Nome} retornou {b.Logradouros.Count} logradouros e demorou {sw.Elapsed.TotalMinutes:0.0} min");
                Console.WriteLine("Aguardando 5 seg para buscar novamente");
                Task.Delay(1000 * 5 * 1).Wait();
            }
        }
Exemple #2
0
        static void Main(string[] args)
        {
            var distance        = 159.5;
            var product         = new { Name = "Xbox", Weight = 2.6 };
            var shippingService = new ShippingService();

            var correiosShipping = new Correios();
            var jadlogShipping   = new Jadlog();
            var tntShipping      = new Tnt();
            var upsShipping      = new Ups();

            shippingService.SetCalculateShipping(correiosShipping);
            double correiosShippingPrice = shippingService.Calculate(product.Weight, distance);

            shippingService.SetCalculateShipping(jadlogShipping);
            double jadlogShippingPrice = shippingService.Calculate(product.Weight, distance);

            shippingService.SetCalculateShipping(tntShipping);
            double tntShippingPrice = shippingService.Calculate(product.Weight, distance);

            shippingService.SetCalculateShipping(upsShipping);
            double upsShippingPrice = shippingService.Calculate(product.Weight, distance);

            System.Console.WriteLine($"Correios: {correiosShippingPrice:C2}");
            System.Console.WriteLine($"Jadlog: {jadlogShippingPrice:C2}");
            System.Console.WriteLine($"TNT: {tntShippingPrice:C2}");
            System.Console.WriteLine($"UPS: {upsShippingPrice:C2}");
        }
Exemple #3
0
 public static bool LocaizaCep(string CEP)
 {
     try
     {
         if (Correios.ConsultaCEP(CEP))
         {
             Cidade      = Correios.Cidade;
             Bairro      = Correios.Bairro;
             Rua         = Correios.Endereco;
             Bairro      = Correios.Bairro;
             Estado      = Correios.Estado;
             Complemento = Correios.Complemento;
         }
         else
         {
             Erro = Correios.Erro;
             return(false);
         }
     }
     catch (Exception ex)
     {
         Erro = ex.Message;
         return(false);
     }
     return(true);
 }
Exemple #4
0
        static AreaCobertura CriarEntidadeAreaCobertura(Correios correio)
        {
            AreaCobertura retorno = new AreaCobertura();

            retorno.CepInicio         = correio.CepInicio;
            retorno.CepTermino        = correio.CepFim;
            retorno.DataCriacao       = DateTime.Now.Date;
            retorno.TransportadoraId  = 1;
            retorno.UltimaAtualizacao = DateTime.Now.Date;

            return(retorno);
        }
Exemple #5
0
        static void Main(string[] args)
        {
            Correios _c = new Correios();

            Console.Write("Digite Cep: ");

            var _key = Console.ReadLine();

            var _result = _c.ConsultaCep(_key);

            Console.WriteLine(_result.Mensagem);

            Console.Read();
        }
Exemple #6
0
        static List <Correios> LerArquivoCorreios(bool remessaExpressa)
        {
            List <Correios> listaCorreios = new List <Correios>();
            string          con           = @"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\Users\rgcarneiro\Downloads\CepXPeso_Correios_atualizado_Accentiv.xls;Extended Properties='Excel 8.0;HDR=Yes;'";

            using (OleDbConnection connection = new OleDbConnection(con))
            {
                connection.Open();
                OleDbCommand command = new OleDbCommand("select * from [Correio$]", connection);
                using (OleDbDataReader dr = command.ExecuteReader())
                {
                    while (dr.Read())
                    {
                        if (remessaExpressa)
                        {
                            if (dr[8].ToString() == "Remessa Expressa")
                            {
                                Correios planilhaCorreios = new Correios
                                {
                                    Origem    = dr[0].ToString(),
                                    CepInicio = Convert.ToInt32(dr[1]),
                                    CepFim    = Convert.ToInt32(dr[2]),
                                    PesoDe    = Convert.ToInt32(dr[3]),
                                    PesoAte   = Convert.ToInt32(dr[4]),
                                    Custo     = Convert.ToDecimal(dr[5])
                                };

                                listaCorreios.Add(planilhaCorreios);
                            }
                        }
                        else
                        {
                            Correios planilhaCorreios = new Correios
                            {
                                Origem    = dr[0].ToString(),
                                CepInicio = Convert.ToInt32(dr[1]),
                                CepFim    = Convert.ToInt32(dr[2]),
                                PesoDe    = Convert.ToInt32(dr[3]),
                                PesoAte   = Convert.ToInt32(dr[4]),
                                Custo     = Convert.ToDecimal(dr[5])
                            };

                            listaCorreios.Add(planilhaCorreios);
                        }
                    }
                }
            }

            return(listaCorreios);
        }
Exemple #7
0
        static PesoValor CriarEntidadePesoValor(Correios correio, int idAreaCobertura)
        {
            var retorno = new PesoValor();

            retorno.AreaCoberturaId   = idAreaCobertura;
            retorno.PesoMinimo        = (Convert.ToDecimal(correio.PesoDe) / 1000);
            retorno.PesoMaximo        = (Convert.ToDecimal(correio.PesoAte) / 1000);
            retorno.DataCriacao       = DateTime.Now;
            retorno.UltimaAtualizacao = DateTime.Now;

            if (correio.Origem == "SAO PAULO")
            {
                retorno.Valor = correio.Custo;
            }
            else
            {
                retorno.ValorCuritiba = correio.Custo;
            }

            return(retorno);
        }
        public double Calculate(Purchase purchase)
        {
            double discount = 0;
            var    correios = new Correios();

            if (purchase.Value > 100) // Rule 1
            {
                var standardPriceTabletable = new StandardPriceTable();
                discount = standardPriceTabletable.DiscountTo(purchase.Value);
            }

            if (purchase.Value > 200) // Rule 2
            {
                var differentiatedPriceTable = new DifferentiatedPriceTable();
                discount = differentiatedPriceTable.DiscountTo(purchase.Value);
            }

            // Rule 3
            // Rule ...

            var shipping = correios.Calculate(purchase.City);

            return(purchase.Value * (1 - discount) + shipping);
        }
        //GET: /api/UserProfile
        public async Task <Object> GetUserProfile()
        {
            //pega o UserID do Token JWT gerado
            string userId = User.Claims.First(c => c.Type == "UserID").Value;
            var    user   = await _userManager.FindByIdAsync(userId);

            //monstro criado em tentativas falhas que eu tive medo de destruir

            /*  string nCdEmpresa ="";
             * string sDsSenha   ="";      //   "<sDsSenha></sDsSenha>"
             * string nCdServico ="04014";           // "<nCdServico>04014</nCdServico>"
             * string sCepOrigem ="40393000";          // "<sCepOrigem>40393000</sCepOrigem>"
             * string sCepDestino = user.Cep;          // "<sCepDestino>14056724</sCepDestino>"
             * string nVlPeso ="1";          // "<nVlPeso>1</nVlPeso>"
             * int nCdFormato =3;          // "<nCdFormato>3</nCdFormato>"
             * Decimal nVlComprimento =5;          // "<nVlComprimento>5</nVlComprimento>"
             * Decimal nVlAltura =0;          // "<nVlAltura>0</nVlAltura>"
             * Decimal nVlLargura =7;          // "<nVlLargura>7</nVlLargura>"
             * Decimal nVlDiametro =3;          // "<nVlDiametro>3</nVlDiametro>"
             * string sCdMaoPropria ="S";          // "<sCdMaoPropria>S</sCdMaoPropria>"
             * Decimal nVlValorDeclarado =0;          // "<nVlValorDeclarado>0</nVlValorDeclarado>"
             * string sCdAvisoRecebimento ="S";          // "<sCdAvisoRecebimento>S</sCdAvisoRecebimento>";
             * var binding = new BasicHttpBinding()
             *   {
             *       Name = "BasicHttpBinding_CorreiosService",
             *       MaxBufferSize = 2147483647,
             *       MaxReceivedMessageSize = 2147483647
             *   };
             * var endpoint = new EndpointAddress("http://localhost:5000/api/UserProfile");
             * var correios = new ServiceReference.CalcPrecoPrazoWSSoapClient(binding, endpoint);
             * var consulta = correios.CalcPrecoPrazoAsync(nCdEmpresa, sDsSenha,nCdServico,sCepOrigem, sCepDestino,nVlPeso,nCdFormato,
             * nVlComprimento,nVlAltura, nVlLargura, nVlDiametro, sCdMaoPropria, nVlValorDeclarado, sCdAvisoRecebimento);
             */
            //consulta a api SOAP dos correios, res em XML
            string consulta = Correios.CallWebService(user.Cep);
            //filtra a informação desejada na resposta xml
            String searchString = "<Valor>";
            int    startIndex   = consulta.IndexOf(searchString);

            searchString = "</" + searchString.Substring(1);
            int       endIndex  = consulta.IndexOf(searchString);
            String    substring = consulta.Substring(startIndex, endIndex + searchString.Length - startIndex);
            XDocument doc       = XDocument.Parse(substring);
            string    valor     = "";

            foreach (XElement valorElement in doc.Descendants("Valor"))
            {
                string valorValue = (string)valorElement;
                valor += valorValue;
            }
            return(new
            {
                user.Nome,
                user.Saldo,
                user.UserName,
                user.Cep,
                user.N_conta,
                user.PhoneNumber,
                valor
            });
        }
Exemple #10
0
        static void MostrarBairros(CidadeDAO cidade, bool semLogradouro = false)
        {
            int ini = 0;
            int fim = 10;
            int q   = 10;

            if (fim > cidade.BairrosDAO.Count)
            {
                fim = cidade.BairrosDAO.Count;
            }
            Console.WriteLine("Use as setas <- e -> para exibir ou ESC para sair.");
            Console.WriteLine("Para buscar individualmente aperte TAB e o id do bairro.");
            ConsoleKey key = ConsoleKey.A;

            while (key != ConsoleKey.Escape)
            {
                Console.WriteLine("ID\tID Banco\tBairro");
                for (int i = ini; i < fim; i++)
                {
                    Console.WriteLine($"{i}\t{cidade.BairrosDAO[i].Id}\t{cidade.BairrosDAO[i].Nome}");
                }
                key = Console.ReadKey().Key;
                if (key == ConsoleKey.RightArrow)
                {
                    if (fim + q > cidade.BairrosDAO.Count)
                    {
                        fim = cidade.BairrosDAO.Count;
                        ini = fim - (fim - ini);
                    }
                    else
                    {
                        ini += q;
                        fim += q;
                    }
                }
                else if (key == ConsoleKey.LeftArrow)
                {
                    if (ini - q < 0)
                    {
                        ini = 0;
                        fim = q;
                        if (fim > cidade.BairrosDAO.Count)
                        {
                            fim = cidade.BairrosDAO.Count;
                        }
                    }
                    else
                    {
                        ini -= q;
                        fim -= q;
                    }
                }
                else if (key == ConsoleKey.Tab)
                {
                    Console.Write("ID: ");
                    var id = Convert.ToInt32(Console.ReadLine());
                    Console.WriteLine("A busca pode demorar alguns minutos. Aguarde...");
                    Bairro b  = null;
                    var    sw = new Stopwatch();
                    sw.Start();
                    var status = new Status();
                    Task.Run(async() =>
                    {
                        var city = new Cidade(cidade.Nome, cidade.UF);
                        b        = await Correios.GetLogradouroPorBairroAsync(city, cidade.BairrosDAO[id].Nome, status);
                    }).Wait();
                    sw.Stop();

                    foreach (var log in b.Logradouros)
                    {
                        LogradouroDAO.AdicionarLogradouro(log, cidade.Id, cidade.BairrosDAO[id].Id);
                    }
                    Console.WriteLine($"A busca retornou {b.Logradouros.Count} logradouros e demorou {sw.Elapsed.TotalMinutes:0.0} min");
                }
            }
        }