Example #1
0
        //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));
        }
Example #2
0
        //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));
        }