using DataDomain; using StockDAL.Interface; 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; namespace StockInfoCore { public partial class frmRegisterStock : Form { Color hdr = Color.Red; private readonly IStockRepository _stockRepository; public Dictionary Stocks { get; set; } public List RegisteredStocks { get; set; } = new List(); public frmRegisterStock(IStockRepository stockRepository) { InitializeComponent(); _stockRepository = stockRepository; } private void LoadStockCombo() { if (Stocks.Count() > 0) { foreach (var key in Stocks.Keys) { cmbStockChoser.Items.Add(key); } } } private void btnClose_Click(object sender, EventArgs e) { this.Close(); } private void frmRegisterStock_Shown(object sender, EventArgs e) { LoadStockCombo(); } private void cmbStockChoser_SelectedIndexChanged(object sender, EventArgs e) { var stockChosen = Stocks[cmbStockChoser.SelectedItem.ToString()]; txtStockExtId.Text = stockChosen.StockName; txtActValue.Text = stockChosen.LatestPrice.ToString(); txtActDate.Text = (DateTime.Today + stockChosen.TimeOfDay).ToString(); var stockSold = _stockRepository.LatestSell(stockChosen.StockName.Trim()); if (stockSold != null) { txtLatestSoldDate.Text = stockSold.LatestSoldDate.Value.ToString(); txtLatestSoldPrice.Text = stockSold.SoldStockPrice.ToString(); } } private void btnSaveStock_Click(object sender, EventArgs e) { AddValidateData(); RefreshListViewFromRegList(); } private void RefreshListViewFromRegList() { lwRegBuffer.Items.Clear(); foreach (var currStock in RegisteredStocks) { AddItemToListView(currStock); } } private void AddItemToListView(StockMember currStock) { var lv = lwRegBuffer.Items.Add(currStock.StockId); lv.SubItems.Add(currStock.BuyValue.ToString()); lv.SubItems.Add(currStock.PostAmount.ToString()); lv.SubItems.Add(currStock.Comment); //lv.BackColor = Color.Aquamarine; } private void AddValidateData() { var currentStock = new StockMember(); currentStock.StockId = cmbStockChoser.SelectedItem.ToString(); currentStock.StockExtId = txtStockExtId.Text; currentStock.BuyValue = decimal.Parse(string.IsNullOrEmpty(txtBuyPrice.Text) ? "0" : txtBuyPrice.Text); currentStock.PostAmount = long.Parse(string.IsNullOrEmpty(txtBoughtAmount.Text) ? "0" : txtBoughtAmount.Text); currentStock.ActDate = DateTime.Parse(txtActDate.Text); currentStock.BuyDate = string.IsNullOrWhiteSpace(txtBuyDate.Text) ? DateTime.Today : DateTime.Parse(txtBuyDate.Text); currentStock.ActValue = decimal.Parse(string.IsNullOrEmpty(txtActValue.Text) ? "0" : txtActValue.Text); currentStock.ActAmount = long.Parse(string.IsNullOrEmpty(txtActAmount.Text) ? "0" : txtActAmount.Text); currentStock.SoldDate = null; //DateTime.MaxValue; currentStock.SoldValue = decimal.Parse("0"); currentStock.Comment = txtComment.Text; RegisteredStocks.Add(currentStock); initiateRegWin(); } private void initiateRegWin() { txtStockExtId.Text = ""; txtBuyPrice.Text = ""; txtBuyDate.Text = ""; txtBoughtAmount.Text = ""; txtActValue.Text = ""; txtActDate.Text = ""; txtActAmount.Text = ""; txtSoldPrice.Text = ""; txtSoldDate.Text = ""; txtComment.Text = ""; } private void btnSaveToDB_Click(object sender, EventArgs e) { } private void txtBoughtAmount_TextChanged(object sender, EventArgs e) { txtActAmount.Text = txtBoughtAmount.Text; } private void lwRegBuffer_DrawColumnHeader(object sender, DrawListViewColumnHeaderEventArgs e) { using (Brush hBr = new SolidBrush(hdr)) { e.Graphics.FillRectangle(hBr, e.Bounds); e.DrawText(); } } } }