public async Task <Models.TbEstoque> InserirEstoque(Models.TbEstoque tabela) { await db.TbEstoque.AddAsync(tabela); await db.SaveChangesAsync(); return(tabela); }
public async Task <Models.TbEstoque> RemoverEstoquePorId(int idestoque) { Models.TbEstoque estoque = await this.ConsultarEstoquePorId(idestoque); db.TbEstoque.Remove(estoque); await db.SaveChangesAsync(); return(estoque); }
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); }
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); }
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); }
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); }
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))); } }
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))); } }
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); }
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); }
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(); }
public async Task <Models.TbEstoque> ConsultarEstoquePorId(int idestoque) { Models.TbEstoque estoque = await db.TbEstoque.FirstOrDefaultAsync(x => x.IdEstoque == idestoque); return(estoque); }