示例#1
0
        public async Task <Models.TbEstoque> InserirEstoque(Models.TbEstoque tabela)
        {
            await db.TbEstoque.AddAsync(tabela);

            await db.SaveChangesAsync();

            return(tabela);
        }
示例#2
0
        public async Task <Models.TbEstoque> RemoverEstoquePorId(int idestoque)
        {
            Models.TbEstoque estoque = await this.ConsultarEstoquePorId(idestoque);

            db.TbEstoque.Remove(estoque);
            await db.SaveChangesAsync();

            return(estoque);
        }
示例#3
0
        public Models.TbEstoque ConversorTabela(Models.Request.EstoqueRequest request)
        {
            Models.TbEstoque tabela = new Models.TbEstoque();

            tabela.IdLivro       = request.livro;
            tabela.NrQuantidade  = request.qtd;
            tabela.DtAtualizacao = System.DateTime.Now;

            return(tabela);
        }
示例#4
0
        public async Task <Models.TbEstoque> RemoverEstoquePorId(int idestoque)
        {
            ValidarId(idestoque);
            Models.TbEstoque estoque = await database.RemoverEstoquePorId(idestoque);

            if (estoque.IdEstoque <= 0)
            {
                throw new ArgumentException("Não foi possivel remover este estoque.");
            }
            return(estoque);
        }
示例#5
0
        public async Task <Models.TbEstoque> ConsultarBusiness(int idestoque)
        {
            ValidarId(idestoque);
            Models.TbEstoque estoque = await database.ConsultarEstoquePorId(idestoque);

            if (estoque.IdEstoque <= 0)
            {
                throw new ArgumentException("Não foi possivel consultar o estoque deste livro.");
            }
            return(estoque);
        }
示例#6
0
        public async Task <Models.TbEstoque> AlterarEstoquePorId(int idestoque, Models.TbEstoque novo)
        {
            Models.TbEstoque estoque = await this.ConsultarEstoquePorId(idestoque);

            estoque.IdLivro       = novo.IdLivro;
            estoque.NrQuantidade  = novo.NrQuantidade;
            estoque.DtAtualizacao = novo.DtAtualizacao;

            await db.SaveChangesAsync();

            return(estoque);
        }
示例#7
0
        public async Task <ActionResult <Models.Response.EstoqueResponce> > AlterarEstoque(int idestoque, Models.Request.EstoqueRequest request)
        {
            try
            {
                Models.TbEstoque tabela = conversor.ConversorTabela(request);
                tabela = await business.AlterarBusiness(idestoque, tabela);

                return(conversor.ConversorResponse(tabela));
            }
            catch (System.Exception ex)
            {
                return(new NotFoundObjectResult(new Models.Response.ErroResponse(404, ex.Message)));
            }
        }
示例#8
0
        public async Task <ActionResult <Models.Response.EstoqueResponce> > CadastrarEstoque(Models.Request.EstoqueRequest request)
        {
            try
            {
                Models.TbEstoque tabela = conversor.ConversorTabela(request);
                tabela = await business.InserirBusiness(tabela);

                return(conversor.ConversorResponse(tabela));
            }
            catch (System.Exception ex)
            {
                return(BadRequest(new Models.Response.ErroResponse(400, ex.Message)));
            }
        }
示例#9
0
        public Models.Response.EstoqueResponce ConversorResponse(Models.TbEstoque tabela)
        {
            if (tabela == null)
            {
                return(null);
            }

            Models.Response.EstoqueResponce responce = new Models.Response.EstoqueResponce();

            responce.id          = tabela.IdEstoque;
            responce.livro       = tabela.IdLivro;
            responce.qtd         = tabela.NrQuantidade;
            responce.atualizacao = tabela.DtAtualizacao;

            return(responce);
        }
示例#10
0
        public async Task <Models.TbEstoque> AlterarBusiness(int idestoque, Models.TbEstoque novo)
        {
            ValidarId(novo.IdLivro);
            if (novo.NrQuantidade < 0)
            {
                throw new ArgumentException("Valor minimo para inserir no estoque é 0");
            }
            novo.DtAtualizacao = DateTime.Now;

            Models.TbEstoque estoque = await database.AlterarEstoquePorId(idestoque, novo);

            if (estoque.IdEstoque <= 0)
            {
                throw new ArgumentException("Não foi possivel alterar este estoque.");
            }
            return(estoque);
        }
示例#11
0
        public async Task RetirarQuantidadeVendida(List <Models.TbVendaLivro> tabela)
        {
            foreach (Models.TbVendaLivro item in tabela)
            {
                Models.TbEstoque estoque = await db.TbEstoque.Include(x => x.IdLivroNavigation)
                                           .FirstOrDefaultAsync(x => x.IdLivro == item.IdLivro);

                if (estoque == null)
                {
                    throw new ArgumentException("O estoque deste livro está indisponivel no memento.");
                }

                if (estoque.NrQuantidade < item.NrLivros)
                {
                    throw new ArgumentException("Infelizmente o livro" + estoque.IdLivroNavigation.NmLivro.ToUpper() + " não tem "
                                                + item.NrLivros + " unidades disponíveis no estoque.");
                }
                estoque.NrQuantidade -= item.NrLivros;
                estoque.DtAtualizacao = DateTime.Now;
            }
            await db.SaveChangesAsync();
        }
示例#12
0
        public async Task <Models.TbEstoque> ConsultarEstoquePorId(int idestoque)
        {
            Models.TbEstoque estoque = await db.TbEstoque.FirstOrDefaultAsync(x => x.IdEstoque == idestoque);

            return(estoque);
        }