public ActionResult Create(Student st)
 {
     if (!ValidateStudent(st))
         this.ModelState.AddModelError("UniqueName", uniqueNameErrorMsg);
     if (ModelState.IsValid)
     {
         MatchingDB db = new MatchingDB();
         st.Guid = Guid.NewGuid();
         db.Students.Add(st);
         db.SaveChanges();
         TempData["message"] = "Student \"" + st.FirstName+" "+st.LastName + "\" is added!";
         db.Dispose();
         return RedirectToAction("Index");
     }
     setViewDataForListOfDegrees();
     return View(st);
 }
        public JsonResult SubmitPreferences(ProjectPreferencesDto preferencesDto)
        {
            MatchingDB db = new MatchingDB();
            Project project = db.Projects.Include("Matchings.Student").Include("ProjectRejects.Student").Where(p => p.Id == preferencesDto.ProjectId && p.Guid == new Guid(preferencesDto.ProjectGuid)).FirstOrDefault();

            string message = project == null ? "Authentication failure: Project can not be identified." : "Success";
            var jsonResult = new JsonResult();
            jsonResult.Data = message;

            if (project == null)
                return jsonResult;

            // Update the project scores with the scores coming from UI
            foreach (ProjectScoreDto pSDto in preferencesDto.ProjectPreferences)
            {
                project.Matchings.Where(m => m.Student.Id == pSDto.StudentId).FirstOrDefault().ProjectScore = pSDto.Score;
            }
            // Remove all rejects
            ICollection<ProjectReject> projectRejects = project.ProjectRejects.ToList();
            project.ProjectRejects.Clear();
            foreach (ProjectReject reject in projectRejects)
            {
                db.ProjectRejects.Remove(reject);
            }

            // Add rejects that came from UI.
            IList<ProjectReject> userRejects = new List<ProjectReject>();
            if (preferencesDto.ProjectRejects != null)
            {
                foreach (ProjectRejectDto pRDto in preferencesDto.ProjectRejects)
                {
                    ProjectReject pr = new ProjectReject();
                    pr.Student = db.Students.Where(s => s.Id == pRDto.StudentId).FirstOrDefault();
                    pr.Reason = pRDto.Reason;
                    userRejects.Add(pr);
                }
            }
            project.ProjectRejects = userRejects;
            project.Feedback = preferencesDto.Feedback;
            project.ScoreDate = DateTime.Now;
            db.SaveChanges();
            db.Dispose();
            SendConfirmationMessage(project);
            return jsonResult;
        }
 private int GetStudentCountByUniqueName(String uname)
 {
     MatchingDB db = new MatchingDB();
     int count=db.Students.Where(s => s.UniqueName == uname.ToLower()).Count();
     db.Dispose();
     return count;
 }
 public ActionResult Index()
 {
     MatchingDB db = new MatchingDB();
     var students = db.Students.Include("Matchings").OrderBy(s=>s.FirstName).ThenBy(s=>s.LastName).ToList();
     db.Dispose();
     return View(students);
 }
        public ActionResult Edit(Student st)
        {
            if (!ModelState.IsValid)
                return View(st);
            MatchingDB db = new MatchingDB();
            Student student = db.Students.FirstOrDefault(s => s.Id == st.Id);
            if (student.UniqueName.ToLower() != st.UniqueName.ToLower() && !ValidateStudent(st))
            {
                setViewDataForListOfDegrees();
                this.ModelState.AddModelError("UniqueName", uniqueNameErrorMsg);
                return View(st);
            }

            student.UniqueName = st.UniqueName;
            student.LastName = st.LastName;
            student.FirstName = st.FirstName;
            student.Email = st.Email;
            student.Degree = st.Degree;
            student.Comments = st.Comments;
            db.SaveChanges();
            TempData["message"] = "Student \"" + student.FirstName+" "+student.LastName + "\" is updated.";
            db.Dispose();
            return RedirectToAction("Index");
        }
 public ActionResult Edit(int id)
 {
     MatchingDB db = new MatchingDB();
     var student = (from s in db.Students where s.Id == id select s).FirstOrDefault<Student>();
     setViewDataForListOfDegrees();
     db.Dispose();
     return View(student);
 }