public ActionResult Index(vmCourseSearch vm)
 {
     List<CourseDetail> toreturn = new List<CourseDetail>();
     IEnumerable<CourseDetail> courses = null;
     using (CoursesManager)
     {
         courses = CoursesManager.GetAllCourseDetails();
         if (vm.SelectedDept > 0)
         {
             courses = courses.Where(c => c.DepartmentID == vm.SelectedDept);
         }
         if (vm.SelectedInst > 0)
         {
             courses = courses.Where(c => c.InstructorID == vm.SelectedInst);
         }
         if (!string.IsNullOrEmpty(vm.SearchText))
         {
             courses = courses.Where(c => c.Title.Contains(vm.SearchText));
         }
         JsonResult result = Json(courses.ToList());
         return result;
     }
 }
        public ActionResult Index()
        {
            using (CoursesManager)
            {
                using (DeptManager)
                {
                    using (InstManager)
                    {
                        using (PeopleManager)
                        {
                                var disp = new vmCourseSearch();
                                disp.Departments = DeptManager.GetAllDepartments().ToList();
                                var inst = InstManager.GetAllInstructors();
                                var people = PeopleManager.GetAllPeople();

                                var instr = from instructor in inst
                                            join person in people on instructor.PersonID equals person.ID
                                            select new KeyValuePair<int, string>(instructor.ID, string.Format("{0}, {1}", person.LastName, person.FirstMidName));
                                disp.Instructors = instr.ToDictionary(t => t.Key, t => t.Value);
                                return View(disp);
                        }
                    }
                }
            }
        }