Beispiel #1
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);
                }
            }
        }
Beispiel #2
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 Response Delete(int id)
        {
            Response response = new Response();

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

            using (LocadoraDBContext db = new LocadoraDBContext())
            {
                try
                {
                    db.Entry(new Funcionario()
                    {
                        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 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);
                }
            }
        }
Beispiel #5
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);
                }
            }
        }