Example #1
0
        public Response Delete(int id)
        {
            Response response = new Response();

            if (id <= 0)
            {
                response.Erros.Add("ID do filme não foi informado.");
                return(response);
            }

            using (LocadoraDBContext db = new LocadoraDBContext())
            {
                try
                {
                    db.Entry(new Filme()
                    {
                        ID = id
                    }).State = System.Data.Entity.EntityState.Deleted;
                    db.SaveChanges();
                    response.Sucesso = true;
                    return(response);
                }
                catch (Exception ex)
                {
                    response.Erros.Add("Erro ao deletar um filme. Contate o admin!");
                    File.WriteAllText("log.txt", ex.Message);
                    return(response);
                }
            }
        }
Example #2
0
        public DataResponse <FilmeResultSet> GetFilmesByClassificacao(Classificacao classificacao)
        {
            DataResponse <FilmeResultSet> response = new DataResponse <FilmeResultSet>();

            using (LocadoraDBContext db = new LocadoraDBContext())
            {
                try
                {
                    response.Data = db.Filmes.Select(f => new FilmeResultSet()
                    {
                        ID            = f.ID,
                        Nome          = f.Nome,
                        Genero        = f.Genero.Nome,
                        Classificacao = f.Classificacao
                    })
                                    .Where(f => f.Classificacao == classificacao)
                                    .ToList();
                    response.Sucesso = true;
                    return(response);
                }
                catch (Exception ex)
                {
                    response.Erros.Add("Erro no banco de dados. Contate o admin!");
                    File.WriteAllText("log.txt", ex.Message);
                    return(response);
                }
            }
        }
Example #3
0
        public Response Update(Filme item)
        {
            Response response = Validate(item);

            if (response.HasErrors())
            {
                response.Sucesso = false;
                return(response);
            }

            using (LocadoraDBContext db = new LocadoraDBContext())
            {
                try
                {
                    db.Entry(item).State = System.Data.Entity.EntityState.Modified;
                    db.SaveChanges();
                    response.Sucesso = true;
                    return(response);
                }
                catch (Exception ex)
                {
                    response.Erros.Add("Erro ao atualizar um filme. Contate o admin!");
                    File.WriteAllText("log.txt", ex.Message);
                    return(response);
                }
            }
        }
Example #4
0
        public DataResponse <Filme> GetByID(int id)
        {
            DataResponse <Filme> response = new DataResponse <Filme>();

            using (LocadoraDBContext db = new LocadoraDBContext())
            {
                try
                {
                    List <Filme> filmes = new List <Filme>();

                    Filme filme = db.Filmes.Find(id);

                    if (filme != null)
                    {
                        filmes.Add(filme);
                    }

                    response.Sucesso = true;
                    response.Data    = filmes;
                    return(response);
                }
                catch (Exception ex)
                {
                    response.Erros.Add("Erro no banco de dados. Contate o admin!");
                    File.WriteAllText("log.txt", ex.Message);
                    return(response);
                }
            }
        }
Example #5
0
        public Response Insert(Filme item)
        {
            Response response = Validate(item);

            if (response.HasErrors())
            {
                response.Sucesso = false;
                return(response);
            }

            using (LocadoraDBContext db = new LocadoraDBContext())
            {
                try
                {
                    db.Filmes.Add(item);
                    db.SaveChanges();
                    response.Sucesso = true;
                    return(response);
                }
                catch (Exception ex)
                {
                    response.Erros.Add("Erro ao adicionar um filme. Contate o admin!");
                    File.WriteAllText("log.txt", ex.Message);
                    return(response);
                }
            }
        }
        public DataResponse <Genero> GetByID(int id)
        {
            DataResponse <Genero> response = new DataResponse <Genero>();

            using (LocadoraDBContext db = new LocadoraDBContext())
            {
                try
                {
                    List <Genero> generos = new List <Genero>();

                    Genero genero = db.Generos.Find(id);

                    if (genero != null)
                    {
                        generos.Add(genero);
                    }

                    response.Sucesso = true;
                    response.Data    = generos;
                    return(response);
                }
                catch (Exception ex)
                {
                    response.Erros.Add("Erro no banco de dados. Contate o admin!");
                    File.WriteAllText("log.txt", ex.Message);
                    return(response);
                }
            }
        }
        public DataResponse <Funcionario> Autenticar(string email, string senha)
        {
            DataResponse <Funcionario> response = new DataResponse <Funcionario>();

            if (!email.IsEmail() || !senha.IsValidPassword())
            {
                response.Sucesso = false;
                response.Erros.Add("Email e/ou Senha incorreto(s).");
                return(response);
            }

            string senhaHasheada = HashUtils.HashPassword(senha);

            using (LocadoraDBContext db = new LocadoraDBContext())
            {
                try
                {
                    response.Data = db.Funcionarios.Where(f => f.Email == email &&
                                                          f.Senha == senhaHasheada)
                                    .ToList();
                    response.Sucesso       = true;
                    User.FuncionarioLogado = response.Data[0];
                    return(response);
                }
                catch (Exception ex)
                {
                    response.Erros.Add("Erro ao adicionar um funcionário. Contate o admin!");
                    File.WriteAllText("log.txt", ex.Message);
                    return(response);
                }
            }
        }
        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);

            using (LocadoraDBContext db = new LocadoraDBContext())
            {
                try
                {
                    db.Funcionarios.Add(item);
                    db.SaveChanges();
                    response.Sucesso = true;
                    return(response);
                }
                catch (System.Data.Entity.Infrastructure.DbUpdateException ex)
                {
                    response.Sucesso = false;

                    if (ex.InnerException.ToString().Contains("IX_CPF"))
                    {
                        response.Erros.Add("CPF já cadastrado.");
                    }
                    else if (ex.InnerException.ToString().Contains("IX_Email"))
                    {
                        response.Erros.Add("Email já cadastrado.");
                    }
                    else
                    {
                        response.Erros.Add("Erro ao adicionar um funcionário. Contate o admin!");
                        File.WriteAllText("log.txt", ex.Message);
                    }

                    return(response);
                }
                catch (Exception ex)
                {
                    response.Erros.Add("Erro ao adicionar um funcionário. Contate o admin!");
                    File.WriteAllText("log.txt", ex.Message);
                    return(response);
                }
            }
        }
Example #9
0
        public DataResponse <Filme> GetData()
        {
            DataResponse <Filme> response = new DataResponse <Filme>();

            using (LocadoraDBContext db = new LocadoraDBContext())
            {
                try
                {
                    response.Data    = db.Filmes.ToList();
                    response.Sucesso = true;
                    return(response);
                }
                catch (Exception ex)
                {
                    response.Erros.Add("Erro no banco de dados. Contate o admin!");
                    File.WriteAllText("log.txt", ex.Message);
                    return(response);
                }
            }
        }
Example #10
0
 public FilmeController(LocadoraDBContext context)
 {
     _context = context;
 }
Example #11
0
 public LocacaoController(LocadoraDBContext context)
 {
     _context = context;
 }
Example #12
0
 public UsuarioController(LocadoraDBContext context)
 {
     _context = context;
 }
Example #13
0
        public Response EfetuarLocacao(Locacao locacao)
        {
            Response response = new Response();

            if (locacao.Filmes.Count == 0)
            {
                response.Erros.Add("Não é possível realizar a locação sem filmes.");
                response.Sucesso = false;
                return(response);
            }

            TimeSpan ts = DateTime.Now.Subtract(locacao.Cliente.DataNascimento);
            //Calcula idade do cliente
            int idade = (int)(ts.TotalDays / 365);

            //Percorre todos os filmes locados a fim de encontrar algum que o cliente não possa ver
            foreach (Filme filme in locacao.Filmes)
            {
                if ((int)filme.Classificacao > idade)
                {
                    response
                    .Erros
                    .Add("A idade do cliente não corresponde com a classificação indicativa do filme " + filme.Nome);
                }
            }
            //Seta a data da locação com a data atual
            locacao.DataLocacao           = DateTime.Now;
            locacao.DataPrevistaDevolucao = DateTime.Now;

            foreach (Filme filme in locacao.Filmes)
            {
                //Adiciona tempo na devolução de acordo com a data de lançamento
                locacao.DataPrevistaDevolucao = locacao.DataPrevistaDevolucao.AddHours(filme.CalcularDevolucao());

                //Adiciona os preços dos filmes
                locacao.Preco += filme.CalcularPreco();
            }

            if (response.Erros.Count > 0)
            {
                response.Sucesso = false;
                return(response);
            }

            using (LocadoraDBContext db = new LocadoraDBContext())
            {
                try
                {
                    db.Locacoes.Add(locacao);
                    db.SaveChanges();
                    response.Sucesso = true;
                    return(response);
                }
                catch (Exception ex)
                {
                    response.Erros.Add("Erro ao adicionar um cliente. Contate o admin!");
                    File.WriteAllText("log.txt", ex.Message);
                    return(response);
                }
            }
        }
Example #14
0
 public GeneroController(LocadoraDBContext context)
 {
     _context = context;
 }