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); } } }
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); } } }
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); } } }
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); } } }
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); } } }
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); } } }
public FilmeController(LocadoraDBContext context) { _context = context; }
public LocacaoController(LocadoraDBContext context) { _context = context; }
public UsuarioController(LocadoraDBContext context) { _context = context; }
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); } } }
public GeneroController(LocadoraDBContext context) { _context = context; }