public ActionResult UploadFile(StudentTicketViewModel model, HttpPostedFileBase file)
 {
     // Verify that the user selected a file
     if (file != null && file.ContentLength > 0)
     {
         // extract only the filename
         var fileName = Path.GetFileName(file.FileName);
         // store the file inside ~/App_Data/uploads folder
         var path = Path.Combine(Server.MapPath("~/App_Data/uploads"), model.ticket.recordID + "_" + fileName);
         file.SaveAs(path);
         var now  = DateTime.Now;
         var date = new DateTime(now.Year, now.Month, now.Day,
                                 now.Hour, now.Minute, now.Second);
         var ticket  = db.Ticket.Where(t => t.recordID == model.ticket.recordID).FirstOrDefault();
         var user    = db.User.Where(u => u.recordID == model.user.recordID).FirstOrDefault();
         var sysUser = db.User.Where(u => u.recordID == 999999).FirstOrDefault();
         var comment = new Comments
         {
             User        = sysUser,
             Ticket      = ticket,
             CommentDate = date,
             Content     = fileName + " upload by <b>" + user.firstName + " " + user.lastName + "</b>"
         };
         db.Comments.Add(comment);
         db.SaveChanges();
     }
     // redirect back to the index action to show the form once again
     return(RedirectToAction("Ticket", new { id = model.ticket.recordID }));
 }
        // GET: Ticket
        public ActionResult Index()
        {
            if (IsLoggedIn())
            {
                int userID = GetUserID();
                ViewBag.UserID = GetUserID();
                var user = db.User.Where(u => u.recordID == userID).FirstOrDefault();

                var student = db.Student.Where(s => s.recordID == userID).FirstOrDefault();
                var ticket  = db.Ticket.Where(t => t.recordID > 0).FirstOrDefault();
                var idea    = db.Idea.Where(i => i.User.recordID != userID).ToList();

                var studentUser = new StudentTicketViewModel
                {
                    user    = user,
                    student = student,
                    ticket  = ticket
                };

                if (student.matrikelNumber == 0)
                {
                    ViewBag.IsDataSet = false;
                }

                return(View(studentUser));
            }
            else
            {
                return(RedirectToAction("Login", "User"));
            }
        }
        public ActionResult PostComment(StudentTicketViewModel model)
        {
            var now  = DateTime.Now;
            var date = new DateTime(now.Year, now.Month, now.Day,
                                    now.Hour, now.Minute, now.Second);
            var ticket  = db.Ticket.Where(t => t.recordID == model.ticket.recordID).FirstOrDefault();
            var user    = db.User.Where(u => u.recordID == model.user.recordID).FirstOrDefault();
            var comment = new Comments
            {
                User        = user,
                Ticket      = ticket,
                CommentDate = date,
                Content     = model.theComment.Content,
                CommentsFor = model.theComment.CommentsFor
            };

            db.Comments.Add(comment);
            db.SaveChanges();
            return(RedirectToAction("Ticket", new { id = model.ticket.recordID }));
        }
        //Get: Student/Ticket/

        public ActionResult Ticket(int id)
        {
            if (IsLoggedIn())
            {
                int userID = GetUserID();
                ViewBag.UserID   = userID;
                ViewBag.UserRole = GetUserRole();

                var user = db.User.Where(u => u.recordID == userID).FirstOrDefault();

                var student = db.Student.Where(s => s.recordID == userID).FirstOrDefault();
                var ticket  = db.Ticket.Where(t => t.recordID == id)
                              .Include(t => t.ticketStatus)
                              .FirstOrDefault();
                var submission = db.Submissions.
                                 Include("Files").
                                 Where(s => s.Ticket.recordID == id).FirstOrDefault();

                var comments          = db.Comments.Where(c => c.Ticket.recordID == id).ToList();
                var contributersNames = (from u in db.User
                                         join c in db.Contributors on u.recordID equals c.User.recordID
                                         where c.Ticket.recordID == ticket.recordID



                                         select new StudentTicketViewModel.ContributingUsers // had to create new temp table with two columns
                {
                    lastName = u.lastName,
                    Role = c.Role
                }).ToList();
                var idea     = db.Idea.Where(i => i.User.recordID != userID).ToList();
                var proposal = (from p in db.Proposal
                                join i in db.Idea on p.Idea.recordID equals i.recordID
                                join t in db.Ticket on i.recordID equals t.idea.recordID
                                select p
                                ).FirstOrDefault();

                var             path        = Path.Combine(Server.MapPath("~/App_Data/uploads"));
                DirectoryInfo   dirInfo     = new DirectoryInfo(path);
                List <FileInfo> ListOffiles = dirInfo.GetFiles().ToList();
                for (var i = 0; i < ListOffiles.Count; i++)
                {
                    string   tokens = ListOffiles[i].ToString();
                    string[] token  = tokens.Split('_');
                    if (ticket.recordID.ToString() != token[0])
                    {
                        ListOffiles.Remove(ListOffiles[i]);
                        i = i - 1;
                    }
                }
                var artifacts = db.Artifacts.Where(a => a.ticket.recordID == id).ToList();

                var artifactsTemplate = db.ArtifactTemplates.ToList();
                //.Select(at => new SelectListItem
                //{
                //    Value = at.name,
                //    Text = "some"
                //});

                var studentUser = new StudentTicketViewModel
                {
                    user = user,

                    student          = student,
                    ticket           = ticket,
                    availableIdeas   = idea,
                    contributorsName = contributersNames,
                    comments         = comments,
                    proposal         = proposal,
                    files            = ListOffiles,
                    artifacts        = artifacts,
                    artifactsTemplet = artifactsTemplate,
                    submission       = submission
                };

                if (GetUserRole() != "Supervisor")
                {
                    if (student.matrikelNumber == 0)
                    {
                        ViewBag.IsDataSet = false;
                    }
                }


                return(View(studentUser));
            }
            else
            {
                return(RedirectToAction("Login", "User"));
            }
        }