Esempio n. 1
0
        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>());
        }
Esempio n. 2
0
        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());
        }