Exemple #1
0
        private async Task GerarLog(Encomenda encomenda, string message)
        {
            LogService logService = new LogService();
            bool       geraLog    = _config.GetValue <bool>("GeraArquivoLog");

            if (geraLog)
            {
                string fileName = $"{encomenda.Pedido}";
                var    log      = new RetornoLog();
                log.acao     = $"PostEncomendaPlataforma";
                log.message  = message;
                log.request  = encomenda;
                log.response = message;

                await logService.LogGerarArquivoAsync(fileName, "Plataforma", log);

                string retorno = $"OrderId: {encomenda.Pedido} - Nao Processado! - ({message}) - {DateTime.Now}";
                Console.WriteLine(retorno);
            }
        }
Exemple #2
0
        public async Task ProcessaEncomendasAsync()
        {
            using (var conn = dbConnectionFactory.Create())
            {
                var  plataformaRepository = new PlataformaRepository(conn, this._config);
                var  logService           = new LogService();
                bool geraLog     = _config.GetValue <bool>("GeraArquivoLog");
                var  listPedidos = await plataformaRepository.GetPedidosAsync();

                var totalPedidos = listPedidos.Count;

                Console.WriteLine($"-------------------------------------------------------------------------------------------------------");
                Console.WriteLine($"Processando Encomendas - ({totalPedidos})  - {DateTime.Now}");
                Console.WriteLine($"-------------------------------------------------------------------------------------------------------");

                if (listPedidos.Count > 0)
                {
                    Stopwatch sw = new Stopwatch();
                    sw.Start();
                    foreach (var pedido in listPedidos)
                    {
                        try
                        {
                            bool status = await plataformaRepository.CheckPedidoAsync(pedido.Pedido);

                            //teste();
                            //Console.WriteLine(GerarTrackingUrl(pedido));
                            if (status)
                            {
                                await PostPedidosAsync(pedido, plataformaRepository);
                            }
                            else
                            {
                                Console.WriteLine($"Pedido já cadastrado - OrderId: {pedido.Pedido}");
                            }
                        }
                        catch (Exception e)
                        {
                            string retorno = $"Erro OrderId: {pedido.Pedido} - ({e.Message}) - {DateTime.Now}.";
                            Console.WriteLine(retorno);

                            await plataformaRepository.PedidoLogAsync(pedido.Pedido, retorno);

                            if (geraLog)
                            {
                                string fileName = $"{pedido.Pedido}";
                                var    log      = new RetornoLog();
                                log.acao     = $"PostEncomendaPlataforma";
                                log.message  = retorno;
                                log.request  = pedido;
                                log.response = e.Message;

                                await logService.LogGerarArquivoAsync(fileName, "Plataforma", log);
                            }
                        }
                    }

                    sw.Stop();

                    Console.WriteLine($"Processamento de Pedidos da Plataforma Concluido com Sucesso. Total ({totalPedidos}) - {DateTime.Now} - ({sw.ElapsedMilliseconds / 1000}s)");
                }
            }
        }