コード例 #1
0
        public RetornoBase <int> Inserir(Editora editora)
        {
            var retorno = new RetornoBase <int>();

            try
            {
                var tabEditora = TabEditora.Fabricar(editora);
                db.Editoras.Add(tabEditora);
                db.SaveChanges();
                retorno.Valor = tabEditora.EditoraId;
            }
            catch (Exception ex)
            {
                retorno.Mensagem = $"Não foi possível inserir a editora '{editora.Nome}'.";
                retorno.Problemas.Add($"Falha ao {nameof(Inserir)} em {nameof(RepositorioEditora)}: {ex.Message}");
            }

            return(retorno);
        }
コード例 #2
0
        public RetornoBase <bool> Alterar(Editora editora)
        {
            var retorno = new RetornoBase <bool>();

            try
            {
                var tabEditora = db.Editoras.FirstOrDefault(x => x.EditoraId == editora.EditoraId);
                tabEditora.Nome = editora.Nome;
                tabEditora.Site = editora.Site;
                retorno.Valor   = db.SaveChanges() > 0;
            }
            catch (Exception ex)
            {
                retorno.Mensagem = $"Não foi possível alterar a editora '{editora.EditoraId}'.";
                retorno.Problemas.Add($"Falha ao {nameof(Alterar)} em {nameof(RepositorioEditora)}: {ex.Message}");
            }

            return(retorno);
        }
コード例 #3
0
        public RetornoBase <bool> Alterar(Autor autor)
        {
            var retorno = new RetornoBase <bool>();

            try
            {
                var tabAutor = db.Autores.FirstOrDefault(x => x.AutorId == autor.AutorId);
                tabAutor.Nome      = autor.Nome.Nome;
                tabAutor.Sobrenome = autor.Nome.Sobrenome;
                tabAutor.Email     = autor.Email.Endereco;
                retorno.Valor      = db.SaveChanges() > 0;
            }
            catch (Exception ex)
            {
                retorno.Mensagem = $"Não foi possível alterar o autor {autor.AutorId}.";
                retorno.Problemas.Add($"Falha ao {nameof(Alterar)} em {nameof(RepositorioAutor)}: {ex.Message}");
            }

            return(retorno);
        }
コード例 #4
0
        public RetornoBase <List <AutorDTO> > Realizar(Operacao.ListaAutoresDisponiveis listaAutoresDisponiveis)
        {
            var retorno = new RetornoBase <List <AutorDTO> >();

            var aoListarAutoresDisponiveis = repLivro.ListarAutoresDisponiveis(listaAutoresDisponiveis.LivroId);

            if (aoListarAutoresDisponiveis.Problemas.Count > 0)
            {
                retorno.Mensagem = "Não foi possível listar os autores disponíveis.";
                retorno.Problemas.AddRange(aoListarAutoresDisponiveis.Problemas);
            }
            else
            {
                retorno.Valor = new List <AutorDTO>();
                foreach (var autor in aoListarAutoresDisponiveis.Valor)
                {
                    retorno.Valor.Add(AutorDTO.Fabricar(autor));
                }
            }

            return(retorno);
        }
コード例 #5
0
        public RetornoBase <List <EditoraDTO> > Realizar(Operacao.ListaEditoras listaEditoras)
        {
            var retorno = new RetornoBase <List <EditoraDTO> >();

            var aoListar = repEditora.Listar();

            if (aoListar.Problemas.Count > 0)
            {
                retorno.Mensagem = "Não foi possível listar as editoras.";
                retorno.Problemas.AddRange(aoListar.Problemas);
            }
            else
            {
                retorno.Valor = new List <EditoraDTO>();
                foreach (var editora in aoListar.Valor)
                {
                    retorno.Valor.Add(EditoraDTO.Fabricar(editora));
                }
            }

            return(retorno);
        }
コード例 #6
0
        public RetornoBase <ICollection <Editora> > Listar()
        {
            var retorno = new RetornoBase <ICollection <Editora> >();

            try
            {
                var editoras    = new List <Editora>();
                var tabEditoras = db.Editoras.ToList();
                foreach (var tabEditora in tabEditoras)
                {
                    editoras.Add(tabEditora.Fabricar());
                }

                retorno.Valor = editoras;
            }
            catch (Exception ex)
            {
                retorno.Mensagem = "Não foi possível listar as editoras.";
                retorno.Problemas.Add($"Falha ao {nameof(Listar)} em {nameof(RepositorioEditora)}: {ex.Message}");
            }

            return(retorno);
        }
コード例 #7
0
        public RetornoBase <bool> Realizar(AjusteEditora ajusteEditora)
        {
            var retorno = new RetornoBase <bool>();

            var editora = new Editora(ajusteEditora.EditoraId, ajusteEditora.Nome, ajusteEditora.Site);

            if (editora.EstaEmEstadoIntegro())
            {
                var aoAlterar = repEditora.Alterar(editora);
                retorno.Valor = aoAlterar.Valor;
                if (aoAlterar.Problemas.Count > 0)
                {
                    retorno.Mensagem = "Não foi possível alterar a editora.";
                    retorno.Problemas.AddRange(aoAlterar.Problemas);
                }
            }
            else
            {
                retorno.Mensagem = "Os dados da editora não foram devidamente informados.";
                retorno.Problemas.AddRange(editora.Problemas);
            }

            return(retorno);
        }
コード例 #8
0
        public RetornoBase <int> Realizar(NovaEditora novaEditora)
        {
            var retorno = new RetornoBase <int>();

            var editora = new Editora(0, novaEditora.Nome, novaEditora.Site);

            if (editora.EstaEmEstadoIntegro())
            {
                var aoInserir = repEditora.Inserir(editora);
                retorno.Valor = aoInserir.Valor;
                if (aoInserir.Problemas.Count > 0)
                {
                    retorno.Mensagem = "Não foi possível registrar a nova editora.";
                    retorno.Problemas.AddRange(aoInserir.Problemas);
                }
            }
            else
            {
                retorno.Mensagem = "Os dados da nova editora não foram devidamente informados.";
                retorno.Problemas.AddRange(editora.Problemas);
            }

            return(retorno);
        }
コード例 #9
0
        public RetornoBase <Editora> Localizar(int editoraId)
        {
            var retorno = new RetornoBase <Editora>();

            try
            {
                var tbEditora = db.Editoras.FirstOrDefault(x => x.EditoraId == editoraId);
                if (tbEditora != null)
                {
                    retorno.Valor = tbEditora.Fabricar();
                }
                else
                {
                    retorno.Mensagem = $"Editora não localizada para ID {editoraId}.";
                }
            }
            catch (Exception ex)
            {
                retorno.Mensagem = $"Não foi possível localizar a editora {editoraId}.";
                retorno.Problemas.Add($"Falha ao {nameof(Localizar)} em {nameof(RepositorioEditora)}: {ex.Message}");
            }

            return(retorno);
        }
コード例 #10
0
        public RetornoBase <ICollection <Autor> > ListarAutoresDisponiveis(int livroId)
        {
            var retorno = new RetornoBase <ICollection <Autor> >();

            try
            {
                var             autores    = new List <Autor>();
                List <TabAutor> tabAutores = null;

                if (livroId > 0)
                {
                    tabAutores = db.Database.SqlQuery <TabAutor>($"select * from Autor where AutorId not in (select AutorId from LivroAutoria where LivroId = {livroId})").ToList();
                }
                else
                {
                    tabAutores = db.Autores.ToList();
                }

                if (tabAutores != null)
                {
                    foreach (var tabAutor in tabAutores)
                    {
                        autores.Add(tabAutor.Fabricar());
                    }
                }

                retorno.Valor = autores;
            }
            catch (Exception ex)
            {
                retorno.Mensagem = "Não foi possível listar os autores.";
                retorno.Problemas.Add($"Falha ao {nameof(ListarAutoresDisponiveis)} em {nameof(RepositorioLivro)}: {ex.Message}");
            }

            return(retorno);
        }
コード例 #11
0
        public RetornoBase <Livro> Localizar(int livroId)
        {
            var retorno = new RetornoBase <Livro>();

            try
            {
                var tbLivro = db.Livros.Include("Editora").Include("Autores").FirstOrDefault(x => x.LivroId == livroId);
                if (tbLivro != null)
                {
                    retorno.Valor = tbLivro.Fabricar();
                }
                else
                {
                    retorno.Mensagem = $"Livro não localizado para ID {livroId}.";
                }
            }
            catch (Exception ex)
            {
                retorno.Mensagem = $"Não foi possível localizar o livro {livroId}.";
                retorno.Problemas.Add($"Falha ao {nameof(Localizar)} em {nameof(RepositorioLivro)}: {ex.Message}");
            }

            return(retorno);
        }
コード例 #12
0
        public RetornoBase <int> Inserir(Livro livro)
        {
            var retorno = new RetornoBase <int>();

            try
            {
                var tabLivro = new TabLivro();
                tabLivro.LivroId       = livro.LivroId;
                tabLivro.Titulo        = livro.Titulo;
                tabLivro.Estante       = livro.Estante;
                tabLivro.AnoPublicacao = livro.AnoPublicacao;
                tabLivro.Editora       = db.Editoras.FirstOrDefault(x => x.EditoraId == livro.Editora.EditoraId);
                db.Livros.Add(tabLivro);
                db.SaveChanges();

                if (tabLivro.LivroId > 0)
                {
                    foreach (var autor in livro.Autores)
                    {
                        db.LivroAutoria.Add(new TabLivroAutoria {
                            LivroId = tabLivro.LivroId, AutorId = autor.AutorId
                        });
                    }
                    db.SaveChanges();
                }

                retorno.Valor = tabLivro.LivroId;
            }
            catch (Exception ex)
            {
                retorno.Mensagem = $"Não foi possível inseriro livro '{livro.Titulo}'.";
                retorno.Problemas.Add($"Falha ao {nameof(Inserir)} em {nameof(RepositorioLivro)}: {ex.Message}");
            }

            return(retorno);
        }
コード例 #13
0
        public RetornoBase <int> Realizar(NovoLivro novoLivro)
        {
            var retorno = new RetornoBase <int>();

            var editora = new Editora(novoLivro.Editora.EditoraId, novoLivro.Editora.Nome, novoLivro.Editora.Site);
            var autores = new List <Autor>();

            foreach (var tautor in novoLivro.Autores)
            {
                autores.Add(new Autor(
                                tautor.AutorId,
                                new Dominio.Descritores.TNomePessoa(tautor.Nome, tautor.Sobrenome),
                                new Dominio.Descritores.TEmail(tautor.Email)
                                ));
            }

            var livro = new Livro(0, novoLivro.Titulo, novoLivro.Estante, novoLivro.AnoPublicacao, editora, autores);

            if (livro.EstaEmEstadoIntegro())
            {
                var aoInserir = repLivro.Inserir(livro);
                retorno.Valor = aoInserir.Valor;
                if (aoInserir.Problemas.Count > 0)
                {
                    retorno.Mensagem = "Não foi possível registrar o novo livro.";
                    retorno.Problemas.AddRange(aoInserir.Problemas);
                }
            }
            else
            {
                retorno.Mensagem = "Os dados do novo livro não foram devidamente informados.";
                retorno.Problemas.AddRange(livro.Problemas);
            }

            return(retorno);
        }
コード例 #14
0
        public RetornoBase <int> Realizar(Operacao.NovoLivro novoLivro)
        {
            var retorno = new RetornoBase <int>();

            var livro = novoLivro.Fabricar();

            if (livro.EstaEmEstadoIntegro())
            {
                var aoInserir = repLivro.Inserir(livro);
                retorno.Valor = aoInserir.Valor;
                if (aoInserir.Problemas.Count > 0)
                {
                    retorno.Mensagem = "Não foi possível registrar o novo livro.";
                    retorno.Problemas.AddRange(aoInserir.Problemas);
                }
            }
            else
            {
                retorno.Mensagem = "Os dados do novo livro não foram devidamente informados.";
                retorno.Problemas.AddRange(livro.Problemas);
            }

            return(retorno);
        }
コード例 #15
0
        public RetornoBase <Autor> Localizar(int autorId)
        {
            var retorno = new RetornoBase <Autor>();

            try
            {
                var tbAutor = db.Autores.FirstOrDefault(x => x.AutorId == autorId);
                if (tbAutor != null)
                {
                    retorno.Valor = TabAutorParaAutor(tbAutor);
                }
                else
                {
                    retorno.Mensagem = $"Autor não localizado para ID {autorId}.";
                }
            }
            catch (Exception ex)
            {
                retorno.Mensagem = $"Não foi possível localizar o autor {autorId}.";
                retorno.Problemas.Add($"Falha ao {nameof(Localizar)} em {nameof(RepositorioAutor)}: {ex.Message}");
            }

            return(retorno);
        }
コード例 #16
0
        public RetornoBase <bool> Realizar(Operacao.AjusteLivro ajusteLivro)
        {
            var retorno = new RetornoBase <bool>();

            var livro = ajusteLivro.Fabricar();

            if (livro.EstaEmEstadoIntegro())
            {
                var aoAlterar = repLivro.Alterar(livro);
                retorno.Valor = aoAlterar.Valor;
                if (aoAlterar.Problemas.Count > 0)
                {
                    retorno.Mensagem = "Não foi possível ajustar o livro.";
                    retorno.Problemas.AddRange(aoAlterar.Problemas);
                }
            }
            else
            {
                retorno.Mensagem = "Os dados do livro não foram devidamente informados.";
                retorno.Problemas.AddRange(livro.Problemas);
            }

            return(retorno);
        }
コード例 #17
0
 public RetornoEEnvio(RetornoBase retorno)
 {
     Envio   = retorno.EnvioXmlString;
     Retorno = retorno.RetornoXmlString;
 }
コード例 #18
0
        public RetornoBase <ICollection <Livro> > ListarAcervo(string titulo, int editoraId, int autorId)
        {
            var retorno = new RetornoBase <ICollection <Livro> >();

            try
            {
                List <Expression <Func <TabLivro, bool> > > expressoes = new List <Expression <Func <TabLivro, bool> > >();
                if (!string.IsNullOrEmpty(titulo))
                {
                    expressoes.Add(x => x.Titulo.Contains(titulo));
                }
                if (editoraId > 0)
                {
                    expressoes.Add(x => x.EditoraId == editoraId);
                }
                if (autorId > 0)
                {
                    expressoes.Add(x => x.Autores.Select(a => a.AutorId).Contains(autorId));
                }

                List <TabLivro> tbLivros = null;

                if (expressoes.Count > 0)
                {
                    if (expressoes.Count > 1)
                    {
                        var exLivro = expressoes[0].And(expressoes[1]);
                        for (var i = 2; i < expressoes.Count; i++)
                        {
                            exLivro = exLivro.And(expressoes[i]);
                        }
                        tbLivros = db.Livros.Include("Editora").Include("Autores").Where(exLivro).ToList();
                    }
                    else
                    {
                        tbLivros = db.Livros.Include("Editora").Include("Autores").Where(expressoes[0]).ToList();
                    }
                }
                else
                {
                    tbLivros = db.Livros.Include("Editora").Include("Autores").ToList();
                }

                if (tbLivros != null)
                {
                    retorno.Valor = new List <Livro>();
                    foreach (var tbLivro in tbLivros)
                    {
                        retorno.Valor.Add(tbLivro.Fabricar());
                    }
                }
                else
                {
                    retorno.Mensagem = $"Nenhum livro no acervo para os dados de entrada.";
                }
            }
            catch (Exception ex)
            {
                retorno.Mensagem = $"Não foi possível listar o acervo.";
                retorno.Problemas.Add($"Falha ao {nameof(ListarAcervo)} em {nameof(RepositorioLivro)}: {ex.Message}");
            }

            return(retorno);
        }
コード例 #19
0
        public HttpResponseMessage ReturnSuccess()
        {
            var retornoBase = new RetornoBase <object>();

            return(Request.CreateResponse(HttpStatusCode.OK, retornoBase));
        }