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()); }
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()); } }
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()); } }
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()); } }