public ActionResult Create(AssignedCourse assignedcourse)
        {
            if (ModelState.IsValid)
            {
                if(assignedcourse.CourseID==0||assignedcourse.TeacherID==0)
                {
                    ViewBag.Message = "All the fields are required !!!";
                    ViewBag.DepartmentID = new SelectList(db.DepartmentDbSet, "DepartmentID", "DeptCode");
                    ViewBag.CourseID = new SelectList("", "CourseID", "CourseCode");
                    ViewBag.TeacherID = new SelectList("", "TeacherID", "TeacherName");
                    return View();
                }

                AssignedCourse testAsnCourse = db.AssignedCourseDbSet.FirstOrDefault(asc => asc.CourseID == assignedcourse.CourseID);
                Course aCourse = db.CourseDbSet.FirstOrDefault(c => c.CourseID == assignedcourse.CourseID);
                Teacher aTeacher = db.TeacherDbSet.FirstOrDefault(t => t.TeacherID == assignedcourse.TeacherID);

                if (testAsnCourse != null)
                {

                    Teacher assignTeacher =
                        db.TeacherDbSet.FirstOrDefault(asignt => asignt.TeacherID == testAsnCourse.TeacherID);
                    if (assignTeacher != null)
                        if (aCourse != null)
                            ViewBag.Message = "The course :- " + aCourse.CourseCode + " has already been assaigned to "+assignTeacher.TeacherName;
                    ViewBag.DepartmentID = new SelectList(db.DepartmentDbSet, "DepartmentID", "DeptCode");
                    ViewBag.CourseID = new SelectList(db.CourseDbSet.Where(c=>c.DepartmentID==aCourse.DepartmentID), "CourseID", "CourseCode");
                    ViewBag.TeacherID = new SelectList(db.TeacherDbSet.Where(t=>t.DepartmentID==aTeacher.DepartmentID), "TeacherID", "TeacherName");
                    return View();
                }

                if (aTeacher.CreditsRemaining < aCourse.Credit)
                {
                    Session["Teacher"] = aTeacher;
                    Session["Course"] = aCourse;
                    Session["AssignedCourse"] = assignedcourse;
                    return RedirectToAction("AskToAssign");
                }

                aTeacher.CreditsHaveTaken += aCourse.Credit;
                aTeacher.CreditsRemaining -= aCourse.Credit;
                db.AssignedCourseDbSet.Add(assignedcourse);
                aCourse.AssignedTo = aTeacher.TeacherName;
                if (db.SaveChanges() >= 0)
                    ViewBag.Message = "The Course :- " + aCourse.CourseCode
                        + " has been assigned to Teacher :- " + aTeacher.TeacherName
                        + " successfully .";
                ViewBag.DepartmentID = new SelectList(db.DepartmentDbSet, "DepartmentID", "DeptCode");
                ViewBag.CourseID = new SelectList("", "CourseID", "CourseCode");
                ViewBag.TeacherID = new SelectList("", "TeacherID", "TeacherName");
                return View();
            }

            ViewBag.DepartmentID = new SelectList(db.DepartmentDbSet, "DepartmentID", "DeptCode");
            ViewBag.CourseID = new SelectList("", "CourseID", "CourseCode");
            ViewBag.TeacherID = new SelectList("", "TeacherID", "TeacherName");
            return View();
        }
 public ActionResult Edit(AssignedCourse assignedcourse)
 {
     if (ModelState.IsValid)
     {
         db.Entry(assignedcourse).State = EntityState.Modified;
         db.SaveChanges();
         return RedirectToAction("Index");
     }
     ViewBag.CourseID = new SelectList(db.CourseDbSet, "CourseID", "CourseCode", assignedcourse.CourseID);
     ViewBag.TeacherID = new SelectList(db.TeacherDbSet, "TeacherID", "TeacherName", assignedcourse.TeacherID);
     return View(assignedcourse);
 }