public async Task CarregaJogosDeAmanha(bool descending = false, bool headless = false, bool ignorarHorario = false)
        {
            while (ResultadosSiteHelper.CarregandoJogos)
            {
                await Task.Delay(400000);
            }

            var idContainer = _idContainerRepository.TrazerIdContainerAmanha();

            if (idContainer != null && !ignorarHorario)
            {
                return;
            }

            bool depoisDasSete = DateTime.Now >= new DateTime(DateTime.Now.Year, DateTime.Now.Month, DateTime.Now.Day, 19, 00, 00);

            if (depoisDasSete || ignorarHorario)
            {
                var data = DateTime.Now.Date.AddDays(1).Date;
                _telegramService.EnviaMensagemParaOGrupo($"Carregando Jogos de Amanhã {data}");

                var container = _idContainerRepository.TrazerIdContainerAmanha();
                if (container == null || !container.Ids.Any())
                {
                    IWebDriver           wd3 = SeleniumHelper.CreateDefaultWebDriver(headless);
                    ResultadoSiteService rs3 = new ResultadoSiteService(wd3);
                    container = await rs3.SalvaJogosIds(true);

                    wd3.Dispose();
                    GC.Collect();
                }

                IWebDriver           wd1 = SeleniumHelper.CreateDefaultWebDriver(headless);
                ResultadoSiteService rs1 = new ResultadoSiteService(wd1);
                IWebDriver           wd2 = SeleniumHelper.CreateDefaultWebDriver(headless);
                ResultadoSiteService rs2 = new ResultadoSiteService(wd2);

                await Task.Delay(5000);

                Console.WriteLine($"Salvando Jogos De Amanhã as {DateTime.Now}");
                Task.Factory.StartNew(async() =>
                {
                    await rs2.SalvaJogosDeAmanha(container, false, wd2);
                });

                await rs1.SalvaJogosDeAmanha(container, true, wd1);

                ResultadosSiteHelper.CarregandoJogos = false;

                wd1.Dispose();
                wd2.Dispose();

                var jogos          = _jogoRepository.TrazJogosPorIds(container.Ids.Select(ji => ji.Id).ToArray());
                var jogosFSOuDobro = jogos.Where(j => j.UmTimeFazMaisGolEOutroSofreMaisGolTotal).Distinct().ToList();
                var primeiroJogo   = jogosFSOuDobro.OrderBy(p => p.DataInicio.TimeOfDay).FirstOrDefault();
                _telegramService.EnviaMensagemParaOGrupo($"{jogosFSOuDobro.Count} jogo(s) sera(ão) analisado(s) dia {data} com Inicio as {primeiroJogo.DataInicio.TimeOfDay}");

                await TentaCarregarJogosComErroHoje();
            }
        }
Esempio n. 2
0
        public async Task SalvaJogosAmanha(int qtdWebDrivers = 1, bool headless = false)
        {
            FirefoxOptions options = new FirefoxOptions();
            IWebDriver     wd1     = new FirefoxDriver(_configuration.DriverFirefoxPath, options, TimeSpan.FromDays(1));
            IWebDriver     wd2     = new FirefoxDriver(_configuration.DriverFirefoxPath, options, TimeSpan.FromDays(1));

            wd1.Manage().Timeouts().PageLoad = new TimeSpan(10, 0, 0);
            wd2.Manage().Timeouts().PageLoad = new TimeSpan(10, 0, 0);
            try
            {
                ResultadosSiteHelper.CarregandoJogos = true;
                ResultadoSiteService rs1 = new ResultadoSiteService(wd1);
                ResultadoSiteService rs2 = new ResultadoSiteService(wd2);

                Task.Factory.StartNew(async() =>
                {
                    await rs2.SalvaJogosDeAmanha();
                });

                await Task.Delay(TimeSpan.FromMinutes(15));

                await rs1.SalvaJogosDeAmanha(true);

                ResultadosSiteHelper.CarregandoJogos = false;
                wd1.Dispose();
                wd2.Dispose();
            }
            catch (Exception e)
            {
                _telegramService.EnviaMensagemParaOGrupo("Erro app: " + e.Message);
                wd1.Dispose();
                wd2.Dispose();
            }
        }