コード例 #1
0
        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));
        }