public async Task <LearnerCoursesListResult> GetCoursesList(GetCoursesListQuery coursesQuery, string learnerId, string learningPathId, string publishedStatus, CancellationToken token) { IQueryable <Course> query; if (IsOrderedByLastAccess(coursesQuery.OrderBy)) { query = OrderByLastAccess(learnerId, learningPathId, publishedStatus); } else { query = OrderByLearningPathOrder(learningPathId, publishedStatus); } var totalItems = await query.CountAsync(token); query = query.ApplyPaging(coursesQuery); var items = await query .Select(CourseMapping()) .ToListAsync(token); var progress = await GetLearnerCourseProgress(learnerId, token, items); return(new LearnerCoursesListResult(totalItems, items, progress)); }
public void GetCoursesList_OrderByNotDefined_SetCreationDateDescOrder() { var query = new GetCoursesListQuery(); _sut.GetCoursesList(query, default).Wait(); Assert.That(query.OrderBy, Is.EqualTo(OrderByCreationDateDesc.Instance.Value)); }
public void GetCoursesList_OrderByNotDefined_SetLastAccessedOrder() { var query = new GetCoursesListQuery(); _sut.GetCoursesList(query, default).Wait(); Assert.That(query.OrderBy, Is.EqualTo(OrderByLastAccessed.Instance.Value)); }
public async Task <CoursesListResult> GetCoursesList(GetCoursesListQuery query, CancellationToken token) { if (query.OrderBy == 0) { query.OrderBy = OrderByCreationDateDesc.Instance.Value; } return(await _repo.GetCoursesList(query, _currentUserAccessor.OrganizationId, token)); }
public async Task <LearnerCoursesListResult> GetCoursesList(GetCoursesListQuery coursesQuery, CancellationToken token) { if (coursesQuery.OrderBy == 0) { coursesQuery.OrderBy = OrderByLastAccessed.Instance.Value; } return(await _repo.GetCoursesList(coursesQuery, _currentUserAccessor.UserId, _currentUserAccessor.LearningPathId, PublishedStatus.Instance.Name, token)); }
public void GetCoursesList_WhenCalled_ReturnCorrectCoursesList() { var query = new GetCoursesListQuery(); var coursesList = new CoursesListResult(1, new List <CoursesListItemDto>()); _repo.Setup(x => x.GetCoursesList(query, "organizationId", default)) .ReturnsAsync(coursesList); var result = _sut.GetCoursesList(query, default).Result; Assert.That(result, Is.EqualTo(coursesList)); }
public void GetCoursesList_WhenCalled_ReturnCorrectCoursesList() { var query = new GetCoursesListQuery(); var coursesList = new LearnerCoursesListResult(1, new List <LearnerCourseDto>(), new List <LearnerCourseProgressDto>()); _repo.Setup(x => x.GetCoursesList(query, "learnerId", "learningPathId", _publishedStatus, default)) .ReturnsAsync(coursesList); var result = _sut.GetCoursesList(query, default).Result; Assert.That(result, Is.EqualTo(coursesList)); }
private static IQueryable <Course> ApplyOrdering(IQueryable <Course> query, GetCoursesListQuery coursesQuery) { var isSortDescending = Enumeration.FromValue <CourseOrderBy>(coursesQuery.OrderBy).IsSortDescending; var columnsMap = new Dictionary <int, Expression <Func <Course, object> > > { [OrderByAuthor.Instance.Value] = c => c.Creator.UserName, [OrderByAuthorDesc.Instance.Value] = c => c.Creator.UserName, [OrderByCreationDate.Instance.Value] = c => c.CreationDate, [OrderByCreationDateDesc.Instance.Value] = c => c.CreationDate }; query = query.ApplyOrdering(coursesQuery, columnsMap, isSortDescending); return(query); }
public async Task <CoursesListResult> GetCoursesList(GetCoursesListQuery coursesQuery, string organizationId, CancellationToken token) { var query = _context.Courses.Where(c => c.Creator.OrganizationId == organizationId); query = ApplyAuthorFiltering(query, coursesQuery.AuthorId); query = ApplyLearningPathFiltering(query, coursesQuery.LearningPathId); query = ApplyStatusFiltering(query, coursesQuery.StatusId); query = ApplyOrdering(query, coursesQuery); var totalItems = await query.CountAsync(token); query = query.ApplyPaging(coursesQuery); var items = await query.Select(CourseMapping()).ToListAsync(token); return(new CoursesListResult(totalItems, items)); }
public void SetUp() { _service = new Mock <IGetCoursesListService>(); _query = new GetCoursesListQuery(); _sut = new GetCoursesListQueryHandler(_service.Object); }
public async Task <ActionResult <CoursesListVm> > GetAll([FromQuery] GetCoursesListQuery query) { return(Ok(await Mediator.Send(query))); }
public async Task <List <CourseVM> > Handle(GetCoursesListQuery request, CancellationToken cancellationToken) { var courses = await repo.GetAllAsync(); return(mapper.Map <List <CourseVM> >(courses)); }
public async Task <ActionResult <LearnerCoursesListViewModel> > GetAll([FromQuery] GetCoursesListQuery query, CancellationToken token) { return(Ok(await Mediator.Send(query, token))); }