/// <summary> /// Получение комментариев на заданной странице с заданными фильтрами. /// </summary> /// <param name="page">Номер страницы</param> /// <param name="pageSize">Размер страницы</param> /// <param name="fieldFilters">Список фильтров</param> /// <param name="sortFilter">Порядок сортировки</param> /// <returns></returns> public CommentCollectionViewModel GetComments(int page, int pageSize, List<Filtering.FieldFilter> fieldFilter = null, Filtering.SortFilter sortFilter = null) { IEnumerable<CommentViewModel> comments; int total; if (fieldFilter != null && sortFilter != null) { var newSortFilter = new SortFilter() { SortOrder = sortFilter.SortOrder }; var expression = filterFactory.GetFilterExpression(fieldFilter); comments = commentsRepository.Get(page, pageSize, expression, newSortFilter).Select(Convert); total = commentsRepository.Count(expression); } else { comments = commentsRepository.Get(page, pageSize, x => true).Select(Convert); total = commentsRepository.Count(x => true); } var pageInfo = new PageInfo() { PageNumber = page, PageSize = pageSize, TotalItems = total }; return new CommentCollectionViewModel() { Comments = comments, PageInfo = pageInfo }; }
/// <summary> /// Получение партнеров на заданной странице с заданными фильтрами. /// </summary> /// <param name="page">Номер страницы</param> /// <param name="pageSize">Размер страницы</param> /// <param name="fieldFilters">Список фильтров</param> /// <param name="sortFilter">Порядок сортировки</param> /// <returns></returns> public PartnerCollectionViewModel GetPartners(int page, int pageSize, List<Filtering.FieldFilter> fieldFilters = null, Filtering.SortFilter sortFilter = null) { IEnumerable<PartnerViewModel> partners; int total; if (fieldFilters != null && sortFilter != null) { var newSortFilter = new SortFilter() { SortOrder = sortFilter.SortOrder }; var expression = filterFactory.GetFilterExpression(fieldFilters); partners = partnerRepository.Get(page, pageSize, expression, newSortFilter).Select(ConvertFromPartnerToPartnerViewModel); total = partnerRepository.Count(expression); } else { partners = partnerRepository.Get(page, pageSize, x => true).Select(ConvertFromPartnerToPartnerViewModel); total = partnerRepository.Count(x => true); } var pageInfo = new PageInfo() { PageNumber = page, PageSize = pageSize, TotalItems = total }; return new PartnerCollectionViewModel() { Partners = partners, PageInfo = pageInfo }; }