Esempio n. 1
0
        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
                    });
                }
            }
        }
Esempio n. 2
0
        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));
        }
Esempio n. 3
0
 public OperationResult <PaginationList <Course> > GetCourses(CoursesQueryParameters queryParameters, Guid authorId) => throw new NotImplementedException();