public IList <SongDto> GetByCriteria(SongSearchCriteria criteria) { if (!criteria.IsValid) { _logger.LogWarning("Unable to retrieve 'Song' records by criteria. It is invalid. ({@criteria})", criteria); throw new InvalidSearchCriteriaException(criteria); } _logger.LogInformation("Getting 'Song' records with criteria {@criteria}", criteria); return(DataSource.Songs.Where(sb => sb.SongbookId == criteria.SongbookId || (criteria?.SongbookIds?.Any(ids => ids == sb.SongbookId) ?? false))?.ToList() ?? new List <SongDto>()); }
public IList <SongDto> GetByCriteria(SongSearchCriteria criteria, int pageNumber, int pageSize) { if (!criteria.IsValid) { _logger.LogWarning("Unable to retrieve 'Song' records by criteria. It is invalid. ({@criteria}, Page Number: {@pageNumber}, Page Size: {@pageSize})", criteria, pageNumber, pageSize); throw new InvalidSearchCriteriaException(criteria); } _logger.LogInformation("Getting 'Song' records with criteria {@criteria}, Page Number: {@pageNumber}, Page Size: {@pageSize})", criteria, pageNumber, pageSize); return(DataSource.Songs.Where(sb => sb.SongbookId == criteria.SongbookId || (criteria?.SongbookIds.Any(ids => ids == sb.SongbookId) ?? false)) .Skip(pageSize * (pageNumber - 1)) .Take(pageSize) .ToList()); }