public ActionResult AssignTickets(AssignTicketsViewModel model) { var ticket = DbContext.TicketsDatabase.FirstOrDefault(p => p.Id == model.TicketId); if (ticket == null) { return(RedirectToAction(nameof(TicketsController.Tickets))); } if (model.SelectedRemoveUsers != null) { // DbContext.Users.First(user => ticket.AssignedToId == user.Id).AssignedTickets.Remove(ticket); ticket.AssignedTo = null; ticket.AssignedToId = null; } if (model.SelectedAddUsers != null) { var assignedUser = DbContext.Users.FirstOrDefault(p => p.Id == model.SelectedAddUsers); ticket.AssignedTo = assignedUser; var userManager = HttpContext.GetOwinContext().GetUserManager <ApplicationUserManager>(); userManager.SendEmailAsync(assignedUser.Id, "Notification", "You are assigned to a new Ticket."); DbContext.SaveChanges(); } return(RedirectToAction("Index")); }
public ActionResult AssignTickets(int?TicketId) { if (!TicketId.HasValue) { return(RedirectToAction(nameof(TicketsController.Tickets))); } var roleManager = new RoleManager <IdentityRole>(new RoleStore <IdentityRole>(DbContext)); var model = new AssignTicketsViewModel(); var ticket = DbContext.TicketsDatabase.FirstOrDefault(p => p.Id == TicketId); model.TicketId = ticket.Id; var users = DbContext.Users.ToList(); var developerRoleId = roleManager.Roles.First(role => role.Name == "developer").Id; var developer = DbContext.Users.Where(user => user.Roles.Any(role => role.RoleId == developerRoleId)).ToList(); model.AddUsers = new SelectList(developer, "Id", "Email"); return(View(model)); }