public async Task <ActionResult> Edit([Bind(Include =
                                                        "Id,Title,Description,Created,Updated,ProjectId,TicketTypeId,TicketPriorityId,TicketStatusId,OwnerUserId,AssignedToUserId")]
                                              Ticket newTicket, string returnUrl)
        {
            var oldTicket = db.Tickets.AsNoTracking().FirstOrDefault(t => t.Id == newTicket.Id); //ticket before editing

            if (ModelState.IsValid)
            {
                newTicket.Updated         = DateTime.Now;
                db.Entry(newTicket).State = EntityState.Modified;
                db.SaveChanges();

                //takes in old and new tickets
                ticketHelper.AddTicketHistory(oldTicket, newTicket);

                //pass relevant data into method
                await ticketHelper.AddTicketNotification(newTicket.Id, oldTicket.AssignedToUserId, newTicket.AssignedToUserId);

                return(Redirect(returnUrl));
            }
            ViewBag.AssignedToUserId = new SelectList(db.Users, "Id", "FirstName", newTicket.AssignedToUserId);
            //ViewBag.OwnerUserId = new SelectList(db.Users, "Id", "FirstName", ticket.OwnerUserId);
            //ViewBag.ProjectId = new SelectList(db.Projects, "Id", "Name", ticket.ProjectId);
            ViewBag.TicketPriorityId = new SelectList(db.TicketPriorities, "Id", "Name", newTicket.TicketPriorityId);
            ViewBag.TicketStatusId   = new SelectList(db.TicketStatus, "Id", "Name", newTicket.TicketStatusId);
            ViewBag.TicketTypeId     = new SelectList(db.TicketTypes, "Id", "Name", newTicket.TicketTypeId);
            return(View(newTicket));
        }
示例#2
0
        public async Task <ActionResult> Create([Bind(Include = "Id,TicketId,FileUrl,Description")] TicketAttachment ticketAttachment, HttpPostedFileBase file)
        {
            if (ModelState.IsValid)
            {
                if (ImageUploadValidator.IsWebFriendlyFile(file))
                {
                    var fileName = Path.GetFileName(file.FileName);
                    file.SaveAs(Path.Combine(Server.MapPath("~/MyImages/"), fileName));
                    ticketAttachment.FileUrl = "/MyImages/" + fileName;
                }

                ticketAttachment.UserId  = User.Identity.GetUserId();
                ticketAttachment.Created = DateTime.Now;
                db.TicketAttachments.Add(ticketAttachment);
                db.SaveChanges();

                await ticketHelper.AddTicketNotification(ticketAttachment);

                ViewBag.PreviousUrl = System.Web.HttpContext.Current.Request.UrlReferrer.ToString();
                return(Redirect(ViewBag.PreviousUrl));
            }

            //ViewBag.TicketId = new SelectList(db.Tickets, "Id", "Title", ticketAttachment.TicketId);
            //ViewBag.UserId = new SelectList(db.Users, "Id", "FirstName", ticketAttachment.UserId);
            return(View(ticketAttachment));
        }
        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 async Task <ActionResult> Edit([Bind(Include = "Id,Title,Description,Created,Updated,ProjectId,TicketTypeId,TicketPriorityId,TicketStatusId,OwnerUserId,AssignedToUserId")] Ticket ticket)
        {
            var oldTicket = db.Tickets.AsNoTracking().FirstOrDefault(t => t.Id == ticket.Id);

            if (ModelState.IsValid)
            {
                db.Entry(ticket).State = EntityState.Modified;
                ticket.Updated         = DateTime.Now;
                db.SaveChanges();
                tixHelper.AddTicketHistory(oldTicket, ticket);
                await tixHelper.AddTicketNotification(ticket.Id, oldTicket.AssignedToUserId, ticket.AssignedToUserId);

                return(RedirectToAction("Index"));
            }
            ViewBag.AssignedToUserId = new SelectList(db.Users, "Id", "FirstName", ticket.AssignedToUserId);
            ViewBag.OwnerUserId      = new SelectList(db.Users, "Id", "FirstName", ticket.OwnerUserId);
            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);
            return(View(ticket));
        }