Show only owners shares

This commit is contained in:
2021-03-14 22:33:38 +01:00
parent a99115a031
commit 350ca62e67
2 changed files with 27 additions and 8 deletions

View File

@ -110,13 +110,22 @@ namespace StockInfo
private void btnValueView_Click(object sender, EventArgs e)
{
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);
stockWindow = new frmMyStocks(_stockRepository, _stockMarketRepository, _stockPersonConnect);
stockWindow.ConnectedPerson = person;
stockWindow.Stocks = _stockMarketRepository.StockMarketList;
Cursor.Current = DefaultCursor;
stockWindow.ShowDialog();
}
}

View File

@ -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<string, DiTraderStockRow> Stocks { get; set; }
public IEnumerable<StockMember> 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<StockMember>();
var personStocks = new List<StockMember>();
//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();
}