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 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<StockMember> GetAllRemainingStocks()
public IEnumerable<StockMember> 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();
}

View File

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

View File

@ -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)

View File

@ -14,6 +14,7 @@ namespace StockInfoCore
private readonly IStockRepository _stockRepository;
private List<StockMember> 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);