public ICommandResult Handle(GetAlbumById command) { var albumQuery = _repository.GetById(command.Id); var categoryQuery = _categoryRepository.GetById(albumQuery.CategoryId); var genderQuery = _genderRepository.GetById(albumQuery.GenderId); Gender gender = new Gender(genderQuery.Id, genderQuery.Title, genderQuery.Description); Category category = new Category(categoryQuery.Id, categoryQuery.Title, categoryQuery.Description); Album album = new Album(albumQuery.Id, albumQuery.Title, gender, category, albumQuery.Image); var songsQuery = _songRepository.GetByAlbum(album.Id); foreach (var songQuery in songsQuery) { Name singerName = new Name(songQuery.SingerFirstName, songQuery.SingerLastName); Singer singer = new Singer(songQuery.SingerId, singerName, null, null, songQuery.SingerImage); Song song = new Song(songQuery.Title, singer, album, songQuery.Url, null); album.AddSong(song); } return(new CommandResult(true, null, null, album)); }