public CategoryCollectionViewModel GetCategorys(int page, int pageSize,
List<Filtering.FieldFilter> fieldFilters = null,
Filtering.SortFilter sortFilter = null)
{
IEnumerable<CategoryViewModel> categorys;
int total;
if (fieldFilters != null && sortFilter != null)
{
var newSortFilter = new SortFilter() { SortOrder = sortFilter.SortOrder };
var expression = filterFactory.GetFilterExpression(fieldFilters);
categorys = categoryRepository.Get(page, pageSize, expression, newSortFilter).Select(Convert);
total = categoryRepository.Count(expression);
}
else
{
categorys = categoryRepository.Get(page, pageSize, x => true).Select(Convert);
total = categoryRepository.Count(x => true);
}
var pageInfo = new PageInfo()
{
PageNumber = page,
PageSize = pageSize,
TotalItems = total
};
return new CategoryCollectionViewModel() { Categorys = categorys, PageInfo = pageInfo };
}