示例#1
0
        public ViewResult SelectionByTeacher(string sortingParam, string sortOrder, int page = 1)
        {
            //return to the view sorting param to informate about current possition
            ViewBag.sortingParam = sortingParam;

            //initializing view model
            CourseListViewModel model = CourseListInitializer(sortOrder, sortingParam, page);

            model.Courses = SortingCourses(GetCourses(sortingParam), sortOrder).ToList();
            model.PagingInfo.TotalItems = model.Courses.Count();

            //select courses that fit the paging condition
            model.Courses = model.Courses.Skip((page - 1) * PageSize)
                            .Take(PageSize).ToList();

            //opportunity for learner to register on course
            if (User.IsInRole("user"))
            {
                var learnerName = UO.NickName.GetAll()
                                  .Where(m => m.UserName == HttpContext.User.Identity.Name)
                                  .FirstOrDefault() ?? throw new NotConfirmedNameException(HttpContext.User.Identity.Name);
                model.StudentRefisterPosibility = StudentRefisterPosibility(model.Courses);
            }

            return(View("TeacherView", model));
        }
        public async Task <IActionResult> Show(string providerCode)
        {
            if (frontendUrlService.ShouldRedirectOrganisationShow())
            {
                return(frontendUrlService.RedirectToFrontend("/organisations/" + providerCode));
            }
            var ucasProviderEnrichmentGetModel = await _manageApi.GetProviderEnrichment(providerCode);

            var providerCourses = await _manageApi.GetCoursesOfProvider(providerCode);

            var summary = await _manageApi.GetProviderSummary(providerCode);

            var multipleOrganisations = (await _manageApi.GetProviderSummaries()).Count() > 1;

            var status = ucasProviderEnrichmentGetModel?.Status.ToString() ?? "Empty";

            var model = new CourseListViewModel
            {
                ProviderName          = summary.ProviderName,
                ProviderCode          = summary.ProviderCode,
                MultipleOrganisations = multipleOrganisations,
            };

            return(View(model));
        }
        public IActionResult Index()
        {
            if (!Middleware.CheckUserPermission(PermissionType.Admin, HttpContext))
            {
                return(RedirectToAction("Login", "User"));
            }

            List <Course> courses = CourseContainer.GetAll();

            // FIXME: Kan dit beter ?
            CourseListViewModel slvm = new CourseListViewModel();

            slvm.Courses = new List <CourseModel>();

            foreach (Course course in courses)
            {
                CourseModel temp = new CourseModel();

                temp.Id   = course.Id;
                temp.Name = course.Name;

                slvm.Courses.Add(temp);
            }

            return(View(slvm));
        }
示例#4
0
        public PartialViewResult GetListofCourse()
        {
            var courseListViewModel = new CourseListViewModel();
            var courseList          = courseListViewModel.CopyModelToViewModel(_courseService.GetAllCourse());

            return(PartialView("_CourseList", courseList));
        }
        public ActionResult Index(string order = "asc", string teacherSortId = "all", int subjectSortId = 0)
        {
            var coursesDto = _courseService.GetCourses(order, teacherSortId, subjectSortId);

            if (!User.Identity.IsAuthenticated)
            {
                coursesDto = _courseService.GetNotStartedCourses(coursesDto);
            }
            if (User.IsInRole(RoleDistributer.GetStudentRole()))
            {
                coursesDto = _courseService.CheckSubscribe(User.Identity.GetUserId(), coursesDto);
                coursesDto = _courseService.GetNotStartedCourses(coursesDto);
            }
            var coursesViewModel = _mapper.Map <List <CourseViewModel> >(coursesDto);
            SortCoursesPanelViewModel sortCoursesPanelViewModel = new SortCoursesPanelViewModel()
            {
                OrderParams       = _courseService.GetParametersAsListForFilter().ToList(),
                SubjectSortParams = _subjectService.GetSubjectsAsListForFilter().ToList(),
                TeacherSortParams = _teacherService.GetTeachersAsListForFilter().ToList()
            };
            var coursesList = new CourseListViewModel()
            {
                Course         = new CourseViewModel(),
                Courses        = coursesViewModel,
                PanelViewModel = sortCoursesPanelViewModel
            };

            if (User.IsInRole(RoleDistributer.GetAdminRole()))
            {
                return(View("AdminIndex", coursesList));
            }
            return(View("StudentIndex", coursesList));
        }
示例#6
0
 public AddCourseView(CourseService courseService, CourseListViewModel courseListViewModel) : this()
 {
     _courseService       = courseService;
     _courseListViewModel = courseListViewModel;
     _courseToAdd         = new AddCourseViewModel(courseService);
     DataContext          = _courseToAdd;
 }
示例#7
0
        public ViewResult SelectionByTopic(string sortingParam, string sortOrder, int page = 1)
        {
            ViewBag.sortingParam = sortingParam;
            //Selection of courses according sorting param
            var courses = UO.Courses.GetAll()
                          .Where(p => sortingParam == null || p.Topic.TopicName == sortingParam);

            //initializing view model
            CourseListViewModel model = CourseListInitializer(sortOrder, sortingParam, page);

            model.PagingInfo.TotalItems = courses.Count();

            //select courses that fit the paging condition
            model.Courses = SortingCourses(courses, sortOrder)
                            .Skip((page - 1) * PageSize)
                            .Take(PageSize).ToList();

            //opportunity for learner to register on course
            if (User.IsInRole("user"))
            {
                //in case if user don`t finish registration
                //redirect him to view that gives that information
                var learnerName = UO.NickName.GetAll()
                                  .Where(m => m.UserName == HttpContext.User.Identity.Name)
                                  .FirstOrDefault() ?? throw new NotConfirmedNameException(HttpContext.User.Identity.Name);
                model.StudentRefisterPosibility = StudentRefisterPosibility(model.Courses);
            }
            return(View("TopicView", model));
        }
        public static MvcHtmlString CourseNav(this HtmlHelper html, CourseListViewModel courseListViewModel)
        {
            StringBuilder builder = new StringBuilder();

            builder.Append(@"<ul class=""nav nav-pills nav-stacked"">");

            foreach (var course in courseListViewModel.Courses.OrderBy(c => c.Title).GroupBy(c => c.Id))
            {
                TagBuilder li = new TagBuilder("li");
                li.MergeAttribute("role", "presentation");

                TagBuilder a = new TagBuilder("a");
                a.MergeAttribute("href", "/registration/course/" + course.First().Id);
                a.InnerHtml = course.First().Title;

                if (courseListViewModel.CurrentCourseId == course.First().Id)
                {
                    li.AddCssClass("active");
                }

                li.InnerHtml = a.ToString();
                builder.Append(li.ToString());
            }

            builder.Append("</ul>");

            return(MvcHtmlString.Create(builder.ToString()));
        }
示例#9
0
 public CourseList(MainWindowViewModel mainWindowViewModel)
 {
     _mainWindowViewModel = mainWindowViewModel;
     _viewModel           = new CourseListViewModel();
     DataContext          = _viewModel;
     InitializeComponent();
 }
示例#10
0
        public ActionResult Index(CourseListViewModel clvm)
        {
            clvm.StartRange = DateTime.Today.ToString("yyyy/MM/dd");
            clvm.EndRange   = (DateTime.Today + new TimeSpan(14, 0, 0, 0)).ToString("yyyy/MM/dd");
            clvm.SortParam  = "StartDate";

            return(View(clvm));
        }
示例#11
0
        public async Task <ActionResult> Index()
        {
            CourseListViewModel viewModel = new CourseListViewModel(this.Request);

            await viewModel.InitializeAsync();

            return(View(viewModel));
        }
示例#12
0
        //
        // GET: /Course/
        public ActionResult Index()
        {
            var courseListViewModel = new CourseListViewModel();

            courseListViewModel.FormTitle  = "Course List";
            courseListViewModel.CourseList = courseListViewModel.CopyModelToViewModel(_courseService.GetAllCourse());
            return(View(courseListViewModel));
        }
示例#13
0
        // GET: Course
        public ActionResult Index()
        {
            var model = new CourseListViewModel
            {
                Courses = _courseService.GetAll()
            };

            return(View(model));
        }
示例#14
0
        public ActionResult List()
        {
            CourseListViewModel viewModel = new CourseListViewModel();

            List <CourseRating> courseRatings = CourseRatingRepositorySQL.Instance.listByCategoryAndSemesters(
                Convert.ToInt32(GlobalVariables.CurrentCategory),
                (GlobalVariables.CurrentSemester == "-1" ? StaticData.semesters.Take(3).Select(y => y.semester).ToArray() : new[] { GlobalVariables.CurrentSemester }))
                                                .Where(p => p.classSize >= p.responses)
                                                .ToList();

            List <int> courseIDs = courseRatings.Select(y => y.courseID).Distinct().ToList();

            var    courseList       = StaticData.courseList.Where(p => courseIDs.Contains(p.courseID));
            int    totalResponses   = 0;
            int    totalStudents    = 0;
            int    totalInstructors = 0;
            double averageRating    = 0.0;

            List <CourseDomain> courses = courseList.Select(p =>
            {
                var courseRatingsList = courseRatings.Where(x => x.courseID == p.courseID);
                var responses         = courseRatingsList.Select(y => y.responses).Sum(z => z);
                var students          = courseRatingsList.Select(y => y.classSize).Sum(z => z);
                var instructors       = courseRatingsList.Select(y => y.instructorID).Distinct().Count();

                totalResponses   += responses;
                totalStudents    += students;
                totalInstructors += instructors;
                averageRating    += courseRatingsList
                                    .Sum(z => z.responses * z.ratings[0].averageRating);

                return(new CourseDomain
                {
                    code = p.code,
                    title = p.title,
                    departmentID = p.departmentID,
                    departmentName = StaticData.departmentList.Where(u => u.departmentID == p.departmentID).FirstOrDefault().name,
                    rating = courseRatingsList
                             .Sum(z => ((double)z.responses / (double)responses) * z.ratings[0].averageRating).ToString("#.##"),
                    responses = responses.ToString(),
                    instructors = instructors.ToString(),
                    students = students.ToString(),
                    responseRate = ((double)responses / (double)students).ToString("p1")
                });
            }).Where(t => Convert.ToInt32(t.students) > 0).ToList();

            viewModel.courses             = courses;
            viewModel.totalResponses      = totalResponses.ToString("N0");
            viewModel.totalStudents       = totalStudents.ToString("N0");
            viewModel.totalInstructors    = totalInstructors.ToString("N0");
            viewModel.averageResponseRate = ((double)totalResponses / (double)totalStudents).ToString("p1");
            viewModel.averageRating       = (averageRating / (double)totalResponses).ToString("#.##");
            viewModel.currentSemester     = (GlobalVariables.CurrentSemester == "-1" ? "the past three semesters" : GlobalVariables.CurrentSemester.Split(' ')[1] + " " + GlobalVariables.CurrentSemester.Split(' ')[0]);

            return(View(viewModel));
        }
示例#15
0
        public ActionResult ListByTheme(int themeId)
        {
            var courseList = new CourseListViewModel();
            var theme      = _themeService.GetThemeById(themeId);
            var courses    = _courseService.GetCoursesByTheme(themeId);

            courseList.Courses = courses.Select(x => x.Map()).ToList();
            ViewBag.Title      = "Courses of " + theme.Name;
            return(View("List", courseList));
        }
示例#16
0
        public async Task <IActionResult> Index(CourseListInputModel input)
        {
            ViewData["Title"] = "I Corsi";
            ListViewModel <CourseViewModel> courses = await courseService.GetCoursesAsync(input.Search, input.Page, input.OrderBy, input.Ascending, input.Limit, input.Offset);

            CourseListViewModel viewModel = new CourseListViewModel();

            viewModel.Courses = courses;
            viewModel.Input   = input;
            return(View(viewModel));
        }
示例#17
0
        public async Task <IActionResult> Index(CoursesListInputModel inputModel)
        {
            ListViewModel <CoursesViewModel> corsi = await courseService.GetCoursesAsync(inputModel);

            CourseListViewModel courseListViewModel = new CourseListViewModel
            {
                Course = corsi,
                Input  = inputModel
            };

            ViewData["Title"] = "Catalogo corsi";
            return(View(courseListViewModel));
        }
示例#18
0
        public async Task <IActionResult> List(Guid departmentUID)
        {
            ViewBagMethod();
            var departmentModel = _departmentsService.GetByUID(departmentUID);

            CourseListViewModel viewModel = new CourseListViewModel()
            {
                Department = departmentModel,
                Courses    = _coursesService.GetAll(departmentUID, "DepartmentU")
            };

            return(View(viewModel));
        }
示例#19
0
        public async Task <IActionResult> Index(CourseListInputModel input)
        {
            ViewData["Title"] = "Catalogo dei corsi";
            ListViewModel <CourseViewModel> courses = await courseService.GetCoursesAsync(input);

            CourseListViewModel viewModel = new CourseListViewModel
            {
                Courses = courses,
                Input   = input
            };

            return(View(viewModel));
        }
示例#20
0
        public async Task GetCourseListAsync(CourseListViewModel model)
        {
            var courses = await _Service.GetCourseList();

            foreach (var course in courses.Courses)
            {
                course.NavigationCommand = new Command <Guid>(async(id) =>
                {
                    await Shell.Current.GoToAsync($"courseDetail?id={id}");
                });
            }
            model.Courses = courses.Courses;
            _MasterRepo.DataSource.CourseList = courses.Courses;
        } //#Bonsai Snippets - MethodDefinitions
        public ActionResult AllCourses()
        {
            var allCourses = this.courseService
                             .GetAll()
                             .OrderBy(x => x.StartsOn)
                             .ProjectTo <CourseViewModel>()
                             .ToList();

            var viewModel = new CourseListViewModel()
            {
                Courses = allCourses
            };

            return(View(viewModel));
        }
示例#22
0
        public ActionResult <CourseListViewModel> GetAllCourseList(CourseListViewModel courseListViewModel)
        {
            CourseListViewModel courseList = new CourseListViewModel();

            try
            {
                courseList = _courseManagerService.GetAllCourseList(courseListViewModel);
            }
            catch (Exception es)
            {
                courseList._message = es.Message;
                courseList._failure = true;
            }
            return(courseList);
        }
示例#23
0
        public async Task <IActionResult> Index(CourseListInputModel input) //Courses
        {
            ViewData["Title"] = "Catalogo dei corsi";                       //titolo statico

            //invochiamo il suo metodo GetCourses per ottenere l'elenco dei corsi dal CourseViewModel
            ListViewModel <CourseViewModel> courses = await courseService.GetCoursesAsync(input);

            CourseListViewModel viewModel = new CourseListViewModel
            {
                Courses = courses,                      //valorizziamo i dati come ci sono stati restituiti dal servizio applicativo (contiene i risultati)
                Input   = input                         //l'input ricevuto dall'utente arriverà anche alla view
            };

            return(View(viewModel)); //va a cercare una view chiamata Index.cshtml in courses e gli passa i dati ottenuti tramite metodo
        }
示例#24
0
 public CourseListPage(INavigation _navi)
 {
     Title = Properties.Resources.PageNameCoursesList;
     InitializeComponent();
     NavigationPage.SetHasNavigationBar(this, false);
     BindingContext        = new CourseListViewModel(_navi, this);
     Courses.ItemSelected += (sender, e) => {
         ((ListView)sender).SelectedItem = null;
     };
     MessagingCenter.Subscribe <CourseListViewModel, string>(this, Properties.Resources.MsgNetworkError,
                                                             async(sender, message) =>
     {
         await this.DisplayAlert("Problem z siecią", message, "OK");
     });
 }
示例#25
0
        public ActionResult List(string email)
        {
            var courseList  = new CourseListViewModel();
            var vb          = ViewBag;
            var courseListb = _courseService.GetAllCourses();
            var clist       = courseListb.Select(x => x.Map()).ToList();

            courseList.Courses = clist;

            ViewBag.Title = "List";
            if (email != null)
            {
                courseList.User = _userService.GetStudentByEmail(email).Map();
            }
            return(View(courseList));
        }
示例#26
0
        // GET: Course
        public ActionResult AllCourses()
        {
            var userId = User.Identity.GetUserId();

            var courses = Courses.GetCourses(Guid.Parse(userId));

            var courseViewModels = new List <CourseViewModel>();

            foreach (var course in courses)
            {
                courseViewModels.Add(new CourseViewModel((CourseDomainModel)course));
            }

            var model = new CourseListViewModel(courseViewModels);

            return(View(model));
        }
示例#27
0
        /// GET: Available course list
        ///
        public ActionResult Index()
        {
            CourseListViewModel courseListVM = new CourseListViewModel();

            List <Course> courses = courseBL.GetCourses();

            List <CourseViewModel> courseVMs = new List <CourseViewModel>();

            foreach (Course course in courses)
            {
                CourseViewModel courseVM = new CourseViewModel(course);
                courseVMs.Add(courseVM);
            }

            courseListVM.Courses = courseVMs;
            return(View("Index", courseListVM));
        }
示例#28
0
        public ActionResult ListByTeacher(string userEmail)
        {
            var courseList = new CourseListViewModel();
            var courses    = _courseService.GetCoursesByTeacher(userEmail);

            courseList.Courses = courses.Select(x => x.Map()).ToList();
            if (User.IsInRole("teacher"))
            {
                ViewBag.Title = "Your courses";
            }
            else
            {
                ViewBag.Title = userEmail + "`s courses";
            }

            return(View("List", courseList));
        }
示例#29
0
        // GET: Course

        public ViewResult List(int page = 1)
        {
            CourseListViewModel model = new CourseListViewModel
            {
                Courses = repository.Courses
                          .OrderBy(p => p.Course_id)
                          .Skip((page - 1) * PageSize)
                          .Take(PageSize),
                PagingInfo = new PagingInfo
                {
                    CurrentPage  = page,
                    ItemsPerPage = PageSize,
                    TotalItems   = repository.Courses.Count()
                }
            };

            return(View(model));
        }
示例#30
0
        public async Task <ActionResult> Index(GetAllCoursesInput input)
        {
            //异步获取所有的course
            var courses = (await _courseAppService.GetAll(new GetAllCoursesInput()
            {
                Status = input.Status, KeyWord = input.KeyWord
            })).Items;

            var model = new CourseListViewModel()
            {
                Courses = courses,
                //源代码讲解到此的时候没有添加这一句,导致一刷新就显示全部
                SelectStatusCode = input.Status,
                KeyWord          = input.KeyWord,
            };

            return(View(model));
        }