public async Task <IActionResult> Edit(int id, [Bind("ShoutID,UserID,Reaction")] ShoutReactionData shoutReactionData)
        {
            if (id != shoutReactionData.ShoutID)
            {
                return(NotFound());
            }

            if (ModelState.IsValid)
            {
                try
                {
                    _context.Update(shoutReactionData);
                    await _context.SaveChangesAsync();
                }
                catch (DbUpdateConcurrencyException)
                {
                    if (!ShoutReactionDataExists(shoutReactionData.ShoutID))
                    {
                        return(NotFound());
                    }
                    else
                    {
                        throw;
                    }
                }
                return(RedirectToAction(nameof(Index)));
            }
            return(View(shoutReactionData));
        }
        public async Task <IActionResult> Create([Bind("ShoutID,UserID,Reaction")] ShoutReactionData shoutReactionData)
        {
            if (ModelState.IsValid)
            {
                _context.Add(shoutReactionData);
                await _context.SaveChangesAsync();

                return(RedirectToAction(nameof(Index)));
            }
            return(View(shoutReactionData));
        }
Example #3
0
        public async Task Reject(int id)
        {
            var user = await _context.Users.FirstOrDefaultAsync(m => m.UserName == User.Identity.Name);

            var shoutReactions = _context.ShoutReactionData
                                 .Where(m => m.ShoutID == id)
                                 .Where(m => m.UserID == user.Id);

            if (shoutReactions == null)
            {
                await UpdateShoutReaction(id, 2);

                ShoutReactionData t = new ShoutReactionData
                {
                    ShoutID  = id,
                    UserID   = user.Id,
                    Reaction = 2
                };

                _context.Add(t);
                await _context.SaveChangesAsync();
            }
            else
            {
                foreach (var shoutReaction in shoutReactions)
                {
                    if (shoutReaction.Reaction != 2 && shoutReaction.UserID == user.Id)
                    {
                        await UpdateShoutReaction(shoutReaction.ShoutID, 2);

                        ShoutReactionData t = new ShoutReactionData
                        {
                            ShoutID  = id,
                            UserID   = user.Id,
                            Reaction = 2
                        };

                        try
                        {
                            _context.Update(t);
                            await _context.SaveChangesAsync();
                        }
                        catch (DbUpdateConcurrencyException)
                        {
                        }
                    }
                }
            }

            //return RedirectToAction("Index", "Shouts");
        }