예제 #1
0
        public List <Model.Genres> Get(GenresSearchRequest request)
        {
            var query = _context.Genres.AsQueryable();

            if (!string.IsNullOrWhiteSpace(request?.Name))
            {
                query = query.Where(x => x.Name.Contains(request.Name));
            }

            if (request.Filter.HasValue)
            {
                if (request.Filter.Value == (int)ReviewStatus.FilterPendingApproved)
                {
                    query = query.Where(x => x.Status == ReviewStatus.Pending || x.Status == ReviewStatus.Approved);
                }
                else
                {
                    query = query.Where(x => (int)x.Status == request.Filter.Value);
                }
            }

            query = query.OrderBy(x => x.Name);

            var list = query.ToList();

            var genresList = _mapper.Map <List <Model.Genres> >(list);

            foreach (var item in genresList)
            {
                item.NumberOfSongs = _context.Songs.Count(x => x.GenreId == item.Id);
            }

            return(genresList);
        }
예제 #2
0
        public List <Genre> GetFullList(GenresSearchRequest request)
        {
            var genres = GenresRepository.GetGenreList(request.Search).ToList();

            return(Mapper.Map <List <Genre> >(genres));
        }
예제 #3
0
        public IActionResult GetGenresList([FromQuery] GenresSearchRequest request)
        {
            var list = GenreService.GetFullList(request);

            return(Ok(list));
        }