Now personal stock window is loaded asyncronous

(not locking the initial window)
This commit is contained in:
2022-02-22 20:46:02 +01:00
parent d8f6ce4650
commit 95a9537af9
3 changed files with 81 additions and 2 deletions

View File

@ -145,6 +145,83 @@ namespace StockDal
}
}
public async Task LoadStockMarketListAsync(int persId)
{
StockMarketList = new Dictionary<string, DiTraderStockRow>();
DumpObjects = new List<DiTraderStockRow>();
var groupedStocks = persId == 0 ? _stockRepository.GetStocksGroupedAllPersons()
: _stockRepository.GetStocksGroupedPerPerson(persId);
//var tasks = new List<Task<List<DiTraderStockRow>>>();
var lastGroup = string.Empty;
var stockList = new List<string>();
foreach (var groupedStock in groupedStocks)
{
if (groupedStock.StockGroup != lastGroup)
{
if (lastGroup != string.Empty)
{
_testSettings.StockWishes = stockList.ToArray();
if (lastGroup == "ZNotFound")
foreach (var stk in stockList)
{
//saveStockData(new List<DiTraderStockRow>(_scrapePage.SearchStockAndCollect(stk.Substring(0, 4))));
//tasks.Add( Task.Run(() => new List<DiTraderStockRow>(_scrapePage.SearchStockAndCollect(stk.Substring(0, 4)))));
saveStockData(await Task.Run(() => new List<DiTraderStockRow>(_scrapePage.SearchStockAndCollect(stk.Substring(0, 4)))));
}
else
{
//saveStockData(_scrapePage.GetMyStockStatus(lastGroup));
//tasks.Add(Task.Run(() => _scrapePage.GetMyStockStatus(lastGroup)));
saveStockData(await Task.Run(() => _scrapePage.GetMyStockStatus(lastGroup)));
}
stockList.Clear();
lastGroup = groupedStock.StockGroup;
}
else
{
lastGroup = groupedStock.StockGroup;
}
stockList.Add(groupedStock.StockId);
}
else
{
stockList.Add(groupedStock.StockId);
}
}
if (stockList.Count > 0)
{
_testSettings.StockWishes = stockList.ToArray();
if (lastGroup == "ZNotFound")
foreach (var stk in stockList)
{
//saveStockData(new List<DiTraderStockRow>(_scrapePage.SearchStockAndCollect(stk.Substring(0, 4))));
//tasks.Add(Task.Run(() => new List<DiTraderStockRow>(_scrapePage.SearchStockAndCollect(stk.Substring(0, 4)))));
saveStockData(await Task.Run(() => new List<DiTraderStockRow>(_scrapePage.SearchStockAndCollect(stk.Substring(0, 4)))));
}
else
//saveStockData(_scrapePage.GetMyStockStatus(lastGroup));
//tasks.Add(Task.Run(() => _scrapePage.GetMyStockStatus(lastGroup)));
saveStockData(await Task.Run(() => _scrapePage.GetMyStockStatus(lastGroup)));
stockList.Clear();
}
//var results = await Task.WhenAll(tasks);
//foreach(var result in results)
//{
// saveStockData(result);
//}
if (DumpObjects.Any())
{
SaveLogging();
}
}
public DiTraderStockRow LoadStockMarketStockData(string searchedStock)
{
var groupedStocks = _stockRepository.GetGroupedStock(searchedStock);