public ActionResult Edit([Bind(Include = "Id,ProjectId,TicketTypeId,TicketPriorityId,SubmiterId,DeveloperID,Title,Discription,Created")] Ticket ticket, TicketAttachment ticketAttachment, HttpPostedFileBase file) { if (ModelState.IsValid) { var oldTicket = db.Tickets.AsNoTracking().FirstOrDefault(t => t.Id == ticket.Id); if (ticket.DeveloperID == null) { ticketHelper.UnassignTicket(ticket.Id); ticket.TicketStatusId = db.TicketStatus.FirstOrDefault(ts => ts.Name == "Open").Id; } else { ticketHelper.AssignTicket(ticket.DeveloperID, ticket.Id); ticket.TicketStatusId = db.TicketStatus.FirstOrDefault(ts => ts.Name == "Assigned").Id; } if (file != null) { var fileName = DateTime.Now.Ticks + Path.GetFileName(file.FileName); file.SaveAs(Path.Combine(Server.MapPath("~/Uploads/"), fileName)); var attachment = new TicketAttachment { TicketID = ticket.Id, UserId = User.Identity.GetUserId(), Created = DateTime.Now, FilePath = "/Uploads/" + fileName }; db.TicketAttachments.Add(attachment); } ticket.Updated = DateTime.Now; db.Entry(ticket).State = EntityState.Modified; db.SaveChanges(); var newTicket = db.Tickets.AsNoTracking().FirstOrDefault(t => t.Id == ticket.Id); if (newTicket.DeveloperID == null) { notificationHelper.AddUnAssignmentNotification(oldTicket, newTicket); } else { notificationHelper.AddAssignmentNotification(newTicket); } historyHelper.RecordHistoricalChanges(oldTicket, newTicket); return(RedirectToAction("Index")); } ViewBag.DeveloperID = new SelectList(db.Users, "Id", "FirstName", ticket.DeveloperID); ViewBag.ProjectId = new SelectList(db.Projects, "Id", "Name", ticket.ProjectId); ViewBag.SubmiterId = new SelectList(db.Users, "Id", "FirstName", ticket.Submiter); 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 ActionResult ManageUserTickets(string userId, List <int> addTicketIds, List <int> removeTicketIds) { if (addTicketIds != null) { foreach (var ticketId in addTicketIds) { ticketHelper.AssignTicket(userId, ticketId); } } if (removeTicketIds != null) { foreach (var ticketId in removeTicketIds) { ticketHelper.UnAssignTicket(ticketId); } } return(Redirect(Request.UrlReferrer.ToString())); }