284 lines
9.9 KiB
C#
284 lines
9.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 StockInfoCore
|
|
{
|
|
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 readonly frmRegisterStock _regWindow;
|
|
private readonly frmMyStocks _stockWindow;
|
|
private readonly frmSelling _sellWindow;
|
|
private readonly frmPerson _personWindow;
|
|
private readonly frmPersonShareConnect _personShareConnect;
|
|
private readonly frmBackup _backupWindow;
|
|
|
|
bool loading = false;
|
|
//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,
|
|
frmRegisterStock regWindow,
|
|
frmMyStocks stockWindow,
|
|
frmSelling sellWindow,
|
|
frmPerson personWindow,
|
|
frmPersonShareConnect personShareConnect,
|
|
frmBackup backupWindow
|
|
)
|
|
{
|
|
InitializeComponent();
|
|
_stockRepository = stockMemberRepository;
|
|
_stockMarketRepository = stockMarketRepository;
|
|
_personRepository = personRepository;
|
|
_addressRepository = addressRepository;
|
|
_stockPersonConnect = stockPersonConnect;
|
|
_backupRepository = backupRepository;
|
|
_backupRoutines = backupRoutines;
|
|
_personStockFacade = personStockFacade;
|
|
_regWindow = regWindow;
|
|
_stockWindow = stockWindow;
|
|
_sellWindow = sellWindow;
|
|
_personWindow = personWindow;
|
|
_personShareConnect = personShareConnect;
|
|
_backupWindow = backupWindow;
|
|
}
|
|
|
|
private void Form1_Load(object sender, EventArgs e)
|
|
{
|
|
ReloadData();
|
|
btnRestoreShares.Enabled = false;
|
|
btnBackupShares.Enabled = false;
|
|
btnReloadShares.Enabled = false;
|
|
btnBackupAll.Enabled = false;
|
|
}
|
|
|
|
private void ReloadData()
|
|
{
|
|
loading = true;
|
|
var allStocks = _stockRepository.GetAllStocks();
|
|
dataGridView.DataSource = allStocks;
|
|
// SaveStocks(allStocks);
|
|
lblTotalRecords.Text = $"Total records: {dataGridView.RowCount}";
|
|
loading = false;
|
|
}
|
|
|
|
|
|
private void btnReload_Click(object sender, EventArgs e)
|
|
{
|
|
ReloadData();
|
|
}
|
|
|
|
private void btnTestScrapFunction_Click(object sender, EventArgs e)
|
|
{
|
|
_stockMarketRepository.LoadStockMarketList(SelectedPersonId, 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(SelectedPersonId);
|
|
var stocklist = _stockMarketRepository.StockMarketList;
|
|
lblStockRows.Text = stocklist.Count().ToString();
|
|
}
|
|
|
|
private void btnStockReg_Click(object sender, EventArgs e)
|
|
{
|
|
Cursor.Current = Cursors.WaitCursor;
|
|
_stockMarketRepository.LoadStockMarketList(SelectedPersonId);
|
|
_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(SelectedPersonId);
|
|
_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)
|
|
{
|
|
_sellWindow.ShowDialog();
|
|
ReloadData();
|
|
}
|
|
private void btnEditPerson_Click(object sender, EventArgs e)
|
|
{
|
|
Cursor.Current = Cursors.WaitCursor;
|
|
_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);
|
|
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();
|
|
}
|
|
|
|
private void dataGridView_SelectionChanged(object sender, EventArgs e)
|
|
{
|
|
if (!loading)
|
|
{
|
|
//MessageBox.Show($"{((DataGridView)sender).SelectedRows.ToString()} eventargs = {e.ToString()}" );
|
|
int id = Convert.ToInt32(dataGridView.Rows[dataGridView.CurrentRow.Index].Cells[0].Value);
|
|
MessageBox.Show($"Vald rads id = {id}");
|
|
}
|
|
}
|
|
}
|
|
}
|