public PagedResponse <ProjectAbbreviatedDTO> FindPage(FindPageRequest <ProjectFilterOptions, ProjectOrderOptions> req)
        {
            var res   = new PagedResponse <ProjectAbbreviatedDTO>();
            var query = _projectRepository.GetBasicQuery();


            //foreach (var option in req.Filters)
            //{
            //    query.ApplyFilterOption(option.Option, option.Value);
            //}

            query.ApplySortingOptions(req.SortingOption)
            .Page(req.PageNum, req.PageSize);

            var projects = query.ToList();

            if (projects != null || projects.Count == 0)
            {
                return((PagedResponse <ProjectAbbreviatedDTO>)
                       res.ReturnErrorResponseWith("Projects not found for query"));
            }

            res.Success     = true;
            res.EntitiesDTO = _mapper.Map <ICollection <Project>, ICollection <ProjectAbbreviatedDTO> >(projects);
            res.PageNum     = req.PageNum;
            res.PageSize    = req.PageSize;
            res.MaxPage     = query.Count() / req.PageSize;
            return(res);
        }
示例#2
0
        public LoadResult <PageListDTO> FindUsing(FindPageRequest request, LoadOptions opts)
        {
            var q = Loader.Where(d => d.TenantId == request.TenantId);

            switch (request.TypeEnum)
            {
            case PageTypes.AnyRoutable:
                q = q.Where(d => d.HasRoute);
                break;

            case PageTypes.ParameterizedRoutable:
                q = q.Where(d => d.HasRoute && d.RouteParameters != null);
                break;

            case PageTypes.UnParameterizedRoutable:
                q = q.Where(d => d.HasRoute && d.RouteParameters == null);
                break;

            case PageTypes.Embedded:
                q = q.Where(d => d.CanEmbed);
                break;
            }
            return(QueryPageListDTO(q).LoadWith(opts.GetOptionsFor <PageListDTO>()));
        }
示例#3
0
 public LoadResult <PageListDTO> FindPages(FindPageRequest request, LoadOptions opts)
 {
     return(Unit.PageRepository.FindUsing(request, opts));
 }
示例#4
0
        public IActionResult FindPages([FromQuery] LoadOptions opts, [FromBody] FindPageRequest request)
        {
            LoadResult <PageListDTO> pages = _service.FindPages(request, opts);

            return(Respond(pages));
        }