Esempio n. 1
0
        private async Task <List <StudyMaterialViewModel> > GetDetailedStudyMaterials(int courseId, int pageNumber
                                                                                      = 0, StudyMaterialSortingCriteria sortCriteria = StudyMaterialSortingCriteria.NoSorting, string searchFor = null, int[] categories = null)
        {
            int itemsCount = WebConstants.MAX_NUMBER_OF_STUDY_MATERIALS_PER_PAGE;
            int offset     = pageNumber * WebConstants.MAX_NUMBER_OF_STUDY_MATERIALS_PER_PAGE;
            List <DetailedStudyMaterialDTO> studyMaterials = new List <DetailedStudyMaterialDTO>();

            switch (sortCriteria)
            {
            case StudyMaterialSortingCriteria.NoSorting: studyMaterials = await _studyMaterialManagementService.GetDetailedStudyMaterials <NoSorting>(courseId, offset, itemsCount, searchFor, categories); break;

            case StudyMaterialSortingCriteria.RatingAsc: studyMaterials = await _studyMaterialManagementService.GetDetailedStudyMaterials(courseId, offset, itemsCount, searchFor, categories, x => x.TotalRating); break;

            case StudyMaterialSortingCriteria.RatingDesc: studyMaterials = await _studyMaterialManagementService.GetDetailedStudyMaterials(courseId, offset, itemsCount, searchFor, categories, x => x.TotalRating, false); break;

            case StudyMaterialSortingCriteria.UploadDateAsc: studyMaterials = await _studyMaterialManagementService.GetDetailedStudyMaterials(courseId, offset, itemsCount, searchFor, categories, x => x.UploadDate); break;

            case StudyMaterialSortingCriteria.UploadDateDesc: studyMaterials = await _studyMaterialManagementService.GetDetailedStudyMaterials(courseId, offset, itemsCount, searchFor, categories, x => x.UploadDate, false); break;
            }
            studyMaterials = await _studyMaterialManagementService.AppendRating(this.GetUserId(), studyMaterials);

            return(_mapper.Map <List <DetailedStudyMaterialDTO>, List <StudyMaterialViewModel> >(studyMaterials));
        }
Esempio n. 2
0
 /// <summary>
 /// Sets predefined values for a page.
 /// </summary>
 /// <param name="courseId">Unique identifier of a course</param>
 /// <param name="sortCriteria">Choosen sort criteria</param>
 /// <param name="categories">List of selected categories</param>
 /// <returns></returns>
 private async Task SetViewInformation(int courseId, HttpReponseStatusCode statusCode, string searchFor = null, StudyMaterialSortingCriteria sortCriteria = StudyMaterialSortingCriteria.NoSorting, int[] categories = null)
 {
     ViewBag.SortingCriteria    = sortCriteria;
     ViewBag.SelectedCategories = categories;
     ViewBag.SearchFor          = searchFor;
     ViewBag.InfoMessage        = new InfoMessage(_stringLocalizer, statusCode);
     ViewBag.AllCategories      = _mapper.Map <List <CategoryDTO>, List <CategoryViewModel> >(await _categoryService.GetAll(x => x.CourseId == courseId && !x.Deleted, x => x.Name));
 }
Esempio n. 3
0
        public async Task <ActionResult> SearchSortFilter(int courseId, int pageNumber, StudyMaterialSortingCriteria sortCriteria, string searchFor, int[] categories)
        {
            int totalNumberOfItems = await _studyMaterialManagementService.Count(courseId, searchFor, categories);

            PageInformation pageinformation = new PageInformation(pageNumber, totalNumberOfItems, WebConstants.MAX_NUMBER_OF_STUDY_MATERIALS_PER_PAGE);
            List <StudyMaterialViewModel> detailedStudyMaterialViewModels = await GetDetailedStudyMaterials(courseId, pageinformation.PageNumber, sortCriteria, searchFor, categories);

            CourseStudyMaterialsViewModel mainModel = new CourseStudyMaterialsViewModel(courseId, detailedStudyMaterialViewModels, pageinformation);

            await SetViewInformation(courseId, HttpReponseStatusCode.NoStatus, searchFor, sortCriteria, categories);

            return(View("Course", mainModel));
        }