public IActionResult Index(int albumId, int artistId) //artistId always passed, albumId optional { var artistModel = _artist.Get(artistId); var albumModel = _albumSong.GetAllAlbumsByArtist(artistId).FirstOrDefault(); //return 1, may be 0, 1, or M. var songModel = _albumSong.GetRandomSongsByArtist(artistId); //may be 0, 1, or M. var allSongsModel = _albumSong.GetAllSongsByArtist(artistId); //var artistAlbumInfoModel = _albumSong.GetAlbumByAlbum(albumId); //var songModel = _albumSong.GetAllSongsByAlbum(albumId); if (albumId != 0) { albumModel = _albumSong.GetAlbumByAlbum(albumId); songModel = _albumSong.GetAllSongsByAlbum(albumId); } //empty song object - bind to form var song = new SongListingModel { Id = 0, Name = string.Empty, Duration = string.Empty, TrackNumber = 0 }; //all existing songs on album, if any var songs = songModel.Select (r => new SongListingModel { Id = r.Song.Id, Name = r.Song.Name, Duration = r.Song.Duration, TrackNumber = r.TrackNumber //PrimaryImage = _image.GetPrimaryImageByEntity(1, r.Album.Id, 1) } ).ToList(); var album = new AlbumListingModel { Id = albumModel.Album.Id, Name = albumModel.Album.Name, YrReleased = albumModel.Album.YrReleased, PrimaryImage = _image.GetPrimaryImageByEntity(1, albumModel.Album.Id, 1) }; var artistInfo = new ArtistListingModel { Id = artistModel.Id, ArtistName = artistModel.ArtistName, Bio = artistModel.Bio, YrFormed = artistModel.YrFormed, YrEnded = artistModel.YrEnded, isActive = artistModel.isActive, HomeCountry = artistModel.HomeCountry, HomeTown = artistModel.HomeTown, PrimaryImage = _image.GetPrimaryImageByEntity(2, artistModel.Id, 2) }; var model = new SongPostIndexModel { Artist = artistInfo, Album = album, Songs = songs, Song = song }; return(View(model)); }
public IActionResult Index(int id) //Artist.Id passed in { //GET //Artist //Musician(s) //Album(s) //"Featured" Song(s) var artistInfoModel = _artist.Get(id); var musicianModel = _artistMusician.GetAllByArtist(id); var albumModel = _albumSong.GetAllAlbumsByArtist(id); var songModel = _albumSong.GetRandomSongsByArtist(id); //Load the data objects >> //if (songModel or albumModel != null) ** What to do if null? ** var songs = songModel.Select (r => new SongListingModel { Id = r.Song.Id, Name = r.Song.Name, Duration = r.Song.Duration, TrackNumber = r.TrackNumber //PrimaryImage = _image.GetPrimaryImageByEntity(1, r.Album.Id, 1) } ).ToList(); var albums = albumModel.Select (r => new AlbumListingModel { Id = r.Album.Id, Name = r.Album.Name, YrReleased = r.Album.YrReleased, PrimaryImage = _image.GetPrimaryImageByEntity(1, r.Album.Id, 1) } ).ToList(); var artistInfo = new ArtistListingModel { Id = artistInfoModel.Id, ArtistName = artistInfoModel.ArtistName, Bio = artistInfoModel.Bio, YrFormed = artistInfoModel.YrFormed, YrEnded = artistInfoModel.YrEnded, isActive = artistInfoModel.isActive, HomeCountry = artistInfoModel.HomeCountry, HomeTown = artistInfoModel.HomeTown, PrimaryImage = _image.GetPrimaryImageByEntity(2, artistInfoModel.Id, 2) }; var musicians = musicianModel.Select (r => new MusicianListingModel { Id = r.Musician.Id, Bio = r.Musician.Bio, Birth = r.Musician.Birth, Death = r.Musician.Death, FirstName = r.Musician.FirstName, LastName = r.Musician.LastName, MusicianName = r.Musician.MusicianName, HomeCountry = r.Musician.HomeCountry, HomeTown = r.Musician.HomeTown, isActive = r.Musician.isActive, PrimaryImage = _image.GetPrimaryImageByEntity(5, r.Musician.Id, 1) } ).ToList(); var model = new MainDetailModel { Artist = artistInfo, Musicians = musicians, Albums = albums, Songs = songs }; return(View(model)); }