Exemple #1
0
        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));
        }
Exemple #2
0
        // 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));
        }