// // GET: /ElectiveLists/ public ActionResult Index(string sortOrder, int?page) { int pageSize = 100; int pageNumber = (page ?? 1); String currentSort = ""; bool titleAsc = false; //var electiveListsList = from s in electiveLists.GetAll() select s; var electiveListsList = _electiveListProducer.GetAll().AsQueryable(); if (sortOrder == null) { sortOrder = "title_asc"; } String[] sorts = sortOrder.Split(';'); int lastTitle = -1; for (int i = 0; i < sorts.Length; i++) { if (sorts[i].StartsWith("title")) { if (lastTitle > 0) { sorts[lastTitle] = ""; } else { lastTitle = i; } } } foreach (string s in sorts) { if (s.Length <= 0) { continue; } currentSort = currentSort + s + ";"; if (s.Equals("title_asc")) { electiveListsList = electiveListsList.OrderBy(x => x.electiveListName); titleAsc = true; } if (s.Equals("title_desc")) { electiveListsList = electiveListsList.OrderByDescending(x => x.electiveListName); titleAsc = false; } } ViewBag.titleAsc = titleAsc; ViewBag.currentSort = currentSort; return(View(electiveListsList.ToPagedList(pageNumber, pageSize))); }
public ActionResult Details(int id = 0) { //Plan plan = plans.Find(id); Plan plan = _planProducer.Get(new Plan() { ID = id }); if (plan == null) { return(HttpNotFound()); } if (webSecurity.CurrentUser.IsInRole("Advisor") || plan.userID == webSecurity.CurrentUserId) { //var semesterList = semesters.Where(s => s.ID > plan.semesterID); var semesterList = _semesterProducer.GetAll().Where(s => s.ID > plan.semesterID); ViewBag.semesterID = new SelectList(semesterList.AsEnumerable(), "ID", "semesterName"); return(View(plan)); } else { return(HttpNotFound()); } }
public ActionResult Create() { //ViewBag.degreeProgramID = new SelectList(degreePrograms.GetAll().AsEnumerable(), "ID", "degreeProgramName"); ViewBag.degreeProgramID = new SelectList(_degreeProgramProducer.GetAll().AsEnumerable(), "ID", "degreeProgramName"); if (webSecurity.CurrentUser.IsInRole("Advisor")) { ViewBag.userID = new SelectList(users.GetAll().AsEnumerable(), "ID", "username"); ViewBag.Advisor = true; } else { ViewBag.userID = webSecurity.CurrentUserId; ViewBag.Advisor = false; } //ViewBag.semesterID = new SelectList(semesters.Where(i => i.standard == true).AsEnumerable(), "ID", "semesterName"); ViewBag.semesterID = new SelectList(_semesterProducer.GetAll().Where(i => i.standard == true).AsEnumerable(), "ID", "semesterName"); return(View()); }
// // GET: /Courses/ /** * @russfeld * Paging from * http://www.asp.net/mvc/tutorials/getting-started-with-ef-using-mvc/sorting-filtering-and-paging-with-the-entity-framework-in-an-asp-net-mvc-application */ public ActionResult Index(string sortOrder, int?page, string filterString) { int pageSize = 100; int pageNumber = (page ?? 1); String currentSort = ""; String numSort = ""; String titleSort = ""; String hoursSort = ""; String selectedPrefix = ""; ViewBag.ugrad = true; ViewBag.grad = true; ViewBag.minHrs = "0"; ViewBag.maxHrs = "18"; ViewBag.minNum = "0"; ViewBag.maxNum = "999"; bool titleAsc = false; bool hoursAsc = false; bool numAsc = false; var courseList = _courseProducer.GetAll(); var courseQuery = from s in courseList select s; if (!String.IsNullOrEmpty(filterString)) { ViewBag.filterString = filterString; String[] filters = filterString.Split(';'); //parsing filters foreach (string filter in filters) { if (filter.Contains("prefix")) { String prefixes = filter.Replace("prefix:", ""); courseQuery = courseQuery.Where(c => c.coursePrefix.Equals(prefixes)); selectedPrefix = prefixes; ViewBag.filtered = true; } if (filter.Equals("ugrad")) { courseQuery = courseQuery.Where(c => c.undergrad.Equals(true)); ViewBag.grad = false; ViewBag.filtered = true; } if (filter.Equals("grad")) { courseQuery = courseQuery.Where(c => c.graduate.Equals(true)); ViewBag.ugrad = false; ViewBag.filtered = true; } if (filter.Equals("none")) { courseQuery = courseQuery.Where(c => c.courseNumber.Equals(-1)); ViewBag.ugrad = false; ViewBag.grad = false; ViewBag.filtered = true; } int minNum = 0; if (filter.Contains("minNum")) { String minNumber = filter.Replace("minNum:", ""); if (Int32.TryParse(minNumber, out minNum)) { if (minNum > 0) { courseQuery = courseQuery.Where(c => c.courseNumber >= minNum); ViewBag.minNum = minNum.ToString(); ViewBag.filtered = true; } } } int maxNum = 999; if (filter.Contains("maxNum")) { String maxNumber = filter.Replace("maxNum:", ""); if (Int32.TryParse(maxNumber, out maxNum)) { if (maxNum < 999) { courseQuery = courseQuery.Where(c => c.courseNumber <= maxNum); ViewBag.maxNum = maxNum.ToString(); ViewBag.filtered = true; } } } int minHrs = 0; if (filter.Contains("minHrs")) { String minHours = filter.Replace("minHrs:", ""); if (Int32.TryParse(minHours, out minHrs)) { if (minHrs > 0) { courseQuery = courseQuery.Where(c => c.maxHours >= minHrs); ViewBag.minHrs = minHrs.ToString(); ViewBag.filtered = true; } } } int maxHrs = 0; if (filter.Contains("maxHrs")) { String maxHours = filter.Replace("maxHrs:", ""); if (Int32.TryParse(maxHours, out maxHrs)) { if (maxHrs < 18) { courseQuery = courseQuery.Where(c => c.minHours <= maxHrs); ViewBag.maxHrs = maxHrs.ToString(); ViewBag.filtered = true; } } } } } else { ViewBag.filterString = ""; ViewBag.filtered = false; } //default sort if (sortOrder == null) { sortOrder = "num_asc"; } String[] sorts = sortOrder.Split(';'); int lastNum = -1; int lastTitle = -1; int lastHours = -1; //parsing sorts for (int i = 0; i < sorts.Length; i++) { if (sorts[i].StartsWith("num")) { if (lastNum > 0) { sorts[lastNum] = ""; } else { lastNum = i; } } if (sorts[i].StartsWith("title")) { if (lastTitle > 0) { sorts[lastTitle] = ""; } else { lastTitle = i; } } if (sorts[i].StartsWith("hours")) { if (lastHours > 0) { sorts[lastHours] = ""; } else { lastHours = i; } } } var courseListEnum = courseQuery.AsEnumerable(); //doing sorts foreach (string s in sorts) { if (s.Length <= 0) { continue; } currentSort = currentSort + s + ";"; if (s.Equals("num_asc")) { courseListEnum = courseListEnum.OrderBy(x => x.courseCatalogNumber); titleSort = titleSort + s + ";"; hoursSort = hoursSort + s + ";"; numAsc = true; } if (s.Equals("num_desc")) { courseListEnum = courseListEnum.OrderByDescending(x => x.courseCatalogNumber); titleSort = titleSort + s + ";"; hoursSort = hoursSort + s + ";"; numAsc = false; } if (s.Equals("title_asc")) { courseListEnum = courseListEnum.OrderBy(x => x.courseTitle); numSort = numSort + s + ";"; hoursSort = hoursSort + s + ";"; titleAsc = true; } if (s.Equals("title_desc")) { courseListEnum = courseListEnum.OrderByDescending(x => x.courseTitle); numSort = numSort + s + ";"; hoursSort = hoursSort + s + ";"; titleAsc = false; } if (s.Equals("hours_asc")) { courseListEnum = courseListEnum.OrderBy(x => x.courseHours); numSort = numSort + s + ";"; titleSort = titleSort + s + ";"; hoursAsc = true; } if (s.Equals("hours_desc")) { courseListEnum = courseListEnum.OrderByDescending(x => x.courseHours); numSort = numSort + s + ";"; titleSort = titleSort + s + ";"; hoursAsc = false; } } //setting up needed variables in ViewBag List <string> prefixList = courseList.AsQueryable().Select(x => x.coursePrefix).Distinct().ToList(); prefixList.Sort(); prefixList.Insert(0, "any"); ViewBag.prefixes = new SelectList(prefixList, selectedPrefix); ViewBag.currentSort = currentSort; ViewBag.hoursSort = hoursSort; ViewBag.titleSort = titleSort; ViewBag.numSort = numSort; ViewBag.titleAsc = titleAsc; ViewBag.hoursAsc = hoursAsc; ViewBag.numAsc = numAsc; return(View(courseListEnum.ToPagedList(pageNumber, pageSize))); }
public IQueryable <T> GetAll() { return(_producer.GetAll().AsQueryable()); }
public ActionResult Index(string sortOrder, int?page) { int pageSize = 100; int pageNumber = (page ?? 1); String currentSort = ""; bool titleAsc = false; /* * var plansListA = from s in plans.GetAll() select s; * var plansList = plansListA * .Include(pl => pl.degreeProgram) * .Include(pl => pl.degreeProgram.requiredCourses.Select(s => s.course.prerequisites)) * .Include(pl => pl.degreeProgram.requiredCourses.Select(s => s.course.prerequisiteFor)) * .Include(pl => pl.degreeProgram.electiveCourses.Select(s => s.electiveList)) * .Include(pl => pl.user) * .Include(pl => pl.semester) * .Include(pl => pl.planCourses.Select(s => s.plan)) * .Include(pl=>pl.planCourses.Select(s => s.course)) * .Include(pl=>pl.planCourses.Select(s=>s.electiveList)) * .Include(pl=>; */ var plansList = _planProducer.GetAll().AsQueryable(); if (!webSecurity.CurrentUser.IsInRole("Advisor")) { int id = webSecurity.CurrentUserId; plansList = plansList.Where(s => s.userID == id); } if (sortOrder == null) { sortOrder = "title_asc"; } String[] sorts = sortOrder.Split(';'); int lastTitle = -1; for (int i = 0; i < sorts.Length; i++) { if (sorts[i].StartsWith("title")) { if (lastTitle > 0) { sorts[lastTitle] = ""; } else { lastTitle = i; } } } foreach (string s in sorts) { if (s.Length <= 0) { continue; } currentSort = currentSort + s + ";"; if (s.Equals("title_asc")) { plansList = plansList.OrderBy(x => x.user.username); titleAsc = true; } if (s.Equals("title_desc")) { plansList = plansList.OrderByDescending(x => x.user.username); titleAsc = false; } } ViewBag.titleAsc = titleAsc; ViewBag.currentSort = currentSort; return(View(plansList.ToPagedList(pageNumber, pageSize))); }
private void ChangeDegreeProgram(Plan plan) { //List<PlanCourse> plans = planCourses.Where(i => i.planID == plan.ID.ToList(); List <PlanCourse> plans = _planCourseProducer.GetAll().Where(pc => pc.planID == plan.ID).ToList(); foreach (PlanCourse planCourse in plans) { _planCourseProducer.Remove(planCourse); //planCourses.Remove(planCourse); //planCourses.SaveChanges(); } Dictionary <int, int> semesterOrders = new Dictionary <int, int>(); Dictionary <int, int> semesterMap = new Dictionary <int, int>(); int nowSem = 1; //List<Semester> semesterList = semesters.Where(i => i.ID >= plan.semesterID).ToList(); List <Semester> semesterList = _semesterProducer.GetAll().Where(s => s.ID >= plan.semesterID).ToList(); foreach (Semester sem in semesterList) { if (sem.standard == true) { semesterMap.Add(nowSem, sem.ID); semesterOrders.Add(nowSem, 0); nowSem++; } } List <RequiredCourse> requirements = plan.degreeProgram.requiredCourses.ToList(); foreach (RequiredCourse req in requirements) { PlanCourse pcourse = new PlanCourse(); pcourse.planID = plan.ID; int order = semesterOrders[req.semester]; pcourse.order = order; semesterOrders[req.semester] = order + 1; pcourse.semesterID = semesterMap[req.semester]; pcourse.courseID = req.courseID; pcourse.credits = req.course.courseHours; _planCourseProducer.Create(pcourse); //planCourses.Add(pcourse); //planCourses.SaveChanges(); } List <ElectiveCourse> elects = plan.degreeProgram.electiveCourses.ToList(); foreach (ElectiveCourse elect in elects) { PlanCourse pcourse = new PlanCourse(); pcourse.planID = plan.ID; int order = semesterOrders[elect.semester]; pcourse.order = order; semesterOrders[elect.semester] = order + 1; pcourse.semesterID = semesterMap[elect.semester]; pcourse.electiveListID = elect.electiveListID; pcourse.credits = elect.credits.ToString(); _planCourseProducer.Create(pcourse); //planCourses.Add(pcourse); //planCourses.SaveChanges(); } }