Now even Pfizer. Inc. can be managed

This commit is contained in:
2022-02-08 23:50:25 +01:00
parent d56e69b448
commit f38824becf
4 changed files with 110 additions and 7 deletions

View File

@ -1,6 +1,8 @@
using DataDomain;
using BrowserHelper.Settings;
using DataDomain;
using OpenQA.Selenium;
using System.Collections;
using System.Collections.Generic;
namespace BrowserHelper.Extensions
{
@ -73,7 +75,7 @@ namespace BrowserHelper.Extensions
return tableDataCollection;
}
public static List<DiTraderStockRow> SimpleReadTablePartly(this IWebElement table, string[] shares, string[] shareHeaders)
public static List<DiTraderStockRow> SimpleReadTablePartlyOld(this IWebElement table, string[] shares, string[] shareHeaders)
{
var shareCollection = new List<DiTraderStockRow>();
var columns = table.FindElements(By.TagName("th"));
@ -114,6 +116,54 @@ namespace BrowserHelper.Extensions
return shareCollection;
}
public static List<DiTraderStockRow> SimpleReadTablePartly(this IWebElement table, string[] shares, string[] shareHeaders)
{
var shareSet = new HashSet<string>(shares);
var shareCollection = new List<DiTraderStockRow>();
var columns = table.FindElements(By.TagName("th"));
IWebElement tblBody = table.FindElement(By.XPath(".//tbody"));
var rows = tblBody.FindElements(By.TagName("tr"));
Dictionary<string, int> columnPos = new Dictionary<string, int>();
//GlobalStopwatch.PrintSecs("After allocations");
for (int i = 0; i < columns.Count; i++)
{
if (shareHeaders.Contains(columns[i].Text)) columnPos.Add(columns[i].Text, i);
}
//var antal = shares.Length;
int rowIndex = 0;
//GlobalStopwatch.PrintSecs("Before scraplooping");
foreach (var row in rows)
{
var element = row.FindElement(By.XPath(".//td"));
if (!shareSet.Contains(element.Text)) { }
else
{
var colDatas = row.FindElements(By.TagName("td"));
if (colDatas.Count != 0 && shares.Contains(colDatas[0].Text))
{
shareCollection.Add(new DiTraderStockRow
{
StockName = colDatas[columnPos["Aktie"]].Text,
LatestPrice = decimal.Parse(colDatas[columnPos["Senast"]].Text),
TimeOfDay = TimeSpan.Parse(colDatas[columnPos["Tid"]].Text)
});
rowIndex++;
//antal--;
shareSet.Remove(element.Text);
}
}
//if (antal < 1) break;
if (shareSet.Count < 1) break;
}
//GlobalStopwatch.PrintSecs("After scraplooping");
return shareCollection;
}
private static ColumnSpecialValue GetControl(IWebElement columnValue)
{
ColumnSpecialValue? columnSpecialValue = null;