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 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); } } }
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); } } }