Only show owners stock when selling

This commit is contained in:
2022-02-22 07:11:18 +01:00
parent 40d869b5de
commit d8f6ce4650
4 changed files with 34 additions and 13 deletions

View File

@ -11,6 +11,7 @@ namespace StockDAL
{ {
public class StockRepository : IStockRepository public class StockRepository : IStockRepository
{ {
public void SaveStockMember(StockMember stockMember) public void SaveStockMember(StockMember stockMember)
{ {
using (var context = new StockContext()) using (var context = new StockContext())
@ -25,7 +26,7 @@ namespace StockDAL
entity.StockId = stockMember.StockId; entity.StockId = stockMember.StockId;
entity.StockExtId = stockMember.StockExtId; entity.StockExtId = stockMember.StockExtId;
entity.ActValue = stockMember.ActValue; entity.ActValue = stockMember.ActValue;
entity.ActAmount= stockMember.ActAmount; entity.ActAmount = stockMember.ActAmount;
entity.SoldDate = stockMember.SoldDate; entity.SoldDate = stockMember.SoldDate;
entity.ActDate = stockMember.ActDate; entity.ActDate = stockMember.ActDate;
entity.SoldStockPrice = stockMember.SoldStockPrice; entity.SoldStockPrice = stockMember.SoldStockPrice;
@ -104,13 +105,19 @@ namespace StockDAL
} }
public IEnumerable<StockMember> GetAllRemainingStocks() public IEnumerable<StockMember> GetAllRemainingStocks(int personId = 0)
{ {
using var context = new StockContext(); using var context = new StockContext();
var output = (from stk in context.Stocks var output = personId == 0
where stk.SoldDate == null || stk.ActAmount > 0 ? (from stk in context.Stocks
select stk).ToList(); 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; return output;
} }
public void RemoveAllStocks() public void RemoveAllStocks()
@ -130,8 +137,8 @@ namespace StockDAL
{ {
using var context = new StockContext(); using var context = new StockContext();
var output = (from stk in context.Stocks var output = (from stk in context.Stocks
orderby stk.StockId, (stk.ActAmount * stk.ActValue).ToString() descending orderby stk.StockId, (stk.ActAmount * stk.ActValue).ToString() descending
select stk); select stk);
return output.ToList(); return output.ToList();
} }

View File

@ -9,7 +9,8 @@ namespace StockDAL.Interface
{ {
public interface IStockRepository public interface IStockRepository
{ {
IEnumerable<StockMember> GetAllRemainingStocks(); // IEnumerable<StockMember> GetAllRemainingStocks();
IEnumerable<StockMember> GetAllRemainingStocks(int personId = 0);
IEnumerable<StockMember> GetAllStocks(); IEnumerable<StockMember> GetAllStocks();
StockMember GetStockMember(int stockMemberId); StockMember GetStockMember(int stockMemberId);
void InsertMany(List<StockMember> stockMembers); void InsertMany(List<StockMember> stockMembers);

View File

@ -90,7 +90,6 @@ namespace StockInfoCore
if (upd) if (upd)
{ {
_stockMarketRepository.LoadStockMarketList(SelectedPersonId); _stockMarketRepository.LoadStockMarketList(SelectedPersonId);
allStocks.ToList().ForEach(SM => SM.ActValue = UpdateOnlyNonZeroAmount(SM).ActValue); allStocks.ToList().ForEach(SM => SM.ActValue = UpdateOnlyNonZeroAmount(SM).ActValue);
} }
dataGridView.DataSource = allStocks; dataGridView.DataSource = allStocks;
@ -104,7 +103,10 @@ namespace StockInfoCore
var output = new StockMember(); var output = new StockMember();
if (sMember.ActAmount > 0) 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; output=sMember;
return output; return output;
@ -213,7 +215,16 @@ namespace StockInfoCore
private void btnStockSale_Click(object sender, EventArgs e) 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(); ReloadData();
} }
private void btnEditPerson_Click(object sender, EventArgs e) private void btnEditPerson_Click(object sender, EventArgs e)

View File

@ -14,6 +14,7 @@ namespace StockInfoCore
private readonly IStockRepository _stockRepository; private readonly IStockRepository _stockRepository;
private List<StockMember> remainingStocks = new(); private List<StockMember> remainingStocks = new();
public StockMember stkMemSelected { get; set; } = null; public StockMember stkMemSelected { get; set; } = null;
public int selectedPersonId { get; set; }
public frmSelling(IStockRepository stockRepository) public frmSelling(IStockRepository stockRepository)
{ {
@ -31,7 +32,8 @@ namespace StockInfoCore
private void ReloadRemainingStocks() private void ReloadRemainingStocks()
{ {
remainingStocks = _stockRepository.GetAllRemainingStocks().ToList(); if (selectedPersonId == 0) return;
remainingStocks = _stockRepository.GetAllRemainingStocks(selectedPersonId).ToList();
foreach (var stock in remainingStocks) foreach (var stock in remainingStocks)
{ {
var lvRow = lvSellCandidates.Items.Add(stock.StockId); var lvRow = lvSellCandidates.Items.Add(stock.StockId);