public async Task <ActionResult> AssignDeveloper([Bind(Include = "TicketId,SelectedDevId,ProjectId")] AssignTicketToDeveloperModel model) { var userDB = UserHelper.GetUserById(User.Identity.GetUserId()); if (userDB.ProjectsManage.Any(p => p.Id == model.ProjectId) && User.IsInRole("Project Manager")) { var ticket = db.Tickets.Find(model.TicketId); if (ticket == null) { return(new HttpStatusCodeResult(HttpStatusCode.BadRequest)); } ticket.DeveloperId = model.SelectedDevId; db.SaveChanges(); var devDB = db.Users.FirstOrDefault(u => u.Id == model.SelectedDevId); var newMail = new MailMessage(userDB.Email, devDB.Email); newMail.Subject = "New ticket was attached to you."; newMail.Body = $"<h3>This is email from {userDB.DisplayName}. <p>New ticket was attached to you.<p/>"; newMail.IsBodyHtml = true; await PersonalEmail.SendAsync(newMail); return(RedirectToAction("Details", "Projects", new { id = model.ProjectId })); } return(View("NoAccess")); }
public ActionResult AssignDeveloper(int id) { var ticket = db.Tickets.FirstOrDefault(t => t.Id == id); if (ticket == null) { return(new HttpStatusCodeResult(HttpStatusCode.BadRequest)); } var userDB = UserHelper.GetUserById(User.Identity.GetUserId()); if (userDB.ProjectsManage.Any(p => p.Id == ticket.ProjectId) && User.IsInRole("Project Manager")) { var viewModel = new AssignTicketToDeveloperModel(); viewModel.TicketId = id; viewModel.TicketTitle = ticket.Title; viewModel.Developers = UserHelper.GetUsersInRole("Developer"); if (ticket.Developer != null) { viewModel.DevList = new SelectList(viewModel.Developers, "Id", "DisplayName", ticket.Developer.Id); } else { viewModel.DevList = new SelectList(viewModel.Developers, "Id", "DisplayName"); } viewModel.ProjectId = ticket.ProjectId; return(View(viewModel)); } return(View("NoAccess")); }