//public ActionResult Edit([Bind(Include = "Id,Title,Description,Created,ProjectId,TicketTypeId,TicketPriorityId,TicketStatusId,OwnerUserId,AssignedToUserId,Updated")] Ticket ticket) public ActionResult Edit([Bind(Include = "Id,Title,Description,Created,ProjectId,TicketTypeId,TicketPriorityId,TicketStatusId,OwnerUserId,AssignedToUserId")] Ticket ticket) { if (!User.Identity.IsAuthenticated) { return(RedirectToAction("Login", "Account")); } if (ModelState.IsValid) { //TicketHistory tickethistory = new TicketHistory(); //tickethistory.TicketId = ticket.Id; //tickethistory.Property = "All"; //tickethistory.OldValue = ""; //tickethistory.NewValue = ticket.ToString(); //tickethistory.Changed = "Created new ticket"; //tickethistory.UserId = User.Identity.GetUserId(); //db.Entry(ticket).State = EntityState.Modified; //db.TicketHistories.Add(tickethistory); TicketHistory tickethistory = historyhelper.FindTicketChanges(ticket); tickethistory.UserId = User.Identity.GetUserId(); db.Entry(tickethistory).State = EntityState.Modified; db.TicketHistories.Add(tickethistory); //ticket.Created = DateTime.Now; ticket.Updated = DateTime.Now; db.Entry(ticket).State = EntityState.Modified; db.SaveChanges(); return(RedirectToAction("Index")); } ViewBag.ProjectId = new SelectList(db.Projects, "Id", "Name", ticket.ProjectId); ViewBag.TicketPriorityId = new SelectList(db.TicketPriorities, "Id", "Name", ticket.TicketPriorityId); ViewBag.TicketStatusId = new SelectList(db.TicketStatuses, "Id", "Name", ticket.TicketStatusId); ViewBag.TicketTypeId = new SelectList(db.TicketTypes, "Id", "Name", ticket.TicketTypeId); ViewBag.OwnerUserId = new SelectList(db.Users, "Id", "DisplayName", ticket.OwnerUserId); ViewBag.AssignedToUserId = new SelectList(db.Users, "Id", "DisplayName", ticket.AssignedToUserId); //ViewBag.AssignedToUserId = new SelectList(db.Users, "Id", "DisplayName", User.IsInRole("Developer")); return(View(ticket)); }
//public ActionResult Edit([Bind(Include = "Id,Title,Description,Created,ProjectId,TicketTypeId,TicketPriorityId,TicketStatusId,OwnerUserId,AssignedToUserId,Updated")] Ticket ticket) public ActionResult Edit([Bind(Include = "Id,Title,Description,Created,ProjectId,TicketTypeId,TicketPriorityId,TicketStatusId,OwnerUserId,AssignedToUserId")] Ticket ticket) { if (ModelState.IsValid) { // TempData["UserPreferences"] is read in at Start of Action var userPref = (UserPreferencesViewModel)TempData["UserPreferences"]; ticket.AssignedToUser = db.Users.AsNoTracking().FirstOrDefault(u => u.Id == ticket.AssignedToUserId); TicketHistory tickethistory = historyhelper.FindTicketChanges(ticket); if (tickethistory.Property != "No changes made") { tickethistory.UserId = User.Identity.GetUserId(); db.Entry(tickethistory).State = EntityState.Modified; db.TicketHistories.Add(tickethistory); db.SaveChanges(); } ticket.Updated = DateTime.Now; db.Entry(ticket).State = EntityState.Modified; db.SaveChanges(); // TempData["UserPreferences"] is rewritten at End of Action TempData["UserPreferences"] = userPref; ViewBag.FilterByTickets = userPref.FilterByTickets; ViewBag.FilterByStatus = userPref.FilterByStatus; if ((tickethistory.Property == "AssignedTo User") && (tickethistory.NewValue != "Unassigned-To User")) { TicketNotification ticketnotif = new TicketNotification(); ticketnotif.TicketId = tickethistory.TicketId; ticketnotif.UserId = ticket.AssignedToUserId; ticketnotif.Message = "You have been assigned a ticket on BugTracker.Pro."; ticketnotif.Created = DateTime.Now; db.Entry(ticketnotif).State = EntityState.Modified; db.TicketNotifications.Add(ticketnotif); db.SaveChanges(); return(RedirectToAction("EmailNotification", "Account", new { sendemail = ticket.AssignedToUser.Email, sendmsg = ticketnotif.Message, ticketId = ticketnotif.TicketId })); } if (tickethistory.Property == "Ticket Status" && tickethistory.NewValue == "ARCHIVED") { return(RedirectToAction("Index")); } else { return(RedirectToAction("Details", new { id = ticket.Id })); } } ViewBag.ProjectId = new SelectList(db.Projects, "Id", "Name", ticket.ProjectId); ViewBag.TicketPriorityId = new SelectList(db.TicketPriorities, "Id", "Name", ticket.TicketPriorityId); ViewBag.TicketStatusId = new SelectList(db.TicketStatuses, "Id", "Name", ticket.TicketStatusId); ViewBag.TicketTypeId = new SelectList(db.TicketTypes, "Id", "Name", ticket.TicketTypeId); ViewBag.OwnerUserId = new SelectList(db.Users, "Id", "DisplayName", ticket.OwnerUserId); ViewBag.AssignedToUserId = new SelectList(db.Users, "Id", "DisplayName", ticket.AssignedToUserId); return(View(ticket)); }