Exemplo n.º 1
0
        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);
        }
Exemplo n.º 2
0
        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);
        }