using StockDal.Interface; using StockDAL.Interface; using DataDomain; using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms; using System.Text.Json; using System.IO; namespace StockInfo { public partial class frmInitial : Form { private readonly IStockRepository _stockRepository; private readonly IStockMarketRepository _stockMarketRepository; private readonly IPersonRepository _personRepository; private readonly IAddressRepository _addressRepository; private frmRegisterStock regWindow; private frmMyStocks stockWindow; private frmSelling sellWindow; private frmPerson personWindow; public frmInitial( IStockRepository stockMemberRepository, IStockMarketRepository stockMarketRepository, IPersonRepository personRepository, IAddressRepository addressRepository) { InitializeComponent(); _stockRepository = stockMemberRepository; _stockMarketRepository = stockMarketRepository; _personRepository = personRepository; _addressRepository = addressRepository; } private void Form1_Load(object sender, EventArgs e) { ReloadData(); btnRestoreShares.Enabled = false; btnBackupShares.Enabled = false; btnReloadShares.Enabled = false; } private void ReloadData() { var allStocks = _stockRepository.GetAllStocks(); dataGridView.DataSource = allStocks; // SaveStocks(allStocks); lblTotalRecords.Text = $"Total records: {dataGridView.RowCount}"; } private void btnReload_Click(object sender, EventArgs e) { ReloadData(); } private void btnTestScrapFunction_Click(object sender, EventArgs e) { _stockMarketRepository.LoadStockMarketList(chbShowBrowser.Checked); var stocklist = _stockMarketRepository.StockMarketList; lblStockRows.Text = stocklist.Count().ToString(); btnReloadShares.Enabled = true; } private void frmInitial_FormClosing(object sender, FormClosingEventArgs e) { _stockMarketRepository.Clean(); } private void Button1reload() { lblStockRows.Text = ""; _stockMarketRepository.RefreshMarketList(); var stocklist = _stockMarketRepository.StockMarketList; lblStockRows.Text = stocklist.Count().ToString(); } private void btnStockReg_Click(object sender, EventArgs e) { Cursor.Current = Cursors.WaitCursor; _stockMarketRepository.LoadStockMarketList(); regWindow = new frmRegisterStock(); regWindow.Stocks = _stockMarketRepository.StockMarketList; Cursor.Current = DefaultCursor; regWindow.ShowDialog(); _stockRepository.InsertMany(regWindow.RegisteredStocks); ReloadData(); } private void btnValueView_Click(object sender, EventArgs e) { Cursor.Current = Cursors.WaitCursor; _stockMarketRepository.LoadStockMarketList(); stockWindow = new frmMyStocks(_stockRepository, _stockMarketRepository); stockWindow.Stocks = _stockMarketRepository.StockMarketList; Cursor.Current = DefaultCursor; stockWindow.ShowDialog(); } private void chkEnableBackRes_CheckedChanged(object sender, EventArgs e) { if (chkEnableBackRes.Checked) { btnRestoreShares.Enabled = true; btnBackupShares.Enabled = true; } else { btnRestoreShares.Enabled = false; btnBackupShares.Enabled = false; } } private void btnBackupShares_Click(object sender, EventArgs e) { var stockList = _stockRepository.GetAllStocks(); var jsonStr = JsonSerializer.Serialize(stockList); sfdSaver.Title = "Backup your sharedata"; sfdSaver.Filter = "Backup file (.json)|*.json"; sfdSaver.FileName = $"StockBackup{DateTime.Now.ToFileTime()}"; if (sfdSaver.ShowDialog() == DialogResult.OK) { File.WriteAllText(sfdSaver.FileName, jsonStr); } } private void btnRestoreShares_Click(object sender, EventArgs e) { ofdOpener.Title = "Restore your share data"; ofdOpener.Filter = "Restore file (.json)|*.json"; ofdOpener.CheckFileExists = true; if (ofdOpener.ShowDialog() == DialogResult.OK) { var jsonStr = File.ReadAllText(ofdOpener.FileName); var stockList = JsonSerializer.Deserialize>(jsonStr); _stockRepository.RestoreStockMembers(stockList); }; } private void btnReloadShares_Click(object sender, EventArgs e) { Button1reload(); } private void btnStockSale_Click(object sender, EventArgs e) { Cursor.Current = Cursors.WaitCursor; sellWindow = new frmSelling(_stockRepository); Cursor.Current = DefaultCursor; sellWindow.ShowDialog(); ReloadData(); } private void btnEditPerson_Click(object sender, EventArgs e) { Cursor.Current = Cursors.WaitCursor; personWindow = new frmPerson(_personRepository, _addressRepository); Cursor.Current = DefaultCursor; personWindow.ShowDialog(); } private void btnConnShares_Click(object sender, EventArgs e) { } } }