public async Task <IActionResult> DeleteStock(int?id) { ApplicationUser user = await _userManager.FindByIdAsync(HttpContext.User.GetUserId()); List <Portfolio> portfolios = _context.Portfolio.Include(a => a.PortfolioAssets).Where(p => p.User.Id == user.Id).ToList(); Portfolio workingPortfolio = portfolios.Find(p => p.ID == id); portfolios.Remove(workingPortfolio); var model = new DeleteStockFromPortfolioViewModel { WorkingPortfolio = workingPortfolio, UserPortfolios = portfolios }; return(View(model)); }
public async Task <IActionResult> DeleteStock(int?id, string stockTicker, string amountRemove) { ApplicationUser user = await _userManager.FindByIdAsync(HttpContext.User.GetUserId()); List <Portfolio> portfolios = _context.Portfolio.Where(p => p.User.Id == user.Id).Include(p => p.PortfolioAssets).ToList(); Portfolio workingPortfolio = portfolios.Single(p => p.ID == id); portfolios.Remove(workingPortfolio); var model = new DeleteStockFromPortfolioViewModel { WorkingPortfolio = workingPortfolio, UserPortfolios = portfolios }; PortfolioAsset asset = _context.PortfolioAsset.Single(p => p.PortfolioID == id && p.AssetSymbol == stockTicker); if (asset.NumberOfAssetOwned < int.Parse(amountRemove)) { asset.NumberOfAssetOwned = 0; } else { asset.NumberOfAssetOwned -= int.Parse(amountRemove); } if (asset.NumberOfAssetOwned == 0) { _context.PortfolioAsset.Remove(asset); await _context.SaveChangesAsync(); } else { _context.Update(asset); await _context.SaveChangesAsync(); } HttpContext.Session.Remove("selected_port_viewmodel"); return(View(model)); }