public async Task <ActionResult> Details(EditGameListViewModel editGame) { if (ModelState.IsValid) { string currentUserID = User.Identity.GetUserId(); GameDescrip editedGame = Database.GDescriptions.Where(x => x.userId == currentUserID && x.appID == editGame.AppId).Single(); editedGame.userComments = editGame.Comment; List <Tag> tags = new List <Tag>(); foreach (var item in editGame.GameTagIds) { tags.Add(Database.Tags.Find(item)); } TagList taglist = new TagList() { appID = editGame.AppId, userID = currentUserID, Tags = tags }; editedGame.Tags = taglist; Database.Entry(editedGame).State = EntityState.Modified; await Database.SaveChangesAsync(); return(RedirectToAction("Details")); } return(View(editGame)); }
// GET: GameLists/Details/5 public async Task <ActionResult> Details(int?id) { if (id == null) { return(new HttpStatusCodeResult(HttpStatusCode.BadRequest)); } // TODO Error Handling for when user is not logged in string currentUserID = User.Identity.GetUserId(); Game selectedGame = await Database.Games.FindAsync(id); if (selectedGame == null) { return(HttpNotFound()); } var currTagList = selectedGame.GameDescriptions.Where(i => i.userId == currentUserID).FirstOrDefault().Tags; List <int> tags = new List <int>(); if (currTagList != null) { foreach (var item in currTagList.Tags) { tags.Add(item.tagID); } } var GameQuery = from gdesc in Database.GDescriptions join game in Database.Games on gdesc.appID equals game.appID join taglist in Database.TagLists on gdesc.Tags.ID equals taglist.ID where gdesc.userId == currentUserID && gdesc.appID == id select new EditGameListViewModel { Name = game.name, LogoUrl = game.img_logo_url, IconUrl = game.img_icon_url, HeaderUrl = game.img_header_url, Playtime = gdesc.playtime_forever, Comment = gdesc.userComments, UserId = gdesc.userId, AppId = game.appID, GameDescId = gdesc.ID, Visible = gdesc.visible, AllTags = Database.Tags.ToList(), GameTagIds = tags }; EditGameListViewModel foundGame = GameQuery.Single(); return(View(foundGame)); }