예제 #1
0
        //
        // 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)));
        }
예제 #2
0
        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());
            }
        }
예제 #3
0
 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());
 }
예제 #4
0
        //
        // 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)));
        }
예제 #5
0
 public IQueryable <T> GetAll()
 {
     return(_producer.GetAll().AsQueryable());
 }
예제 #6
0
        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)));
        }
예제 #7
0
        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();
            }
        }