//Boleta Operações "Liberado" e que tenham caixa no caso de aplicação VIA TED private void BoletaOperacoes(string Usuario, string Senha) { //Dicionario de Cotistas Auxiliar Dictionary <long, long> INVCODCPF = new BL_Cotista().DadosCompleto().ToDictionary(Key => Key.CODCOT, Value => Value.CPFCNPJ); //Boleta operações com status Liberado //Valida Caixa no caso de Aplicações via ted List <BL_Boleta> Boletas = ObjBoleta.DadosDia(DateTime.Today).Where(x => x.STATUS == "Liberado" /*|| x.STATUS == "Cadastro Pendente"*/).ToList(); List <BL_RegistroAplica> RegistrosAplica = ObjRegAp.Dados(); //Boleta operações que não são aplicação VIA TED foreach (BL_Boleta B in Boletas.Where(x => !(x.OPERACAO == "AP" && x.CONTA == "VIA TED"))) { ObjBoleta.Boletar(B, Usuario, Senha); } //Aplica Boletas de aplicação via TED foreach (BL_Boleta B in Boletas.Where(x => x.OPERACAO == "AP" && x.CONTA == "VIA TED")) { BL_RegistroAplica RegistroCaixa = RegistrosAplica.FirstOrDefault(x => x.CPFCNPJ == INVCODCPF[B.CODCOT] && x.CODFUND == B.CODFUND && x.VALOR == B.VALOR); if (RegistroCaixa == null) { continue; } //Registro encontrado, Caso seja efetivamente Boletado, Remove Saldo do Caixa. if (ObjBoleta.Boletar(B, Usuario, Senha) == "Validando") { RegistrosAplica.Remove(RegistroCaixa); } } }
public void AtualizaCaixaWebScraping(string Usuario, string Senha) { Limpar(); //FUNÇÃO PARA AGUARDAR (MINUTOS E SEGUNDOS) void TimeWait(int minutes, int seconds) { var waitTime = new TimeSpan(0, 0, minutes, seconds); var waitUntil = DateTime.Now + waitTime; while (DateTime.Now <= waitUntil) { Application.DoEvents(); } } Console.WriteLine("Atualiza Data Intrag"); WebBrowser WebCaixa = new WebBrowser(); WebCaixa.Navigate("https://www.itaucustodia.com.br/Passivo/"); WebCaixa.ScriptErrorsSuppressed = true; //Aguarda a pagina carregar while (WebCaixa.ReadyState.ToString() != "Complete") { Application.DoEvents(); } var inputElements = WebCaixa.Document.GetElementsByTagName("input"); var aElements = WebCaixa.Document.GetElementsByTagName("a"); foreach (HtmlElement i in inputElements) { if (i.GetAttribute("name").Equals("ebusiness")) { i.InnerText = Usuario; } if (i.GetAttribute("name").Equals("senha")) { i.InnerText = Senha; } }//Insere Login e Senha foreach (HtmlElement a in aElements) { //Clica no Login if (a.GetAttribute("href").Equals("javascript:fn_login();")) { a.InvokeMember("click"); } } //Aguarda Pagina Carregar while (WebCaixa.ReadyState != WebBrowserReadyState.Interactive) { Application.DoEvents(); } WebCaixa.Navigate("https://www.itaucustodia.com.br/Passivo/abreFiltroCreditosAplicacaoGestor.do?pageExecutionId=5489278750081852"); //Aguarda Pagina Carregar while (WebCaixa.ReadyState != WebBrowserReadyState.Complete) { Application.DoEvents(); } var optionElements = WebCaixa.Document.GetElementsByTagName("option"); optionElements[1].SetAttribute("selected", "selected");//Seleciona Gestor na lista var selectElements = WebCaixa.Document.GetElementsByTagName("select"); selectElements[0].InvokeMember("onchange"); while (WebCaixa.Document.GetElementsByTagName("select").Count.ToString() != "2") { TimeWait(0, 1); } var optionElements2 = WebCaixa.Document.GetElementsByTagName("option"); optionElements2[3].SetAttribute("selected", "selected");//Seleciona Gestor do Fundo na lista var selectElements2 = WebCaixa.Document.GetElementsByTagName("select"); selectElements2[1].InvokeMember("onchange"); var aElements2 = WebCaixa.Document.GetElementsByTagName("a"); foreach (HtmlElement a2 in aElements2) { //Clica em Continuar if (a2.GetAttribute("href").Equals("javascript:fn_enviar();")) { a2.InvokeMember("click"); } } var tdElements = WebCaixa.Document.GetElementsByTagName("td"); int tempo = 0; //Aguarda o Numero de elementos com tag "td" ser maior que 50 {Pagina Carregada} while (tdElements.Count < 50) { TimeWait(0, 1); tdElements = WebCaixa.Document.GetElementsByTagName("td"); tempo++; if (tempo > 10) { break; } } string Fundo; for (int i = 0; i < tdElements.Count - 1; i++) { if (tdElements[i].InnerText == "Fundo:") { i++; Fundo = tdElements[i].InnerText; Console.WriteLine(tdElements[i].InnerText); while (tdElements[i].InnerText != "Fundo:") { if (tdElements[i].InnerText == "Valor da Operação:") { if (tdElements[i + 7].InnerText == DateTime.Now.ToString("dd/MM/yyyy")) { BL_RegistroAplica RA = new BL_RegistroAplica(); RA.CODFUND = Convert.ToInt64(Fundo.Split('-')[0].Trim()); RA.CPFCNPJ = Convert.ToInt64(new Regex(@"[^\d]").Replace(tdElements[i - 3].InnerText.Trim(), "")); //Regex try { RA.NOME = tdElements[i - 5].InnerText.Trim(); } catch { RA.NOME = ""; } RA.HORA = Convert.ToDateTime(tdElements[i + 9].InnerText.Trim()); RA.VALOR = Convert.ToDecimal(tdElements[i + 1].InnerText.Trim(), new CultureInfo("pt-BR")); ObjDA.Inserir(RA.CPFCNPJ, RA.NOME, RA.HORA, RA.VALOR, RA.CODFUND); } } i++; if (i > tdElements.Count - 1) { break; } } i = i - 1; } } }