public ActionResult TeacherResponse(int id)
        {
            if (Session["username"] == null || Session["usertype"] == null)
            {
                return(RedirectToRoute(new
                {
                    controller = "Index",
                    action = "Index",
                    id = 1
                }));
            }

            AssignmentSolutionModel asModel       = new AssignmentSolutionModel();
            List <Solution>         listSolutions = new List <Solution>();

            using (XorHubEntities db = new XorHubEntities())
            {
                asModel.Assignment = db.Assignments.Where(a => a.AssignmentId == id).FirstOrDefault();
                listSolutions      = db.Solutions.Where(s => s.AssignmentId == id).ToList();
            }

            ViewBag.filePath  = "~/Database/Questions/" + asModel.Assignment.AssignmentId + ".pdf";
            ViewBag.solutions = listSolutions;

            return(View("TeacherResponse", asModel));
        }
        public ActionResult ViewResponse(int id)
        {
            if (Session["username"] == null || Session["usertype"] == null)
            {
                return(RedirectToRoute(new
                {
                    controller = "Index",
                    action = "Index",
                    id = 1
                }));
            }

            AssignmentSolutionModel asModel       = new AssignmentSolutionModel();
            List <Solution>         listSolutions = new List <Solution>();

            using (XorHubEntities db = new XorHubEntities())
            {
                asModel.Assignment = db.Assignments.Where(a => a.AssignmentId == id).FirstOrDefault();
                listSolutions      = db.Solutions.Where(s => s.AssignmentId == id && s.Stat.Equals("A")).ToList();
            }

            ViewBag.solutions = listSolutions;

            return(View(asModel));
        }
        // GET: Assignment
        public ActionResult StudentResponse(int id)
        {
            if (Session["username"] == null || Session["usertype"] == null)
            {
                return(RedirectToRoute(new
                {
                    controller = "Index",
                    action = "Index",
                    id = 1
                }));
            }

            AssignmentSolutionModel asModel = new AssignmentSolutionModel();

            asModel.Solution = new Solution()
            {
                Stat = "P"
            };

            using (XorHubEntities db = new XorHubEntities())
            {
                List <SelectListItem> list = new List <SelectListItem>();
                foreach (var item in db.Batches)
                {
                    list.Add(new SelectListItem {
                        Text = item.Name, Value = item.BatchId.ToString()
                    });
                }

                asModel.Assignment = db.Assignments.Where(a => a.AssignmentId == id).FirstOrDefault();

                var sol = db.Solutions.Where(s => s.AssignmentId == id && s.Stat.Equals("A")).FirstOrDefault();
                if (sol != null)
                {
                    asModel.Solution = sol;
                }

                ViewData["BatchList"] = list;
            }
            ViewBag.filePath = "~/Database/Questions/" + id + ".pdf";
            ViewBag.state    = false;

            return(View(asModel));
        }
        public ActionResult Submit(HttpPostedFileBase solutionDoc, AssignmentSolutionModel asModel)
        {
            if (asModel.Assignment.Deadline < DateTime.Now)
            {
                ViewBag.Message  = "Deadline crossed! Cannot Submit Solution";
                ViewBag.filePath = "~/Database/Questions/" + asModel.Assignment.AssignmentId + ".pdf";
                return(View("StudentResponse", asModel));
            }

            if (!Directory.Exists(Server.MapPath("~/Database/Solutions/" + Session["username"].ToString())))
            {
                Directory.CreateDirectory(Server.MapPath("~/Database/Solutions/" + Session["username"].ToString()));
            }

            try
            {
                solutionDoc.SaveAs(Path.Combine(Server.MapPath("~/Database/Solutions/" + Session["username"].ToString() + "/"), asModel.Assignment.AssignmentId + ".pdf"));
            }
            catch (Exception ex)
            {
                ViewBag.Message  = "Please Select File!";
                ViewBag.filePath = "~/Database/Questions/" + asModel.Assignment.AssignmentId + ".pdf";
                return(View("StudentResponse", asModel));
            }


            Solution soln = new Solution()
            {
                AssignmentId = asModel.Assignment.AssignmentId,
                Username     = Session["username"].ToString(),
                Stat         = "P",
                UploadedOn   = DateTime.Now,
                Document     = asModel.Assignment.AssignmentId + ".pdf",
                Comment      = ""
            };

            using (XorHubEntities db = new XorHubEntities())
            {
                try
                {
                    string userName = Session["username"].ToString();
                    if (db.Solutions.Any(s => s.Username.Equals(userName) && s.AssignmentId == asModel.Assignment.AssignmentId))
                    {
                        var tmp = db.Solutions.Where(s => s.Username.Equals(userName) && s.AssignmentId == asModel.Assignment.AssignmentId).FirstOrDefault();
                        tmp = soln;
                        db.SaveChanges();
                    }
                    else
                    {
                        db.Solutions.Add(soln);
                        db.SaveChanges();
                    }
                }
                catch (DbEntityValidationException e)
                {
                }
            }

            return(RedirectToRoute(new
            {
                Controller = "Home",
                Action = "Student",
                id = 3
            }
                                   ));
        }