示例#1
0
        public async Task <PagedListDTO <ApplicationVM> > Handle(SearchAppQuery search, CancellationToken cancellationToken)
        {
            Func <IQueryable <Domain.Applications.Application>, IOrderedQueryable <Domain.Applications.Application> > orderBy;

            if (search.SortDescriptors != null && search.SortDescriptors.Any())
            {
                orderBy = ExpressionsBuilder.GetOrderBy <Domain.Applications.Application>(search.SortDescriptors[0].Member,
                                                                                          search.SortDescriptors[0].SortDirection == ListSortDirection.Ascending);
            }
            else
            {
                orderBy = contacts => contacts.OrderBy(a => a.Name);
            }

            var filterBy = ExpressionsBuilder.GetFilter <Domain.Applications.Application>(search);

            if (!search.PageSize.HasValue)
            {
                search.PageSize = int.MaxValue;
            }
            if (!search.Page.HasValue)
            {
                search.Page = 0;
            }
            var pagelist = _repository.Get(filterBy, search.Page.Value, search.PageSize.Value, orderBy);
            var result   = new PagedListDTO <ApplicationVM>()
            {
                Rows       = pagelist.Select(a => a.ToMap()).ToList(),
                PageIndex  = pagelist.PageIndex,
                PageSize   = pagelist.PageSize,
                TotalCount = pagelist.TotalCount,
                TotalPages = pagelist.TotalPages
            };

            return(result);
        }
        public async Task <PagedListDTO <ApplicationVM> > SearchApplication([FromBody] SearchAppQuery query)
        {
            var response = await Query(query);

            return(response);
        }