public async Task <ActionResult> Edit([Bind(Include = "Id,Title,Body,Description,Created,ProjectId,TicketTypeId,TicketPriorityId,TicketStatusId,OwnerUserId,AssignedUserId")] Ticket ticket, IdentityMessage message, List <string> users) { var oldTicket = db.Tickets.AsNoTracking().FirstOrDefault(t => t.Id == ticket.Id); if (ModelState.IsValid) { var ticketUsers = ticketHelper.ListUsersOnTicket(ticket.Id); if (ticketUsers.Count > 0) { foreach (var user in ticketUsers.ToList()) { ticketHelper.RemoveUserFromTicket(user.Id, ticket.Id); } } foreach (var userId in users) { ticketHelper.AddUserToTicket(userId, ticket.Id); } ticket.Updated = DateTimeOffset.Now; db.Entry(ticket).State = EntityState.Modified; db.SaveChanges(); await TicketNotificationExtensions.TriggerNotifications(ticket, oldTicket); ticket.RecordChanges(oldTicket); return(RedirectToAction("Index")); //db.Tickets.Add(ticket); //db.Entry(ticket).State = EntityState.Modified; //db.SaveChanges(); //if (string.IsNullOrEmpty(oldTicket.AssignedUserId) && !string.IsNullOrEmpty(ticket.AssignedUserId)) //{ // ticket.TicketStatusId = db.TicketStatus.FirstOrDefault(t => t.Value == "Assigned").Id; //} //ticket.RecordChanges(oldTicket); //await ticket.TriggerNotifications(oldTicket); //return RedirectToAction("Details", "Tickets", new { id = ticket.Id }); } ViewBag.UserId = new SelectList(db.Users, "Id", "FirstName"); ViewBag.ProjectId = new SelectList(db.Projects, "Id", "Title", ticket.ProjectId); ViewBag.AssignedUserId = new SelectList(db.Users, "Id", "FirstName", ticket.AssignedUserId); ViewBag.OwnerUserId = new SelectList(db.Users, "Id", "FirstName", ticket.OwnerUserId); ViewBag.TicketPriorityId = new SelectList(db.TicketPriorities, "Id", "Name", ticket.TicketPriorityId); ViewBag.TicketStatusId = new SelectList(db.TicketStatus, "Id", "Name", ticket.TicketStatusId); ViewBag.TicketTypeId = new SelectList(db.TicketTypes, "Id", "Name", ticket.TicketTypeId); return(View(ticket)); }
public async Task <ActionResult> TicketAssign(string userId, List <int> AllTickets) { //Remove user from all tickets foreach (var ticket in ticketHelper.ListUserTickets(userId)) { ticketHelper.RemoveUserFromTicket(userId, ticket.Id);//need to specify Id here because passing in entire ticket in foreach loop } //Add user to projects if (AllTickets != null) { foreach (var ticketId in AllTickets) //already using Id's here for variable projId so don't need to denote proj.Id below { ticketHelper.AddUserToTicket(userId, ticketId); await ticketHelper.AddTicketNotification(ticketId, "", userId); } } return(RedirectToAction("UserIndex")); }
public ActionResult TicketAssign(string UserId, List <int> AllTickets) { TicketsHelper ticketHelper = new TicketsHelper(); //First use the Project helper to remove this user from all Tickets foreach (var ticket in ticketHelper.ListUserTickets(UserId)) { ticketHelper.RemoveUserFromTicket(UserId, ticket.Id); } //Next add the user to the selected Projects (AllTickets) if (AllTickets != null) { foreach (var ticketId in AllTickets) { ticketHelper.AddUserToTicket(UserId, ticketId); } } return(RedirectToAction("UserIndex", "AdminUser")); }
public async Task <ActionResult> TicketAssignment(List <int> tickets, string developers, IdentityMessage message, Ticket oldTicket, Ticket tick) { foreach (var ticket in tickets) { //Step 1: Unassign everyone from selected ticket var tickUsers = tickHelper.ListUsersOnTicket(ticket); if (tickUsers.Count > 0) { foreach (var user in tickUsers) { tickHelper.RemoveUserFromTicket(user.Email, ticket); } } //Step 2: Assign selected users to ticket tickHelper.AddUserToTicket(developers, ticket); } db.SaveChanges(); await Notify.TriggerNotifications(tick, oldTicket); //Step 3: Take user somewhere else return(RedirectToAction("Index", "Tickets")); }