public ActionResult Generate(FormCollection collection)
        {
            var performerIds = collection.GetValues("performers")?.Select(int.Parse) ?? new List <int>();
            var genreIds     = collection.GetValues("genres")?.Select(int.Parse) ?? new List <int>();

            var compositionsOfSelectedPerformers = performerRepository.GetAll()
                                                   .Where(performer => performerIds.Contains(performer.Id)).SelectMany(performer => performer.Albums)
                                                   .SelectMany(album => album.Compositions).ToList();

            var compositionOfGenres = compositionRepository.GetAll().Where(composition => genreIds.Contains(composition.Genre.Id)).ToList();

            var allCompositions = compositionsOfSelectedPerformers.Union(compositionOfGenres).Distinct().GroupBy(composition => composition.Albums.First().Performer);

            return(View("Playlist", allCompositions));
        }
Пример #2
0
 public IEnumerable <Composition> DonneTous()
 {
     return(_compositionRepository.GetAll());
 }
        public override ActionResult SearchByStartPart(string searchPart)
        {
            var instances = compositionRepository.GetAll().Where(performer => performer.Name.StartsWith(searchPart));

            return(View("SearchResults", instances));
        }