Пример #1
0
        private List <List <string> > ScrapTableData(ScrapPage page, ChromeDriver driver)
        {
            var tableData = new List <List <string> >();

            _logger.Info($"Scraping page [{page.URL}]");
            driver.Navigate().GoToUrl(page.URL);
            _logger.Info("page loaded");

            // Wait for table to load
            new WebDriverWait(driver, TimeSpan.FromSeconds(3))
            .Until(ExpectedConditions.ElementExists(
                       string.IsNullOrWhiteSpace(page.TableId) ? By.ClassName(page.TableClass) : By.Id(page.TableId)
                       ));

            _logger.Info("finding rows");
            var tableRows = driver.FindElements(By.XPath(page.TableRowsXPath));

            _logger.Info("Table rows count = " + tableRows.Count);

            foreach (var row in tableRows)
            {
                var rowData = ReadRowData(row, page.ColumnMappings);
                tableData.Add(rowData);
            }


            return(tableData);
        }
Пример #2
0
 private void dataGridViewPagingSumCtrl_CurrentPageIndexChanged(int index)
 {
     try
     {
         if (this.pagePara == null)
         {
             return;
         }
         if (GlobalUtil.EngineUnconnectioned(this))
         {
             return;
         }
         pagePara.PageIndex = index;
         ScrapPage listPage = GlobalCache.ServerProxy.GetScrapPage(this.pagePara);
         this.BindingScrapOrderSource(listPage);
     }
     catch (Exception ee)
     {
         GlobalUtil.ShowError(ee);
     }
     finally
     {
         GlobalUtil.UnLockPage(this);
     }
 }
Пример #3
0
 private void BaseButton_Search_Click(object sender, EventArgs e)
 {
     try
     {
         if (GlobalUtil.EngineUnconnectioned(this))
         {
             return;
         }
         string orderID = string.IsNullOrEmpty(this.skinTextBox_OrderID.SkinTxt.Text) ? null : this.skinTextBox_OrderID.SkinTxt.Text;
         this.pagePara = new ScrapPagePara()
         {
             ScrapOrderID = orderID,
             StartDate    = new CJBasic.Date(this.dateTimePicker_Start.Value),
             EndDate      = new CJBasic.Date(this.dateTimePicker_End.Value),
             PageIndex    = 0,
             PageSize     = this.dataGridViewPagingSumCtrl.PageSize,
             ShopID       = ValidateUtil.CheckEmptyValue(this.skinComboBoxShopID.SelectedValue),
             CostumeID    = ValidateUtil.CheckEmptyValue(skinTextBox_costumeID.SkinTxt.Text)
         };
         ScrapPage listPage = GlobalCache.ServerProxy.GetScrapPage(this.pagePara);
         dataGridViewPagingSumCtrl.OrderPara = pagePara;
         this.dataGridViewPagingSumCtrl.Initialize(listPage);
         this.BindingScrapOrderSource(listPage);
     }
     catch (Exception ee)
     {
         GlobalUtil.ShowError(ee);
     }
     finally
     {
         GlobalUtil.UnLockPage(this);
     }
 }
Пример #4
0
        private List <List <string> > FilterNewRecords(List <List <string> > tableData, ScrapPage page, ColumnMapping dateCol)
        {
            var dateColIndex = page.ColumnMappings.IndexOf(dateCol);

            var latestDateInFileStr = _csvReader.GetLastDate(page.FilePath, dateColIndex);

            _logger.Info("latestDateInFileStr = " + latestDateInFileStr);

            if (string.IsNullOrWhiteSpace(latestDateInFileStr))
            {
                return(tableData);   //all records are new
            }
            var latestDateInFile = DateTime.ParseExact(latestDateInFileStr, dateCol.OutputDateFormat, CultureInfo.InvariantCulture);

            var filtered = tableData.Where(x =>
                                           DateTime.ParseExact(x[dateColIndex], dateCol.OutputDateFormat, CultureInfo.InvariantCulture) > latestDateInFile);

            return(filtered.ToList());
        }
Пример #5
0
 /// <summary>
 /// 绑定plenishOrderSource源到dataGridView中
 /// </summary>
 /// <param name="listPage"></param>
 private void BindingScrapOrderSource(ScrapPage listPage)
 {
     this.dataGridViewPagingSumCtrl.BindingDataSource(listPage?.ScrapOrderList, null, listPage?.TotalEntityCount, listPage?.ScrapOrderSum);
     this.skinSplitContainer1.Panel2Collapsed = true;
 }