public ResultadoSiteService()
 {
     _idContainerRepository = new IdContainerRepository();
     _jogoRepository        = new JogoRepository();
     _jogoService           = new JogoService(_driver);
     _analiseService        = new AnaliseService();
     _telegramService       = new TelegramService();
 }
        public ResultadoSiteService(IWebDriver driver)
        {
            _driver = driver;

            var configuration = new ConfigurationBuilder()
                                .SetBasePath(Directory.GetCurrentDirectory())
                                .AddJsonFile("appsettings.json")
                                .Build();

            var seleniumConfigurations = new SeleniumConfiguration();

            new ConfigureFromConfigurationOptions <SeleniumConfiguration>(
                configuration.GetSection("SeleniumConfiguration"))
            .Configure(seleniumConfigurations);
            _configuration = seleniumConfigurations;

            _idContainerRepository = new IdContainerRepository();
            _jogoRepository        = new JogoRepository();
            _jogoService           = new JogoService(_driver);
            _analiseService        = new AnaliseService();
            _telegramService       = new TelegramService();
        }
        public async Task StartAnaliseLive(bool descending = false)
        {
            while (true)
            {
                GC.Collect();;
                await CarregaJogosDeAmanha(descending, true);

                var jogos = ListaDeJogos().Where(i => TempoDiferencaJogo(i) > 1 && TempoDiferencaJogo(i) < 80).ToList();
                if (!jogos.Any())
                {
                    Console.WriteLine($"Nenhum Jogo Para Analisar no Momento as {DateTime.Now} Aguardando 3 Minutos...");
                    await Task.Delay(TimeSpan.FromMinutes(3));
                }
                ;

                if (jogos.Any())
                {
                    if (jogos.Count > 5)
                    {
                        if (this._driver != null)
                        {
                            this._driver.Dispose();
                            this._driver = SeleniumHelper.CreateDefaultWebDriver(true);
                        }
                    }

                    if (this._driver == null)
                    {
                        this._driver = SeleniumHelper.CreateDefaultWebDriver(true);
                    }
                    _jogoService = new JogoService(_driver);
                    foreach (var i in jogos)
                    {
                        var minutagem = TempoDiferencaJogo(i);

                        try
                        {
                            Console.WriteLine($"Analisando ID: {i.IdJogoBet} as {DateTime.Now}");
                            await CriarOuAtualizaInfosJogo(i.IdJogoBet);

                            var jogo = _jogoRepository.TrazerJogoPorIdBet(i.IdJogoBet);
                            if (jogo != null)
                            {
                                jogo.Minutos = minutagem.ToString();
                                bool jogoProntoParaAnalise = _jogoRepository.JogoProntoParaAnalise(i.IdJogoBet);
                                if (jogoProntoParaAnalise)
                                {
                                    jogo.Observacoes = jogos.FirstOrDefault(j => j.IdJogoBet == jogo.IdJogoBet).Observacoes;
                                    _analiseService.AnalisaJogoLive(jogo);
                                }
                            }
                        }
                        catch (Exception e)
                        {
                            var msg = e.Message;
                            Console.WriteLine("Erro: " + e.Message + " IdBet: " + i.IdJogoBet);
                            _driver.Dispose();
                        }
                    }
                }
            }
        }