public IActionResult Index( string?searchString = null, string?sortBy = null, string sortDirection = BaseSearchablePageViewModel.Ascending, string?filterBy = null, string?filterValue = null, int page = 1 ) { sortBy ??= DefaultSortByOptions.Name.PropertyName; filterBy = FilteringHelper.GetFilterBy( filterBy, filterValue, Request, CourseFilterCookieName, CourseStatusFilterOptions.IsActive.FilterValue ); var centreId = User.GetCentreId(); var categoryId = User.GetAdminCourseCategoryFilter(); var centreCourses = courseService.GetCentreSpecificCourseStatistics(centreId, categoryId); var categories = courseCategoriesDataService.GetCategoriesForCentreAndCentrallyManagedCourses(centreId) .Select(c => c.CategoryName); var topics = courseTopicsDataService.GetCourseTopicsAvailableAtCentre(centreId).Select(c => c.CourseTopic); var model = new CourseSetupViewModel( centreCourses, categories, topics, searchString, sortBy, sortDirection, filterBy, page ); Response.UpdateOrDeleteFilterCookie(CourseFilterCookieName, filterBy); return(View(model)); }
public void GetActiveTopicsAvailableAtCentre_calls_data_service() { // Given const int centreId = 1; var topic = new Topic { CourseTopicID = 1, CourseTopic = "Topic", Active = true }; var topics = new List <Topic> { topic }; A.CallTo(() => courseTopicsDataService.GetCourseTopicsAvailableAtCentre(1)).Returns(topics); // When var result = courseTopicsService.GetActiveTopicsAvailableAtCentre(centreId); // Then using (new AssertionScope()) { A.CallTo(() => courseTopicsDataService.GetCourseTopicsAvailableAtCentre(centreId)) .MustHaveHappenedOnceExactly(); result.Should().BeEquivalentTo(topics); } }
public void GetTopicsForCentreAndCentrallyManagedCourses_returns_expected_topics() { // Given const string topicName = "Topic"; A.CallTo(() => courseTopicsDataService.GetCourseTopicsAvailableAtCentre(CentreId)) .Returns(new List <Topic> { new Topic { CourseTopicID = 1, CourseTopic = topicName } }); // When var result = courseService.GetTopicsForCentreAndCentrallyManagedCourses(CentreId); // Then result.Single().Should().Be(topicName); }
public void Setup() { courseCategoryDataService = A.Fake <ICourseCategoriesDataService>(); courseTopicsDataService = A.Fake <ICourseTopicsDataService>(); courseService = A.Fake <ICourseService>(); A.CallTo(() => courseService.GetCentreSpecificCourseStatistics(A <int> ._, A <int> ._)).Returns(courses); A.CallTo(() => courseCategoryDataService.GetCategoriesForCentreAndCentrallyManagedCourses(A <int> ._)) .Returns(categories); A.CallTo(() => courseTopicsDataService.GetCourseTopicsAvailableAtCentre(A <int> ._)).Returns(topics); httpRequest = A.Fake <HttpRequest>(); httpResponse = A.Fake <HttpResponse>(); const string cookieName = "CourseFilter"; const string cookieValue = "Status|Active|false"; controller = new CourseSetupController(courseService, courseCategoryDataService, courseTopicsDataService) .WithMockHttpContext(httpRequest, cookieName, cookieValue, httpResponse) .WithMockUser(true) .WithMockTempData(); }
public IEnumerable <Topic> GetActiveTopicsAvailableAtCentre(int centreId) { return(courseTopicsDataService.GetCourseTopicsAvailableAtCentre(centreId) .Where(c => c.Active)); }