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));
        }