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);
        }
        public ActionResult Index(string titulo, int editora, int autor)
        {
            var listaAcervo = new ListaAcervo
            {
                Titulo    = titulo,
                EditoraId = editora,
                AutorId   = autor
            };
            var retornoAoRealizarConsultaAcervo = consultarAcervo.Realizar(listaAcervo);

            ViewBag.Mensagem      = retornoAoRealizarConsultaAcervo.Mensagem;
            ViewBag.Problemas     = retornoAoRealizarConsultaAcervo.Problemas;
            ViewBag.Titulo        = titulo;
            ViewBag.Editora       = editora;
            ViewBag.ListaEditoras = consultarAcervo.Realizar(new ListaEditoras()).Valor;
            ViewBag.Autor         = autor;
            ViewBag.ListaAutores  = consultarAcervo.Realizar(new ListaAutores()).Autores;
            return(View(retornoAoRealizarConsultaAcervo.Valor));
        }