public RetornoBase <List <LivroAcervoDTO> > Realizar(Operacao.ListaAcervo listaAcervo)
        {
            var retorno = new RetornoBase <List <LivroAcervoDTO> >();

            var aoListarAcervo = repLivro.ListarAcervo(listaAcervo.Titulo, listaAcervo.EditoraId, listaAcervo.AutorId);

            if (aoListarAcervo.Problemas.Count > 0)
            {
                retorno.Mensagem = "Não foi possível listar o acervo.";
                retorno.Problemas.AddRange(aoListarAcervo.Problemas);
            }
            else
            {
                var livros = new List <LivroAcervoDTO>();

                foreach (var livro in aoListarAcervo.Valor)
                {
                    var livroDto = LivroAcervoDTO.Fabricar(livro);
                    if (livroDto.Autores != null && livroDto.Autores.Count > 0)
                    {
                        livroDto.Autoria = String.Join(", ", livroDto.Autores.Select(x => x.Nome + " " + x.Sobrenome).ToArray());
                    }
                    livros.Add(livroDto);
                }

                retorno.Valor = livros;
            }

            return(retorno);
        }
        public RetornoBase <List <TLivroAcervo> > Realizar(ListaAcervo listaAcervo)
        {
            var retorno = new RetornoBase <List <TLivroAcervo> >();

            var aoListarAcervo = repLivro.ListarAcervo(listaAcervo.Titulo, listaAcervo.EditoraId, listaAcervo.AutorId);

            if (aoListarAcervo.Problemas.Count > 0)
            {
                retorno.Mensagem = "Não foi possível listar o acervo.";
                retorno.Problemas.AddRange(aoListarAcervo.Problemas);
            }
            else
            {
                var livros = aoListarAcervo.Valor;
                retorno.Valor = new List <TLivroAcervo>();
                foreach (var item in livros)
                {
                    var tlivro = new TLivroAcervo()
                    {
                        LivroId       = item.LivroId,
                        Titulo        = item.Titulo,
                        Estante       = item.Estante,
                        AnoPublicacao = item.AnoPublicacao,
                        EditoraId     = item.Editora.EditoraId,
                        Editora       = new TEditora()
                        {
                            EditoraId = item.Editora.EditoraId, Nome = item.Editora.Nome, Site = item.Editora.Site
                        }
                    };
                    foreach (var autor in item.Autores)
                    {
                        tlivro.Autores.Add(new TAutor()
                        {
                            AutorId   = autor.AutorId,
                            Nome      = autor.Nome.Nome,
                            Sobrenome = autor.Nome.Sobrenome,
                            Email     = autor.Email.Endereco
                        });
                    }
                    tlivro.Autoria = String.Join(", ", tlivro.Autores.Select(x => x.Nome + " " + x.Sobrenome).ToArray());
                    retorno.Valor.Add(tlivro);
                }
            }

            return(retorno);
        }