using DataDomain; using Helpers; using StockDAL.Interface; using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Diagnostics; using System.Drawing; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms; namespace StockInfo { public partial class frmSelling : Form { private readonly IStockRepository _stockRepository; private List remainingStocks = new (); public StockMember stkMemSelected { get; set; } = null; public frmSelling(IStockRepository stockRepository ) { InitializeComponent(); _stockRepository = stockRepository; } private void frmSelling_Load(object sender, EventArgs e) { remainingStocks = _stockRepository.GetAllRemainingStocks().ToList(); foreach(var stock in remainingStocks) { var lvRow = lvSellCandidates.Items.Add(stock.StockId); lvRow.Tag = stock.Id; lvRow.SubItems.Add(stock.BuyDate.ToShortDateString()); lvRow.SubItems.Add(stock.BuyValue.ToString()); lvRow.SubItems.Add(stock.ActAmount.ToString()); lvRow.SubItems.Add(stock.ActValue.ToString()); lvRow.SubItems.Add((stock.ActValue * stock.ActAmount).ToString()); } } private void SelectStock(object tag) { //Debug.WriteLine($"selected item {(int)tag}"); foreach(var remStk in remainingStocks) { if(remStk.Id == (int)tag) { stkMemSelected = remStk; break; } } EditStockForSelling(stkMemSelected); } private void EditStockForSelling(StockMember stkMemSelected) { txtId.Text = stkMemSelected.Id.ToString(); txtStockId.Text = stkMemSelected.StockId; txtBuyDate.Text = stkMemSelected.BuyDate.ToShortDateString(); txtBuyNumber.Text = stkMemSelected.PostAmount.ToString(); txtBuyPrice.Text = stkMemSelected.BuyValue.ToString(); txtBuyValue.Text = (stkMemSelected.BuyValue * stkMemSelected.PostAmount).ToString(); txtSoldDate.Text = DateTime.Today.ToShortDateString(); txtSoldPrice.Text = stkMemSelected.ActValue.ToString(); txtSoldAmount.Text = stkMemSelected.ActAmount.ToString(); } private void lvSellCandidates_MouseUp(object sender, MouseEventArgs e) { var selRows = lvSellCandidates.SelectedItems; SelectStock(selRows[0].Tag); } private void txtSoldPrice_TextChanged(object sender, EventArgs e) { CalcNumberAndValue(); } private void CalcNumberAndValue() { if (txtSoldPrice.Text.IsNumeric() && txtSoldAmount.Text.IsNumeric()) { txtSellValue.Text = (decimal.Parse(txtSoldPrice.Text) * long.Parse(txtSoldAmount.Text)).ToString(); txtRemainingNo.Text = (stkMemSelected.PostAmount - long.Parse(txtSoldAmount.Text)).ToString(); } } private void txtSoldAmount_TextChanged(object sender, EventArgs e) { CalcNumberAndValue(); } } }