public ActionResult Edit(int?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            Ticket ticket = db.Tickets.Find(id);

            if (ticket == null)
            {
                return(HttpNotFound());
            }
            TicketsHelper ticketHelper = new TicketsHelper(db);
            var           userId       = User.Identity.GetUserId();

            if (!ticketHelper.HasTicketPermission(userId, ticket.Id))
            {
                TempData["Error"] = "Sorry, you do not have permission to access that ticket.";
                return(RedirectToAction("Index"));
            }
            var project      = db.Projects.FirstOrDefault(p => p.Id == ticket.ProjectId);
            var ProjectTitle = project.Title;
            var type         = db.Types.Find(ticket.TypeId);
            var TicketType   = type.Name;

            ViewBag.ProjectTitle = ProjectTitle;
            ViewBag.TicketType   = TicketType;
            return(View(ticket));
        }
        public ActionResult History(int?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            Ticket ticket = db.Tickets.Find(id);

            if (ticket == null)
            {
                return(HttpNotFound());
            }
            TicketsHelper ticketHelper = new TicketsHelper(db);
            var           userId       = User.Identity.GetUserId();

            if (ticketHelper.HasTicketPermission(userId, ticket.Id))
            {
                ViewBag.UserId = User.Identity.GetUserId();
                return(View(ticket));
            }
            TempData["Error"] = "Sorry, you do not have permission to view that ticket.";
            return(RedirectToAction("Index"));
        }
        public ActionResult AddAttachment(int?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            Ticket ticket = db.Tickets.Find(id);

            if (ticket == null)
            {
                return(HttpNotFound());
            }
            TicketsHelper ticketHelper = new TicketsHelper(db);
            var           userId       = User.Identity.GetUserId();

            if (!ticketHelper.HasTicketPermission(userId, ticket.Id))
            {
                TempData["Error"] = "Sorry, you do not have permission to access that ticket.";
                return(RedirectToAction("Index"));
            }
            ViewBag.TicketId    = id;
            ViewBag.TicketTitle = ticket.Title;
            return(View());
        }