Ejemplo n.º 1
0
 private void downloadInvoicesWorker()
 {
     rowNum = 0;
     foreach (Invoice invoice in invoiceIpc.invoices)
     {
         subStatus    = dlStatus.search;
         fileNameMask = invoice.fileNameMask;
         Application.Current.Dispatcher.Invoke(new Action(() =>
         {
             webBrowser.GetBrowser().MainFrame.EvaluateScriptAsync(
                 "try {document.getElementById('content').children[4].children[0].children[1].children[" + rowNum +
                 "].children[0].children[0].click();} catch (err) {alert('eltévedtünk, a kereső oldalon kellene lenni');}");
         }));
         int timeout = 30;
         while (subStatus != dlStatus.logoff)
         {
             Thread.Yield();
             Thread.Sleep(1000);
             Thread.Yield();
             if (timeout-- == 0)
             {
                 Application.Current.Dispatcher.Invoke(new Action(() => { webBrowser.GetBrowser().Reload(); }));
                 timeout = 30;
             }
         }
         rowNum++;
     }
     status = dlStatus.logoff;
     busy(false);
     clickOnJs("Kilépés");
     MessageBox.Show("Ennyi volt");
 }
Ejemplo n.º 2
0
 private void sendLogon()
 {
     Application.Current.Dispatcher.Invoke(new Action(() => {
         webBrowser.GetBrowser().MainFrame.EvaluateScriptAsync(@"
             document.getElementsByName('loginform')[0].username.value='" + Properties.Settings.Default.UserName + @"';
             document.getElementsByName('loginform')[0].password.value='" + pwd.Password + @"';
             document.getElementsByName('loginform')[0].submit();");
         status = dlStatus.logon;
     }));
 }
Ejemplo n.º 3
0
 private void searchInvoices()
 {
     Application.Current.Dispatcher.Invoke(new Action(() =>
     {
         if (!searchTabUrl.Equals(webBrowser.Address))
         {
             statustext.Text = "Akadály, a kereső oldalra navigáláskor. Újra próbálom";
             searchTab();
             return;
         }
         webBrowser.GetBrowser().MainFrame.ExecuteJavaScriptAsync("document.forms[0].submit();");
         status = dlStatus.found;
     }));
 }
Ejemplo n.º 4
0
 private void Url_Open_CommandBinding_Executed(object sender, ExecutedRoutedEventArgs e)
 {
     try
     {
         this.RajtaGomb.IsEnabled        = false;
         user.IsEnabled                  = false;
         pwd.IsEnabled                   = false;
         dlpath.IsEnabled                = false;
         pProvider.IsEnabled             = false;
         pIssuer.IsEnabled               = false;
         pYear.IsEnabled                 = false;
         this.webBrowser.DownloadHandler = new DownloadHandler(directoryMask, this.webBrowser, Properties.Settings.Default.OverwriteFiles);
         busy(true);
         //if (!System.IO.Directory.Exists(directoryMask)) System.IO.Directory.CreateDirectory(directoryMask);
         status = dlStatus.home;
         this.webBrowser.Load(Properties.Settings.Default.StartUrl);
     }
     catch (Exception ex)
     {
         statustext.Text = ex.Message;
     }
 }
Ejemplo n.º 5
0
 private void searchTab()
 {
     clickOnJs("Számlakeresés");
     status = dlStatus.search;
 }
Ejemplo n.º 6
0
        private void WebBrowser_LoadingStatusChanged(object sender, CefSharp.LoadingStateChangedEventArgs e)
        {
            if (!e.IsLoading)
            {
                Application.Current.Dispatcher.Invoke(new Action(() =>
                {
                    statustext.Text = String.Format("{0} {1} {2}", webBrowser.Address, status, subStatus);
                }));
                switch (status)
                {
                case dlStatus.zero:
                    break;

                case dlStatus.home:
                    sendLogon();
                    break;

                case dlStatus.logon:
                    searchTab();
                    break;

                case dlStatus.search:
                    searchInvoices();
                    break;

                case dlStatus.found:
                    switch (subStatus)
                    {
                    case dlStatus.zero:
                        collectInvoices();         // azután pegig új szálon letöltés
                        break;

                    case dlStatus.search:
                        clickOnJs("Letöltés");
                        subStatus = dlStatus.found;
                        subRow    = 0;
                        Application.Current.Dispatcher.Invoke(new Action(() =>
                        {
                            statustext.Text = String.Format("Letöltés alatt: {0}", invoiceIpc.invoices[rowNum].fileNameMask);
                        }));
                        break;

                    case dlStatus.found:
                        Application.Current.Dispatcher.Invoke(new Action(() =>
                        {
                            if (!invDownloadTabUrl.Equals(webBrowser.Address))
                            {
                                subStatus = dlStatus.search;
                                return;
                            }
                            webBrowser.GetBrowser().MainFrame.EvaluateScriptAsync(@"
                                    tdata = document.getElementById('content').children[2].children[1].children[0].children[0].children[1].children[0].children[0].children[0].children[0];
                                    if(row=tdata.rows[" + subRow++ + @"]) {
                                        if (row && row.children[1] && row.children[1].children[0] && row.children[1].children[0].href)
                                        {
                                            href = row.children[1].children[0].href;
                                            // Dwonload: szamla_pdf, szamla_teho_pdf, teho_all_pdf, szamla_hiteles
                                            if(href.indexOf('szamla_pdf') != -1 || href.indexOf('szamla_teho_pdf') != -1 || href.indexOf('teho_all_pdf') != -1 || href.indexOf('szamla_hiteles') != -1 ) 
                                            {
                                                row.children[1].children[0].click();
                                                console.info('row ' + " + subRow + @");
                                            }
                                            else // Skip: minden más
                                            {
                                                console.info('skip row ' + " + subRow + @");
                                                " + mkAnchorIteratorJs("Letöltés") + @"
                                            }
                                            //TODO: popup ablak kezelése és letöltés  if(row.children[1].children[0].href.indexOf('szamla_xml') != -1) {row.children[1].children[0].click(); alert('2');}
                                        } 
                                        else
                                        {
                                            // trigger the LoadingStatusChanged event from JS
                                            console.info('skip row ' + " + subRow + @");
                                            " + mkAnchorIteratorJs("Letöltés") + @"
                                        }
                                    }
                                    else
                                    {
                                        // trigger the LoadingStatusChanged event from JS
                                        console.info('skip row ' + " + subRow + @");
                                        " + mkAnchorIteratorJs("Letöltés") + @"
                                    }");
                            if (subRow > 9)
                            {
                                clickOnJs(" vissza a listához");
                                subStatus = dlStatus.download;
                                subRow    = 0;
                            }
                            Thread.Yield();
                        }));
                        Thread.Yield();
                        break;

                    case dlStatus.download:
                        Application.Current.Dispatcher.Invoke(new Action(() =>
                        {
                            if (invDownloadTabUrl.Equals(webBrowser.Address))
                            {
                                Thread.Yield();
                                Thread.Sleep(2000);
                                Thread.Yield();
                            }
                            else
                            {
                                subStatus = dlStatus.logoff;
                            }
                        }));
                        break;

                    case dlStatus.logoff:
                        break;
                    }
                    //collectInvoices();
                    break;
                }
            }
        }