257 lines
8.9 KiB
C#
257 lines
8.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;
|
|
using Helpers;
|
|
using StockBL.Interface;
|
|
using SqliteBackups.Interfaces;
|
|
|
|
namespace StockInfo
|
|
{
|
|
public partial class frmInitial : Form
|
|
{
|
|
private readonly IStockRepository _stockRepository;
|
|
private readonly IStockMarketRepository _stockMarketRepository;
|
|
private readonly IPersonRepository _personRepository;
|
|
private readonly IAddressRepository _addressRepository;
|
|
private readonly IStockPersonConnect _stockPersonConnect;
|
|
private readonly IBackupRepository _backupRepository;
|
|
private readonly IBackupRoutines _backupRoutines;
|
|
private readonly IPersonStockFacade _personStockFacade;
|
|
private frmRegisterStock regWindow;
|
|
private frmMyStocks stockWindow;
|
|
private frmSelling sellWindow;
|
|
private frmPerson personWindow;
|
|
private frmPersonShareConnect personShareConnect;
|
|
private frmBackup backupWindow;
|
|
public int SelectedPersonId { get; set; } = 0;
|
|
|
|
public frmInitial(
|
|
IStockRepository stockMemberRepository,
|
|
IStockMarketRepository stockMarketRepository,
|
|
IPersonRepository personRepository,
|
|
IAddressRepository addressRepository,
|
|
IStockPersonConnect stockPersonConnect,
|
|
IBackupRepository backupRepository,
|
|
IBackupRoutines backupRoutines,
|
|
IPersonStockFacade personStockFacade)
|
|
{
|
|
InitializeComponent();
|
|
_stockRepository = stockMemberRepository;
|
|
_stockMarketRepository = stockMarketRepository;
|
|
_personRepository = personRepository;
|
|
_addressRepository = addressRepository;
|
|
_stockPersonConnect = stockPersonConnect;
|
|
_backupRepository = backupRepository;
|
|
_backupRoutines = backupRoutines;
|
|
_personStockFacade = personStockFacade;
|
|
}
|
|
|
|
private void Form1_Load(object sender, EventArgs e)
|
|
{
|
|
ReloadData();
|
|
btnRestoreShares.Enabled = false;
|
|
btnBackupShares.Enabled = false;
|
|
btnReloadShares.Enabled = false;
|
|
btnBackupAll.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)
|
|
{
|
|
if (SelectedPersonId == 0)
|
|
{
|
|
MessageBox.Show($"Ingen person vald ({SelectedPersonId})");
|
|
}
|
|
else
|
|
{
|
|
var person = _personRepository.GetPersonById(SelectedPersonId);
|
|
Cursor.Current = Cursors.WaitCursor;
|
|
_stockMarketRepository.LoadStockMarketList();
|
|
stockWindow = new frmMyStocks(_stockRepository, _stockMarketRepository, _stockPersonConnect);
|
|
stockWindow.ConnectedPerson = person;
|
|
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;
|
|
btnBackupAll.Enabled = true;
|
|
}
|
|
else
|
|
{
|
|
btnRestoreShares.Enabled = false;
|
|
btnBackupShares.Enabled = false;
|
|
btnBackupAll.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);
|
|
personWindow.PersonId = SelectedPersonId;
|
|
Cursor.Current = DefaultCursor;
|
|
personWindow.ShowDialog();
|
|
LoadCmbOwners();
|
|
}
|
|
|
|
private void btnConnShares_Click(object sender, EventArgs e)
|
|
{
|
|
if (SelectedPersonId == 0)
|
|
{
|
|
MessageBox.Show($"Ingen person vald ({SelectedPersonId})");
|
|
}
|
|
else
|
|
{
|
|
var person = _personRepository.GetPersonById(SelectedPersonId);
|
|
personShareConnect = new frmPersonShareConnect(_personStockFacade,_stockPersonConnect,_stockRepository);
|
|
Cursor.Current = Cursors.WaitCursor;
|
|
personShareConnect.ConnectPerson = person;
|
|
Cursor.Current = DefaultCursor;
|
|
personShareConnect.ShowDialog();
|
|
}
|
|
}
|
|
|
|
private void frmInitial_Shown(object sender, EventArgs e)
|
|
{
|
|
LoadCmbOwners();
|
|
}
|
|
|
|
private void LoadCmbOwners()
|
|
{
|
|
cmbOwners.Items.Clear();
|
|
var owners = _personRepository.GetAllOwners();
|
|
if (owners.Count() > 0)
|
|
{
|
|
foreach (var person in owners)
|
|
{
|
|
var itemIndex = cmbOwners.Items.Add(new ComboboxItem($"{person.FirstName} {person.LastName} ({person.NickName})", person.Id));
|
|
}
|
|
}
|
|
cmbOwners.Items.Add(new ComboboxItem($"< ny person> ", 0));
|
|
}
|
|
|
|
private void cmbOwners_SelectedIndexChanged(object sender, EventArgs e)
|
|
{
|
|
SelectedPersonId = ((ComboboxItem)cmbOwners.SelectedItem).HiddenValue;
|
|
}
|
|
|
|
private void btnBackupAll_Click(object sender, EventArgs e)
|
|
{
|
|
backupWindow = new frmBackup(_backupRepository,_backupRoutines);
|
|
backupWindow.ShowDialog();
|
|
}
|
|
}
|
|
}
|