public async Task <IActionResult> Index(HttpReponseStatusCode statusCode = HttpReponseStatusCode.NoStatus) { CourseCategoryIndexViewModel mainModel = await GetCourses(); ViewBag.InfoMessage = new InfoMessage(_stringLocalizer, statusCode); return(View(mainModel)); }
/// <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)); }
/// <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)); }
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; } }
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)); }
/// <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)); }
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)); } }