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