using DataDomain; using StockBL.Interface; 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 StockInfo { public partial class frmPersonShareConnect : Form { private readonly IPersonStockFacade _personStockFacade; private readonly IStockPersonConnect _stockPersonConnect; private readonly IStockRepository _stockRepository; public Person ConnectPerson { get; set; } public frmPersonShareConnect(IPersonStockFacade personStockFacade, IStockPersonConnect stockPersonConnect,IStockRepository stockRepository) { InitializeComponent(); _personStockFacade = personStockFacade; _stockPersonConnect = stockPersonConnect; _stockRepository = stockRepository; } private void frmPersonShareConnect_Shown(object sender, EventArgs e) { this.Text = $"{ConnectPerson.Id} - {ConnectPerson.FirstName} {ConnectPerson.LastName}'s Shares"; this.lblShareHolder.Text = $"{ConnectPerson.FirstName} {ConnectPerson.LastName}'s Shares"; RefreshShareList(); RefreshConnectedList(); } private void RefreshShareList() { var dataSource = _personStockFacade.GetUnconnectedShares(); lstShares.DataSource = dataSource; lstShares.DisplayMember = "StockId"; lstShares.ValueMember = "Id"; lstShares.Refresh(); } private void RefreshConnectedList() { var dataSource = _personStockFacade.GetAllSharesConnectedTo(ConnectPerson.Id); lstPersConnected.DataSource = dataSource; lstPersConnected.DisplayMember = "StockId"; lstPersConnected.ValueMember = "Id"; lstPersConnected.Refresh(); } private void btnConnect_Click(object sender, EventArgs e) { if (lstShares.SelectedIndex != -1) { PersonStock ps = new PersonStock(); ps.PersonId = ConnectPerson.Id; ps.StockId = int.Parse(lstShares.SelectedValue.ToString()); _stockPersonConnect.SavePersonStockConnection(ps); RefreshShareList(); RefreshConnectedList(); } } private void btnDisconnect_Click(object sender, EventArgs e) { if (lstPersConnected.SelectedIndex != -1) { PersonStock ps = new PersonStock(); ps.PersonId = ConnectPerson.Id; ps.StockId = int.Parse(lstPersConnected.SelectedValue.ToString()); _stockPersonConnect.RemoveConnectedShare(ps); RefreshShareList(); RefreshConnectedList(); } } private void btnClose_Click(object sender, EventArgs e) { this.Close(); } } }