From d8f6ce46501c469ee9b7eb1f0d8cd38abbe36257 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tommy=20=C3=96man?= Date: Tue, 22 Feb 2022 07:11:18 +0100 Subject: [PATCH] Only show owners stock when selling --- StockDAL/StockRepository.cs | 23 +++++++++++++++-------- StockDal.Interface/IStockRepository.cs | 3 ++- StockInfoCore/frmInitial.cs | 17 ++++++++++++++--- StockInfoCore/frmSelling.cs | 4 +++- 4 files changed, 34 insertions(+), 13 deletions(-) diff --git a/StockDAL/StockRepository.cs b/StockDAL/StockRepository.cs index d18babf..15b377d 100644 --- a/StockDAL/StockRepository.cs +++ b/StockDAL/StockRepository.cs @@ -11,6 +11,7 @@ namespace StockDAL { public class StockRepository : IStockRepository { + public void SaveStockMember(StockMember stockMember) { using (var context = new StockContext()) @@ -25,7 +26,7 @@ namespace StockDAL entity.StockId = stockMember.StockId; entity.StockExtId = stockMember.StockExtId; entity.ActValue = stockMember.ActValue; - entity.ActAmount= stockMember.ActAmount; + entity.ActAmount = stockMember.ActAmount; entity.SoldDate = stockMember.SoldDate; entity.ActDate = stockMember.ActDate; entity.SoldStockPrice = stockMember.SoldStockPrice; @@ -104,13 +105,19 @@ namespace StockDAL } - public IEnumerable GetAllRemainingStocks() + public IEnumerable GetAllRemainingStocks(int personId = 0) { using var context = new StockContext(); - var output = (from stk in context.Stocks - where stk.SoldDate == null || stk.ActAmount > 0 - select stk).ToList(); + var output = personId == 0 + ? (from stk in context.Stocks + where stk.SoldDate == null || stk.ActAmount > 0 + select stk).ToList() + : (from stk in context.Stocks + join prs in context.PersonStocks on stk.Id equals prs.StockId + where (stk.SoldDate == null || stk.ActAmount > 0) && prs.PersonId == personId + select stk).ToList(); return output; + } public void RemoveAllStocks() @@ -130,8 +137,8 @@ namespace StockDAL { using var context = new StockContext(); var output = (from stk in context.Stocks - orderby stk.StockId, (stk.ActAmount * stk.ActValue).ToString() descending - select stk); + orderby stk.StockId, (stk.ActAmount * stk.ActValue).ToString() descending + select stk); return output.ToList(); } @@ -255,6 +262,6 @@ namespace StockDAL } - + } } diff --git a/StockDal.Interface/IStockRepository.cs b/StockDal.Interface/IStockRepository.cs index 14457dd..283095b 100644 --- a/StockDal.Interface/IStockRepository.cs +++ b/StockDal.Interface/IStockRepository.cs @@ -9,7 +9,8 @@ namespace StockDAL.Interface { public interface IStockRepository { - IEnumerable GetAllRemainingStocks(); + // IEnumerable GetAllRemainingStocks(); + IEnumerable GetAllRemainingStocks(int personId = 0); IEnumerable GetAllStocks(); StockMember GetStockMember(int stockMemberId); void InsertMany(List stockMembers); diff --git a/StockInfoCore/frmInitial.cs b/StockInfoCore/frmInitial.cs index 06b03ff..56cbb20 100644 --- a/StockInfoCore/frmInitial.cs +++ b/StockInfoCore/frmInitial.cs @@ -90,7 +90,6 @@ namespace StockInfoCore if (upd) { _stockMarketRepository.LoadStockMarketList(SelectedPersonId); - allStocks.ToList().ForEach(SM => SM.ActValue = UpdateOnlyNonZeroAmount(SM).ActValue); } dataGridView.DataSource = allStocks; @@ -104,7 +103,10 @@ namespace StockInfoCore var output = new StockMember(); if (sMember.ActAmount > 0) { - sMember.ActValue = _stockMarketRepository.StockMarketList[sMember.StockId].LatestPrice; + if (_stockMarketRepository.StockMarketList.ContainsKey(sMember.StockId)){ + sMember.ActValue = _stockMarketRepository.StockMarketList[sMember.StockId].LatestPrice; + _stockRepository.UpdateActualPrice(sMember.Id, sMember.ActValue); + } } output=sMember; return output; @@ -213,7 +215,16 @@ namespace StockInfoCore private void btnStockSale_Click(object sender, EventArgs e) { - _sellWindow.ShowDialog(); + + if (SelectedPersonId == 0) + { + MessageBox.Show($"Ingen person vald ({SelectedPersonId})"); + } + else + { + _sellWindow.selectedPersonId = SelectedPersonId; + _sellWindow.ShowDialog(); + } ReloadData(); } private void btnEditPerson_Click(object sender, EventArgs e) diff --git a/StockInfoCore/frmSelling.cs b/StockInfoCore/frmSelling.cs index 5ddc2a9..8efbf33 100644 --- a/StockInfoCore/frmSelling.cs +++ b/StockInfoCore/frmSelling.cs @@ -14,6 +14,7 @@ namespace StockInfoCore private readonly IStockRepository _stockRepository; private List remainingStocks = new(); public StockMember stkMemSelected { get; set; } = null; + public int selectedPersonId { get; set; } public frmSelling(IStockRepository stockRepository) { @@ -31,7 +32,8 @@ namespace StockInfoCore private void ReloadRemainingStocks() { - remainingStocks = _stockRepository.GetAllRemainingStocks().ToList(); + if (selectedPersonId == 0) return; + remainingStocks = _stockRepository.GetAllRemainingStocks(selectedPersonId).ToList(); foreach (var stock in remainingStocks) { var lvRow = lvSellCandidates.Items.Add(stock.StockId);