Regret closing initial window and progressbar for timeconsuming events

This commit is contained in:
2022-02-22 21:59:29 +01:00
parent 95a9537af9
commit e6121da2ca
4 changed files with 76 additions and 21 deletions

View File

@ -36,7 +36,8 @@ namespace StockInfoCore
private readonly frmBackup _backupWindow;
private readonly frmEditStock _editStock;
bool loading = false;
int progressValue = 0;
public int SelectedPersonId { get; set; } = 0;
public frmInitial(
@ -83,13 +84,13 @@ namespace StockInfoCore
btnBackupAll.Enabled = false;
}
private void ReloadData(bool upd = false)
private async Task ReloadData(bool upd = false)
{
loading = true;
var allStocks = _stockRepository.GetAllStocks();
if (upd)
{
_stockMarketRepository.LoadStockMarketList(SelectedPersonId);
await _stockMarketRepository.LoadStockMarketListAsync(SelectedPersonId);
allStocks.ToList().ForEach(SM => SM.ActValue = UpdateOnlyNonZeroAmount(SM).ActValue);
}
dataGridView.DataSource = allStocks;
@ -103,32 +104,36 @@ namespace StockInfoCore
var output = new StockMember();
if (sMember.ActAmount > 0)
{
if (_stockMarketRepository.StockMarketList.ContainsKey(sMember.StockId)){
if (_stockMarketRepository.StockMarketList.ContainsKey(sMember.StockId))
{
sMember.ActValue = _stockMarketRepository.StockMarketList[sMember.StockId].LatestPrice;
_stockRepository.UpdateActualPrice(sMember.Id, sMember.ActValue);
}
}
output=sMember;
output = sMember;
return output;
}
private void btnReload_Click(object sender, EventArgs e)
private async void btnReload_Click(object sender, EventArgs e)
{
Cursor = Cursors.WaitCursor;
ReloadData(true);
Cursor=Cursors.Default;
StartProgressTicking(350);
await ReloadData(true);
StopProgressTicking();
}
private void frmInitial_FormClosing(object sender, FormClosingEventArgs e)
private void frmInitial_FormClosing(object sender, FormClosingEventArgs e)
{
MessageBox.Show("B y e B y e !!");
if (DialogResult.OK != MessageBox.Show("B y e B y e !!", "Should we close ?", MessageBoxButtons.OKCancel))
{
e.Cancel = true;
}
}
private void btnStockReg_Click(object sender, EventArgs e)
{
Cursor.Current = Cursors.WaitCursor;
_stockMarketRepository.LoadStockMarketList(SelectedPersonId==0?10000: SelectedPersonId);
_stockMarketRepository.LoadStockMarketList(SelectedPersonId == 0 ? 10000 : SelectedPersonId);
_regWindow.Stocks = _stockMarketRepository.StockMarketList;
Cursor.Current = DefaultCursor;
_regWindow.ShowDialog();
@ -152,16 +157,15 @@ namespace StockInfoCore
}
else
{
StartProgressTicking();
var person = _personRepository.GetPersonById(SelectedPersonId);
Cursor.Current = Cursors.WaitCursor;
await _stockMarketRepository.LoadStockMarketListAsync(SelectedPersonId);
StopProgressTicking();
_stockWindow.ConnectedPerson = person;
_stockWindow.Stocks = _stockMarketRepository.StockMarketList;
Cursor.Current = DefaultCursor;
//GlobalStopwatch.Stop();
//GlobalStopwatch.Stop();
//GlobalStopwatch.PrintSecs("Before Show Stockwindow");
_stockWindow.ShowDialog();
}
@ -295,5 +299,32 @@ namespace StockInfoCore
};
}
}
private void tmrProgBar_Tick(object sender, EventArgs e)
{
pbInitial.Value = progressValue;
if (progressValue < 100)
progressValue += 1;
}
public void StartProgressTicking(int intervall = 250)
{
pbInitial.Enabled = true;
pbInitial.Minimum = 0;
pbInitial.Maximum = 100;
pbInitial.Value = 0;
pbInitial.Visible = true;
tmrProgBar.Interval = intervall;
tmrProgBar.Enabled = true;
tmrProgBar.Start();
}
public void StopProgressTicking()
{
tmrProgBar.Stop();
tmrProgBar.Enabled = false;
pbInitial.Visible = false;
progressValue = 0;
}
}
}