예제 #1
0
        private static void UpdateLicitacoes()
        {
            try
            {
                /*Inicia navegador fantasma para atualização de licitações*/
                if (web != null)
                {
                    web.Quit();
                }

                var driver = ChromeDriverService.CreateDefaultService();
                driver.HideCommandPromptWindow = true;
                var op = new ChromeOptions();
                op.AddUserProfilePreference("download.default_directory", PathEditais);
                web = new ChromeDriver(driver, new ChromeOptions(), TimeSpan.FromSeconds(300));
                web.Manage().Timeouts().PageLoad = TimeSpan.FromSeconds(300);
                wait = new WebDriverWait(web, TimeSpan.FromSeconds(300));


                List <Licitacao> licitacoes = LicitacaoController.FindBySituationBB();

                foreach (var licitacao in licitacoes)
                {
                    web.Navigate().GoToUrl(licitacao.LinkEdital);

                    HandleReCaptcha();

                    var situacaoDiv = web.FindElement(By.XPath("//*[@id=\"divConsultarDetalhesLicitacao\"]/fieldset/div[11]"));

                    if (situacaoDiv != null)
                    {
                        string situacao = web.FindElement(By.XPath("//*[@id=\"divConsultarDetalhesLicitacao\"]/fieldset/div[11]")).Text.TrimStart().TrimEnd();

                        if (!string.IsNullOrEmpty(situacao) && situacao != licitacao.Situacao)
                        {
                            licitacao.Situacao = situacao;
                            Repo.Update(licitacao);

                            RService.Log("(UpdateLicitacoes) " + Name + ": Situação da licitação " + licitacao.Id + " atualizada para " + situacao + " at {0}", Path.GetTempPath() + Name + ".txt");
                        }
                    }
                }
            }
            catch (Exception e)
            {
                RService.Log("Exception (UpdateLicitacoes) " + Name + ": " + e.Message + " / " + e.StackTrace + " / " + e.InnerException + " at {0}", Path.GetTempPath() + Name + ".txt");
            }
            finally
            {
                if (web != null)
                {
                    web.Close();
                }
            }
        }