예제 #1
0
        public async Task <IActionResult> AddComment(int id, [FromBody] CreateCommentViewModel model)
        {
            var appUser = await _db.Users.FirstOrDefaultAsync(x => x.Email == User.Identity.Name);

            var theEvent = await _db.Events.FirstOrDefaultAsync(x => x.Id == id);

            var isCreator = appUser.Id == theEvent.CreatedBy;

            var comment = new Comment
            {
                CommentDate = DateTime.Now,
                EventId     = id,
                Event       = theEvent,
                UserId      = appUser.Id,
                AuthorName  = appUser.FirstName,
                IsCreator   = isCreator,
                AppUser     = appUser,
                Content     = model.Content
            };

            _db.Comments.Add(comment);
            await _db.SaveChangesAsync();

            return(Ok());
        }
예제 #2
0
        public async Task <IActionResult> Cancel(int id)
        {
            var appUser = await _db.Users.FirstOrDefaultAsync(x => x.Email == User.Identity.Name);

            var currentEvent = await _db.Events.FirstOrDefaultAsync(x => x.Id == id);

            if (User.IsInRole("Admin") || appUser.Id == currentEvent.CreatedBy)
            {
                if (currentEvent != null)
                {
                    currentEvent.IsCancelled = !currentEvent.IsCancelled;

                    _db.Events.Update(currentEvent);

                    await _db.SaveChangesAsync();

                    return(Ok());
                }

                else
                {
                    return(NotFound());
                }
            }
            else
            {
                return(Forbid());
            }
        }
예제 #3
0
        public async Task <IActionResult> SignUp(int id)
        {
            var appUser = await _db.Users.FirstOrDefaultAsync(x => x.Email == User.Identity.Name);

            var theEvent = await _db.Events.FirstOrDefaultAsync(x => x.Id == id);

            var signups = await _db.SignUps.Where(x => x.EventId == id).ToListAsync();

            if (signups.Count < theEvent.PeopleNeeded)
            {
                var signUp = new SignUp
                {
                    DateSigned = DateTime.Now,
                    EventId    = id,
                    Event      = theEvent,
                    UserId     = appUser.Id,
                    AppUser    = appUser
                };

                _db.SignUps.Add(signUp);
                await _db.SaveChangesAsync();

                return(Ok());
            }
            else
            {
                return(Forbid());
            }
        }
예제 #4
0
        public async Task <IActionResult> UpdatePassword([FromBody] ChangePasswordModel model)
        {
            var user = await _userManager.FindByEmailAsync(User.Identity.Name);

            if (await _userManager.CheckPasswordAsync(user, model.CurrentPassword) == true)
            {
                await _userManager.ChangePasswordAsync(user, model.CurrentPassword, model.NewPassword);

                await _db.SaveChangesAsync();

                return(Ok());
            }
            else
            {
                return(Forbid());
            }
        }
        public async Task <IActionResult> ReadNotification(int id)
        {
            var currentNotification = await _db.Notifications.FirstOrDefaultAsync(x => x.Id == id);

            if (currentNotification != null)
            {
                currentNotification.IsRead = !currentNotification.IsRead;

                _db.Notifications.Update(currentNotification);

                await _db.SaveChangesAsync();

                return(Ok());
            }
            else
            {
                return(NotFound());
            }
        }