public async Task <IActionResult> Index(HttpReponseStatusCode statusCode = HttpReponseStatusCode.NoStatus)
        {
            CourseCategoryIndexViewModel mainModel = await GetCourses();

            ViewBag.InfoMessage = new InfoMessage(_stringLocalizer, statusCode);
            return(View(mainModel));
        }
Ejemplo 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));
 }
Ejemplo n.º 3
0
        /// <summary>
        /// Renders index page with courses grouped by study program and semester.
        /// </summary>
        /// <returns></returns>
        public async Task <IActionResult> Index(HttpReponseStatusCode statusCode = HttpReponseStatusCode.NoStatus)
        {
            IndexViewModel indexModel = new IndexViewModel();
            HashSet <DetailedSemesterDTO> detailedSemesterDTOs = await _studyMaterialManagementService.GetSemestersWithAllInformation();

            HashSet <SemesterViewModel> semesters = _mapper.Map <HashSet <DetailedSemesterDTO>, HashSet <SemesterViewModel> >(detailedSemesterDTOs);

            indexModel.Semesters = semesters.ToList();
            indexModel.Semesters = indexModel.Semesters.OrderBy(x => x.Semester).ToList();
            ViewBag.InfoMessage  = new InfoMessage(_stringLocalizer, statusCode);
            return(View(indexModel));
        }
Ejemplo n.º 4
0
        public InfoMessage(IStringLocalizer <SharedResource> stringLocalizer, HttpReponseStatusCode code)
        {
            _stringLocalizer = stringLocalizer;
            switch (code)
            {
            case HttpReponseStatusCode.DatabaseError:
                Message  = _stringLocalizer[HttpReponseStatusCode.DatabaseError.ToString()];
                CssClass = "alert";
                break;

            case HttpReponseStatusCode.Exists:
                Message  = _stringLocalizer[HttpReponseStatusCode.Exists.ToString()];
                CssClass = "alert";
                break;

            case HttpReponseStatusCode.FileSystemError:
                Message  = _stringLocalizer[HttpReponseStatusCode.FileSystemError.ToString()];
                CssClass = "alert";
                break;

            case HttpReponseStatusCode.InvalidData:
                Message  = _stringLocalizer[HttpReponseStatusCode.InvalidData.ToString()];
                CssClass = "alert";
                break;

            case HttpReponseStatusCode.NotFound:
                Message  = _stringLocalizer[HttpReponseStatusCode.NotFound.ToString()];
                CssClass = "alert info";
                break;

            case HttpReponseStatusCode.NotSupported:
                Message  = _stringLocalizer[HttpReponseStatusCode.NotSupported.ToString()];
                CssClass = "alert";
                break;

            case HttpReponseStatusCode.Success:
                Message  = _stringLocalizer[HttpReponseStatusCode.Success.ToString()];
                CssClass = "alert success";
                break;

            case HttpReponseStatusCode.UnknownError:
                Message  = _stringLocalizer[HttpReponseStatusCode.UnknownError.ToString()];
                CssClass = "alert";
                break;

            case HttpReponseStatusCode.NoStatus:
                IsSet = false;
                break;
            }
        }
Ejemplo n.º 5
0
        public async Task <IActionResult> RedirectToChat(int pageNumber, HttpReponseStatusCode statusCode = HttpReponseStatusCode.NoStatus)
        {
            int totalNumberOfItems = await _chatMessageService.Count(x => !x.Deleted);

            PageInformation           pageInformation           = new PageInformation(pageNumber, totalNumberOfItems, WebConstants.MAX_NUMBER_OF_CHAT_MESSAGES_PER_PAGE);
            TechnicalSupportViewModel technicalSupportViewModel = new TechnicalSupportViewModel(pageInformation)
            {
                ChatMessages = _mapper.Map <List <ChatMessageDTO>, List <ChatMessageViewModel> >
                                   (await _chatMessageService.GetWithDetails(pageNumber * WebConstants.MAX_NUMBER_OF_CHAT_MESSAGES_PER_PAGE, WebConstants.MAX_NUMBER_OF_CHAT_MESSAGES_PER_PAGE))
            };

            ViewBag.InfoMessage = new InfoMessage(_stringLocalizer, statusCode);
            return(View("Index", technicalSupportViewModel));
        }
Ejemplo n.º 6
0
        /// <summary>
        /// Returns index page of specific course, with its study materials. By default, no sorting or filtering
        /// is included.
        /// </summary>
        /// <param name="courseId"></param>
        /// <returns></returns>
        public async Task <IActionResult> Course(int courseId, HttpReponseStatusCode statusCode = HttpReponseStatusCode.NoStatus)
        {
            int totalNumberOfItems = await _studyMaterialManagementService.Count(courseId);

            PageInformation pageInformation = new PageInformation(0, totalNumberOfItems, WebConstants.MAX_NUMBER_OF_STUDY_MATERIALS_PER_PAGE);
            List <StudyMaterialViewModel> detailedStudyMaterialViewModels = await GetDetailedStudyMaterials(courseId);

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

            int[] selectedCategories = (await _categoryService.GetAll <NoSorting>(x => x.CourseId == courseId && !x.Deleted))
                                       .Select(x => x.CategoryId)
                                       .ToArray();
            await SetViewInformation(courseId, statusCode, categories : selectedCategories);

            return(View(mainModel));
        }
        public async Task <IActionResult> Details(int courseId, HttpReponseStatusCode statusCode = HttpReponseStatusCode.NoStatus)
        {
            List <(Semester, StudyProgram)> semestersAndStudyPrograms = await _courseCategoryManagementService.GetCourseUsage(courseId);

            DetailsViewModel detailsViewModel = new DetailsViewModel()
            {
                DetailedCourseViewModel = new DetailedCourseViewModel()
                {
                    CourseId = courseId,
                    Name     = await _courseCategoryManagementService.GetName(courseId)
                },
                SemesterAndStudyPrograms = semestersAndStudyPrograms,
            };

            detailsViewModel.DetailedCourseViewModel.Categories = _mapper.Map <List <CategoryViewModel> >(await _categoryService.GetAll <NoSorting>(x => x.CourseId == courseId && !x.Deleted));
            ViewBag.InfoMessage = new InfoMessage(_stringLocalizer, statusCode);
            return(View(detailsViewModel));
        }
Ejemplo n.º 8
0
        public async Task <IActionResult> UploadFile(List <IFormFile> files, int category, int?courseId)
        {
            List <BasicFileInfo> basicFileInfos = new List <BasicFileInfo>();

            foreach (IFormFile file in files)
            {
                basicFileInfos.Add(_mapper.Map <BasicFileInfo>(file));
            }
            ResultMessage <bool> isSavedResult = await _studyMaterialManagementService.SaveStudyMaterials(category, this.GetUserId(), basicFileInfos);

            HttpReponseStatusCode statusCode = isSavedResult.Status.Map();

            if (courseId.HasValue)
            {
                var routeData = new { statusCode, courseId = courseId.Value };
                return(RedirectToAction("Course", routeData));
            }
            else
            {
                var routeData = new { statusCode };
                return(RedirectToAction("Index", routeData));
            }
        }