public IActionResult Post(int quantidadeEstoqueFilmeInicial, [FromBody] Filme filme) { try { if (quantidadeEstoqueFilmeInicial <= 0) { throw new Exception("Por favor, inserir pelo menos um filme no estoque da locadora. Verifique a quantidade corretamente!!!."); } else { // SALVAR FILME _locadoraDbContext.Filmes.Add(filme); _locadoraDbContext.SaveChanges(); int filmeId = filme.Id; EstoqueFilme estoqueFilme = new EstoqueFilme(filmeId, quantidadeEstoqueFilmeInicial); // SALVAR ESTOQUE DO FILME COM O ID DO FILME QUE ACABOU DE SER INSERIDO _locadoraDbContext.EstoqueFilme.Add(estoqueFilme); _locadoraDbContext.SaveChanges(); } return(NoContent()); } catch (Exception e) { return(BadRequest($"Erro: {e}")); } }
public bool Editar(Cliente clienteEditado) { try { var clienteUpdate = _dbContext.Cliente.FirstOrDefault(cliente => cliente.Id == clienteEditado.Id); _mapper.Map(clienteEditado, clienteUpdate); _dbContext.Cliente.Update(clienteUpdate); _dbContext.SaveChanges(); return(true); } catch (Exception) { return(false); } }
public Response Delete(int id) { Response response = new Response(); if (id <= 0) { response.Erros.Add("Valor do ID inválido."); } if (response.Erros.Count != 0) { response.Sucesso = false; return(response); } try { using (LocadoraDbContext db = new LocadoraDbContext()) { Genero generoASerExcluido = new Genero(); generoASerExcluido.ID = id; db.Entry <Genero>(generoASerExcluido).State = System.Data.Entity.EntityState.Deleted; db.SaveChanges(); } response.Sucesso = true; } catch (Exception ex) { response.Sucesso = false; response.Erros.Add("Erro no banco de dados, contate o administrador."); File.WriteAllText("log.txt", ex.Message + " - " + ex.StackTrace); } return(response); }
public Response Insert(Filme item) { Response response = Validate(item); //TODO: Verificar a existência desse gênero na base de dados //generoBLL.LerID(item.GeneroID); //Verifica se tem erros! if (response.Erros.Count != 0) { response.Sucesso = false; return(response); } try { using (LocadoraDbContext db = new LocadoraDbContext()) { db.Filmes.Add(item); db.SaveChanges(); } response.Sucesso = true; } catch (Exception ex) { response.Erros.Add("Erro no banco de dados, contate o administrador."); response.Sucesso = false; File.WriteAllText("log.txt", ex.Message + " - " + ex.StackTrace); } return(response); //return filmeDAL.Insert(item); }
public Response Update(Genero item) { Response response = Validate(item); if (response.Erros.Count != 0) { response.Sucesso = false; return(response); } try { using (LocadoraDbContext db = new LocadoraDbContext()) { Genero generoASerAtualizado = new Genero(); generoASerAtualizado = item; db.Entry <Genero>(generoASerAtualizado).State = System.Data.Entity.EntityState.Modified; db.SaveChanges(); } response.Sucesso = true; } catch (Exception ex) { response.Sucesso = false; response.Erros.Add("Erro no banco de dados, contate o administrador."); File.WriteAllText("log.txt", ex.Message + " - " + ex.StackTrace); } return(response); }
public Response Update(Filme item) { Response response = Validate(item); //TODO: Verificar a existência desse gênero na base de dados //generoBLL.LerID(item.GeneroID); //Verifica se tem erros! if (response.Erros.Count != 0) { response.Sucesso = false; return(response); } try { using (LocadoraDbContext db = new LocadoraDbContext()) { Filme filmeASerAtualizado = new Filme(); filmeASerAtualizado = item; db.Entry <Filme>(filmeASerAtualizado).State = System.Data.Entity.EntityState.Modified; db.SaveChanges(); } response.Sucesso = true; } catch (Exception ex) { response.Erros.Add("Erro no banco de dados, contate o administrador."); response.Sucesso = false; File.WriteAllText("log.txt", ex.Message + " - " + ex.StackTrace); } return(response); //return filmeDAL.Update(item); }
public Response Insert(Funcionario item) { Response response = Validate(item); if (response.HasErrors()) { response.Sucesso = false; return(response); } item.EhAtivo = true; item.Senha = HashUtils.HashPassword(item.Senha); try { using (LocadoraDbContext db = new LocadoraDbContext()) { db.Funcionarios.Add(item); db.SaveChanges(); } response.Sucesso = true; } catch (Exception ex) { response.Sucesso = false; response.Erros.Add("Erro no banco de dados,contate o administrador."); File.WriteAllText("log.txt", ex.Message + " - " + ex.StackTrace); } return(response); //return funcionarioDAL.Insert(item); }
public Response Insert(Cliente item) { Response response = new Response(); response = Validate(item); if (response.Erros.Count > 0) { response.Sucesso = false; return(response); } try { using (LocadoraDbContext db = new LocadoraDbContext()) { db.Clientes.Add(item); db.SaveChanges(); } response.Sucesso = true; return(response); } catch (Exception ex) { response.Erros.Add("Erro no banco de dados, contate o administrador."); response.Sucesso = false; File.WriteAllText("log.txt", ex.Message + " - " + ex.StackTrace); return(response); } //return dal.Insert(item); }
public IActionResult Post(int clienteId, int filmeId, DateTime dataAlocacao, DateTime dataDevolucaoPrevista) { try { // verificar se existe cliente var cliente = _locadoraDbContext.Clientes.SingleOrDefault(c => c.Id == clienteId); // verificar se existe filme var filme = _locadoraDbContext.Filmes.SingleOrDefault(c => c.Id == filmeId); if (cliente == null || filme == null) { throw new Exception("Cliente ou Filme não encontrado. Por favor, verifique e insere novamente"); } // BUSCAR A QUANTIDADE DE ESTOQUE DO FILME ESPECÍFICO var estoqueFilme = _locadoraDbContext.EstoqueFilme.SingleOrDefault(e => e.FilmeId == filme.Id); if (estoqueFilme == null) { throw new Exception("Ops! Filme registrado no sistema sem quantidade de estoque definido. Por favor, atualizar a quantidade para prosseguir!!!"); } if (estoqueFilme.Quantidade <= 0) { throw new Exception("Ops! A quantidade solicitada de filme excede o estoque dos nossos bancos de dados. Verifique a quantidade novamente e tente mais tarde. Obrigado!!!"); } else { // DECREMENTAR QUANTIDADE FILME estoqueFilme.DecrementarQuantidadeEstoque(); if (estoqueFilme.Quantidade == 0) { filme.MudarStatusFilme(1); // MUDAR STATUS PARA 1 DE ALUGADO _locadoraDbContext.Filmes.Update(filme); //SALVAR DADOS NO BANCO DE DADOS _locadoraDbContext.SaveChanges(); } _locadoraDbContext.EstoqueFilme.Update(estoqueFilme); _locadoraDbContext.SaveChanges(); Locacao locacao = new Locacao { ClienteId = cliente.Id, FilmeId = filme.Id, DataAlocacao = dataAlocacao, DataDevolucaoPrevista = dataDevolucaoPrevista }; _locadoraDbContext.Locacao.Add(locacao); _locadoraDbContext.SaveChanges(); } return(NoContent()); } catch (Exception e) { return(BadRequest($"Erro: {e}")); } }
public Response EfetuarLocacao(Locacao locacao) { Response response = Validate(locacao); if (response.Erros.Count > 0) { response.Sucesso = false; return(response); } try { using (LocadoraDbContext db = new LocadoraDbContext()) { db.Locacoes.Add(locacao); db.SaveChanges(); } response.Sucesso = true; } catch (Exception ex) { response.Sucesso = false; response.Erros.Add("Erro no banco de dados, contate o administrador."); File.WriteAllText("log.txt", ex.Message + " - " + ex.StackTrace); } return(response); /*using (TransactionScope scope = new TransactionScope()) * { * //Cadastra a locacao no banco de dados e ainda escreve * //no objeto locacao o ID gerado pelo base. * response = locacaoDAL.EfetuarLocacao(locacao); * * if (response.Sucesso) * { * //Efetuar as inserções na tabela N para N * response = locacaoDAL.EfetuarLocacaoFilmes(locacao); * if (response.Sucesso) * { * //Se der certo, "commita" a operação. * //Chamar o Complete significa que deu tudo certo * scope.Complete(); * } * } * }*///Ao chegar no final das chaves, caso o complete não seja chamado, o c# reverterá //todas as operações em banco de dados efetuada dentro deste using }
public Response Insert(Genero item) { Response response = Validate(item); //TODO: Implementar posteriormente regra de prevenção de gêneros repetidos no banco de dados //Se chegou aqui, bora pro DAL! //Retorna a resposta do DAL! Se tiver dúvidas do que é esta resposta, //analise o método do DAL! if (response.Erros.Count > 0) { response.Sucesso = false; return(response); } try { using (LocadoraDbContext db = new LocadoraDbContext()) { foreach (Genero genero in db.Generos.ToList()) { if (genero.Nome.Equals(item.Nome)) { response.Erros.Add("Gênero já cadastrado."); response.Sucesso = false; return(response); } } db.Generos.Add(item); db.SaveChanges(); } response.Sucesso = true; } catch (Exception ex) { response.Sucesso = false; response.Erros.Add("Erro no banco de dados, contate o administrador."); File.WriteAllText("log.txt", ex.Message + " - " + ex.StackTrace); } return(response); //return dal.Insert(item); }
public Response Delete(int id) { Response response = new Response(); if (id <= 0) { response.Erros.Add("ID do filme não foi informado."); } if (response.Erros.Count != 0) { response.Sucesso = false; return(response); } try { using (LocadoraDbContext db = new LocadoraDbContext()) { Filme filmeASerExcluido = new Filme(); filmeASerExcluido.ID = id; db.Entry <Filme>(filmeASerExcluido).State = System.Data.Entity.EntityState.Deleted; db.SaveChanges(); } response.Sucesso = true; } catch (Exception ex) { response.Erros.Add("Erro no banco de dados, contate o administrador."); response.Sucesso = false; File.WriteAllText("log.txt", ex.Message + " - " + ex.StackTrace); } return(response); //return filmeDAL.Delete(id); }
public IActionResult Post([FromBody] Cliente cliente) { _locadoraDbContext.Clientes.Add(cliente); _locadoraDbContext.SaveChanges(); return(NoContent()); }