diff --git a/StockInfo/frmInitial.cs b/StockInfo/frmInitial.cs index 9235594..8d9e963 100644 --- a/StockInfo/frmInitial.cs +++ b/StockInfo/frmInitial.cs @@ -110,12 +110,21 @@ namespace StockInfo private void btnValueView_Click(object sender, EventArgs e) { - Cursor.Current = Cursors.WaitCursor; - _stockMarketRepository.LoadStockMarketList(); - stockWindow = new frmMyStocks(_stockRepository, _stockMarketRepository); - stockWindow.Stocks = _stockMarketRepository.StockMarketList; - Cursor.Current = DefaultCursor; - stockWindow.ShowDialog(); + 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(); + } } diff --git a/StockInfo/frmMyStocks.cs b/StockInfo/frmMyStocks.cs index 06def74..5ccba92 100644 --- a/StockInfo/frmMyStocks.cs +++ b/StockInfo/frmMyStocks.cs @@ -18,6 +18,8 @@ namespace StockInfo Color hdrColor; private readonly IStockRepository _stockRepository; private readonly IStockMarketRepository _stockMarketRepository; + private readonly IStockPersonConnect _stockPersonConnect; + public decimal BoughtSum { get; set; } public decimal TotalDiff { get; set; } public decimal CurrentSum { get; set; } @@ -26,13 +28,15 @@ namespace StockInfo public Dictionary Stocks { get; set; } public IEnumerable CurrentStocks { get; set; } + public Person ConnectedPerson { get; set; } - public frmMyStocks(IStockRepository stockRepository, IStockMarketRepository stockMarketRepository) + public frmMyStocks(IStockRepository stockRepository, IStockMarketRepository stockMarketRepository,IStockPersonConnect stockPersonConnect) { hdrColor = Color.CadetBlue; InitializeComponent(); _stockRepository = stockRepository; _stockMarketRepository = stockMarketRepository; + _stockPersonConnect = stockPersonConnect; numericUpDown1.Value = timer1.Interval / 60000; numericUpDown1.Enabled = false; } @@ -48,6 +52,8 @@ namespace StockInfo TotalMinus = 0m; TotalPlus = 0m; var tmpStocks = new List(); + var personStocks = new List(); + //Update all handled shares foreach (var stock in CurrentStocks) { stock.ActValue = Stocks[stock.StockId.Trim()].LatestPrice; @@ -55,7 +61,10 @@ namespace StockInfo _stockRepository.UpdateActualPrice(stock.Id, stock.ActValue); tmpStocks.Add(stock); } - foreach(var stk in tmpStocks.OrderByDescending(s => s.ActAmount * (s.ActValue -s.BuyValue))) + //Use only Stocks belonging to person + var connects =_stockPersonConnect.GetAllConnectionsByPersId(ConnectedPerson.Id); + personStocks.AddRange(tmpStocks.Where(ts => connects.Any(c => c.StockId == ts.Id)).ToList()); + foreach(var stk in personStocks.OrderByDescending(s => s.ActAmount * (s.ActValue -s.BuyValue))) { AddItemToListView(stk); } @@ -144,6 +153,7 @@ namespace StockInfo private void frmMyStocks_Shown(object sender, EventArgs e) { + this.Text = $"{ConnectedPerson.Id} - {ConnectedPerson.FirstName} {ConnectedPerson.LastName}'s Shares"; ReloadData(); }