// GET: Users public async Task <IActionResult> Portfolio2([Bind("id,isAdmin,username,password")] User user) { var view = new PortfolioView(); var dbuser = await _context.Users.FirstOrDefaultAsync(x => x.username == user.username && x.password == user.password); if (dbuser == null) { return(NotFound()); } view.user = user; var portfolio = await _context.Portfolios.FirstOrDefaultAsync(m => m.userId == dbuser.id); if (portfolio == null) { return(NotFound()); } //var sharess = _context.Share.Select(i => new IEnumerable<Share>{ i.portfolioId, portfolio.id }); List <Share> shares = new List <Share>(); foreach (var item in _context.Share) { if (item.portfolioId == portfolio.id) { shares.Add(item); } } view.shares = shares; List <Stock> stocks = new List <Stock>(); List <StockValueInTime> values = new List <StockValueInTime>(); foreach (var item in _context.Stock) { if (shares.Any(x => x.stockId == item.id)) { stocks.Add(item); ulong item2MaximumTimestamp = ulong.MinValue; StockValueInTime item2Maximum = null; foreach (var item2 in _context.StockValuesInTime) { if (item2.stockId == item.id) { if (item2.timestamp > item2MaximumTimestamp) { item2MaximumTimestamp = item2.timestamp; item2Maximum = item2; } } } values.Add(item2Maximum); } } view.stocks = stocks; view.values = values; return(RedirectToAction("Portfolio", new { id = dbuser.id })); }
// GET: Users public async Task <IActionResult> Portfolio(int?id) { var view = new PortfolioView(); var user = await _context.Users.FirstOrDefaultAsync(m => m.id == id); if (user == null) { return(NotFound()); } view.user = user; var portfolio = await _context.Portfolios.FirstOrDefaultAsync(m => m.userId == user.id); if (portfolio == null) { return(NotFound()); } //var sharess = _context.Share.Select(i => new IEnumerable<Share>{ i.portfolioId, portfolio.id }); List <Share> shares = new List <Share>(); foreach (var item in _context.Share) { if (item.portfolioId == portfolio.id) { shares.Add(item); } } view.shares = shares; List <Stock> stocks = new List <Stock>(); List <StockValueInTime> values = new List <StockValueInTime>(); foreach (var item in _context.Stock) { if (shares.Any(x => x.stockId == item.id)) { stocks.Add(item); ulong item2MaximumTimestamp = ulong.MinValue; StockValueInTime item2Maximum = null; foreach (var item2 in _context.StockValuesInTime) { if (item2.stockId == item.id) { if (item2.timestamp > item2MaximumTimestamp) { item2MaximumTimestamp = item2.timestamp; item2Maximum = item2; } } } values.Add(item2Maximum); } } view.stocks = stocks; view.values = values; return(View(view)); }