public async Task <IActionResult> Detail(int id, bool alreadyReviewed = false)
        {
            var song = await _songService.FindSongByIdDetailed(id);

            var approvedReviews = new List <SongReviewViewModel>();

            var vm = new MusicDetailViewModel
            {
                Id = song.Id,
                AlreadyReviewed = alreadyReviewed,
                SongTitle       = song.Title,
                AlbumTitle      = song.Album?.Title,
                BandName        = song.Album?.Band?.Name,
                Duration        = song.Duration,
                ReleaseDate     = song.Album?.ReleaseDate,
                Link            = song.SongLink,
                PhotoUrl        = song.Album?.PhotoUrl
            };

            foreach (var item in song.SongReviews)
            {
                if (item.Approved)
                {
                    approvedReviews.Add(new SongReviewViewModel
                    {
                        Description = item.Description,
                        Score       = item.Score,
                        User        = item.User.UserName,
                        Id          = item.Id,
                        Approved    = true,
                    });
                }
                else
                {
                    approvedReviews.Add(new SongReviewViewModel
                    {
                        Description = item.Description,
                        Score       = item.Score,
                        User        = item.User.UserName,
                        Id          = item.Id,
                        Approved    = false,
                    });
                }
            }

            vm.Reviews = approvedReviews;

            return(View(vm));
        }