Пример #1
0
        public PagedList <Songbook> GetSongbookByCriteria(SongbookSearchCriteria criteria)
        {
            var songbookDtos = _songbookDao.GetByCriteria(criteria).ApplySort(criteria.OrderBy, _propertyMappingService.GetPropertyMapping <SongbookDto, Songbook>()).ToList();

            Hydrate(songbookDtos);

            var songbooks = songbookDtos.Select(Songbook.From);

            return(PagedList <Songbook> .Create(songbooks, criteria.PageNumber, criteria.PageSize));
        }
Пример #2
0
 public IList <SongbookDto> GetByCriteria(SongbookSearchCriteria criteria)
 {
     _logger.LogInformation("Getting 'Songbook' records with criteria {@criteria} (pageNumber: {@pageNumber}, pageSize: {@pageSize})", criteria, criteria.PageNumber, criteria.PageSize);
     return(DataSource.Songbooks.Where(sb => (criteria.Title != null && sb.Title.Contains(criteria.Title, StringComparison.OrdinalIgnoreCase)) ||
                                       (criteria.Publisher != null && sb.Publisher.Contains(criteria.Publisher, StringComparison.OrdinalIgnoreCase)) ||
                                       (criteria.ISBN10 != null && sb.ISBN10.Contains(criteria.ISBN10, StringComparison.OrdinalIgnoreCase)) ||
                                       (criteria.ISBN13 != null && sb.ISBN13.Contains(criteria.ISBN13, StringComparison.OrdinalIgnoreCase)) ||
                                       (criteria?.Ids.Any(id => id == sb.Id) ?? false) ||
                                       (criteria.Title == null && criteria.Publisher == null && criteria.ISBN10 == null && criteria.ISBN13 == null && !criteria.Ids.Any()))
            .Skip(criteria.PageSize * (criteria.PageNumber - 1))
            .Take(criteria.PageSize)
            .ToList());
 }