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);

View File

@ -16,6 +16,7 @@ namespace StockDal.Interface
void LoadStockMarketList(int persId);
//void LoadStockMarketList(int persId, bool viewBrowser);
Task LoadStockMarketListAsync(int persId);
DiTraderStockRow LoadStockMarketStockData(string searchedStock);
}
}

View File

@ -140,7 +140,7 @@ namespace StockInfoCore
ReloadData();
}
private void btnValueView_Click(object sender, EventArgs e)
private async void btnValueView_Click(object sender, EventArgs e)
{
//if(!GlobalStopwatch.IsRunning && GlobalStopwatch.EllapsedMillis>0)
// GlobalStopwatch.Restart();
@ -155,7 +155,8 @@ namespace StockInfoCore
var person = _personRepository.GetPersonById(SelectedPersonId);
Cursor.Current = Cursors.WaitCursor;
_stockMarketRepository.LoadStockMarketList(SelectedPersonId);
await _stockMarketRepository.LoadStockMarketListAsync(SelectedPersonId);
_stockWindow.ConnectedPerson = person;
_stockWindow.Stocks = _stockMarketRepository.StockMarketList;