Пример #1
0
        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);
     }
 }
Пример #3
0
        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);
        }
Пример #4
0
        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);
        }
Пример #5
0
        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);
        }
Пример #6
0
        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);
        }
Пример #7
0
        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);
        }
Пример #8
0
        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);
        }
Пример #9
0
        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}"));
            }
        }
Пример #10
0
        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
        }
Пример #11
0
        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);
        }
Пример #12
0
        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);
        }
Пример #13
0
 public IActionResult Post([FromBody] Cliente cliente)
 {
     _locadoraDbContext.Clientes.Add(cliente);
     _locadoraDbContext.SaveChanges();
     return(NoContent());
 }