public async Task <IActionResult> Search(bool songs, bool albums, bool bands, bool concerts,
                                                 string searchTerm)
        {
            if (!this.ModelState.IsValid)
            {
                return(this.BadRequest());
            }

            var searchEverywhere = new SearchEverywhereServiceModel();

            searchEverywhere.SearchTerm = searchTerm;

            if (songs && !string.IsNullOrEmpty(searchTerm))
            {
                searchEverywhere.Songs = await this.userService.SearchSongsAsync(searchTerm);
            }

            if (albums && !string.IsNullOrEmpty(searchTerm))
            {
                searchEverywhere.Albums = await this.userService.SearchAlbumsAsync(searchTerm);
            }

            if (bands && !string.IsNullOrEmpty(searchTerm))
            {
                searchEverywhere.Bands = await this.userService.SearchBandsAsync(searchTerm);
            }

            if (concerts && !string.IsNullOrEmpty(searchTerm))
            {
                searchEverywhere.Concerts = await this.userService.SearchConcertsAsync(searchTerm);
            }

            return(this.View(searchEverywhere));
        }
        public async Task <SearchEverywhereServiceModel> SearchEverywhereAsync(string searchTerm)
        {
            var result = new SearchEverywhereServiceModel();

            var songs = await this.SearchSongsAsync(searchTerm);

            var albums = await this.SearchAlbumsAsync(searchTerm);

            var bands = await this.SearchBandsAsync(searchTerm);

            var concerts = await this.SearchConcertsAsync(searchTerm);

            if (songs != null && songs.Any())
            {
                result.Songs = songs;
            }
            if (albums != null && albums.Any())
            {
                result.Albums = albums;
            }
            if (bands != null && bands.Any())
            {
                result.Bands = bands;
            }
            if (concerts != null && concerts.Any())
            {
                result.Concerts = concerts;
            }

            return(result);
        }