public async Task <OperationResult <PaginationList <Course> > > GetCourses(CoursesQueryParameters queryParameters) { bool hasOrderBy = queryParameters.OrderBy != null; bool hasSearchQuery = queryParameters.SearchQuery != null; using (CourseLibraryContext context = new CourseLibraryContext(options)) { try { var collection = context.Courses as IQueryable <Course>; if (hasSearchQuery) { collection = context.Courses.Where(c => c.Title.Contains(queryParameters.SearchQuery)); } if (hasOrderBy) { string orderString = filterationService.GetFiltrationString <CourseDto, Course>(queryParameters.OrderBy); collection = context.Courses.OrderBy(orderString); } var courses = PaginationList <Course> .CreatePagination(collection, queryParameters.PageSize, queryParameters.PageNumber); return(new SuccessOperationResult <PaginationList <Course> > { Result = courses, Code = ConstOperationCodes.SUCCESS_OPERATION }); } catch (Exception e) { logger.Error($"error in courses library service get courses : {e.Message}"); return(new FailedOperationResult <PaginationList <Course> > { Code = ConstOperationCodes.FAILED_OPERATION }); } } }
public async Task <ActionResult <OperationResult <IEnumerable <CourseDto> > > > GetCourses([FromQuery] CoursesQueryParameters queryParameters) { OperationResult <PaginationList <Course> > result = await _courseLibraryService.GetCourses(queryParameters); if (result.Success) { var successOperation = result as SuccessOperationResult <PaginationList <Course> >; var coursesDto = _mapper.Map <IEnumerable <CourseDto> >(successOperation.Result.ListData); var operationReturn = new SuccessOperationResult <IEnumerable <CourseDto> > { Result = coursesDto, Code = successOperation.Code, }; return(Ok(operationReturn)); } var failedOperation = result as FailedOperationResult <PaginationList <Course> >; return(Ok(failedOperation)); }
public OperationResult <PaginationList <Course> > GetCourses(CoursesQueryParameters queryParameters, Guid authorId) => throw new NotImplementedException();