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); }