Files
Stockinfo/StockInfo/frmInitial.cs

183 lines
5.9 KiB
C#

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<List<StockMember>>(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)
{
}
}
}