public IActionResult AddFavorite(string symbol, int?userId) { if (String.IsNullOrEmpty(symbol)) { return(BadRequest()); } symbol = symbol.ToUpper(); var company = _dbContext.StockCompanies.Find(symbol); if (company == null) { return(NotFound()); } var users = from user in _dbContext.Users orderby user.LastName select new { ID = user.UserID, FullName = user.FirstName + " " + user.LastName }; var favorite = new UserStockFavorite() { Symbol = symbol }; if (userId.HasValue && users.Select(u => u.ID).Contains(userId.Value)) { favorite.UserID = userId.Value; } ViewBag.CompanyName = company.CompanyName; ViewBag.Users = new SelectList(users, "ID", "FullName"); return(View(favorite)); }
public IActionResult AddFavorite(string symbol, [Bind("Symbol,UserID")] UserStockFavorite favorite) { if (String.IsNullOrEmpty(symbol) || symbol != favorite.Symbol) { return(BadRequest()); } if (!ModelState.IsValid) { return(View(favorite)); } var userFavorite = _dbContext.UserStockFavorites.Find(favorite.UserID, favorite.Symbol); // if the stock is already in the User's favorites, we just do nothing if (userFavorite == null) { _dbContext.UserStockFavorites.Add(favorite); _dbContext.SaveChanges(); } return(RedirectToAction(nameof(Index))); }
public IActionResult RemoveFavorite(string symbol, int?userId, [Bind("Symbol,UserID")] UserStockFavorite favorite) { if (String.IsNullOrEmpty(symbol) || symbol != favorite.Symbol || !userId.HasValue || userId <= 0 || userId != favorite.UserID) { return(BadRequest()); } if (!ModelState.IsValid) { return(View(favorite)); } var userFavorite = _dbContext.UserStocks.Find(favorite.UserID, favorite.Symbol); // if the stock is not in the User's favorites, we just do nothing if (userFavorite != null) { _dbContext.UserStocks.Remove(userFavorite); _dbContext.SaveChanges(); } return(RedirectToAction("Details", "Users", new { id = userId })); }