public ActionResult Reservar(int livroId) { using (var bd = new BibliotecaDatabase()) { var livro = bd.Livros.Find(livroId); //Busca o usuário logado na base var usuario = (from u in bd.Usuarios where u.Login.Equals(User.Identity.Name) select u).FirstOrDefault(); if(usuario == null) { ErroReserva erro = new ErroReserva(); erro.mensagem = "Não foi possível encontrar o usuário '" + User.Identity.Name + "'. É possível que a base de usuários e o controle de login estejam desincronizados."; return View("Erro", erro); } ReservaLivro reserva = new ReservaLivro(); reserva.LivroRelacionado = livro; reserva.UsuarioDeb = usuario; reserva.Situacao = true; reserva.DtReserva = DateTime.Today; bd.Reservas.Add(reserva); bd.SaveChanges(); } return View("ReservaEfetuadaComSucesso"); }
public void Devolver(int idEmprestimo) { using (var bd = new BibliotecaDatabase()) { try { var emprestimo = CarregarEmprestimo(idEmprestimo); emprestimo.DevolvidoEm = DateTime.Now; bd.Entry(emprestimo).State = EntityState.Modified; var diasAtraso = CalcularDiasAtraso(emprestimo.DevolverAte, emprestimo.DevolvidoEm.Value); //var diasAtraso = CalcularDiasAtrasoAlternativo(emprestimo.DevolverAte, emprestimo.DevolvidoEm); if (diasAtraso > 0) { var debito = new Debito { DebitoAtivo = true, Emprestimo = emprestimo, UsuarioDeb = emprestimo.UsuarioEmprestimo, DiasAtraso = diasAtraso }; bd.Debitos.Add(debito); } bd.SaveChanges(); } catch (Exception ex) { throw ex; } } }
public ActionResult EfetuarPgto(Debito PgtoDebito) { if (ModelState.IsValid) { using (var bd = new BibliotecaDatabase()) { if (PgtoDebito.DebitoId <= 0) { throw new Exception("Não é possível efetuar o pagamento deste empréstimo. Id desconhecido."); } else { var pgtoAux = RetornaInfoDebito(PgtoDebito.DebitoId); PgtoDebito = pgtoAux; PgtoDebito.DebitoAtivo = false; bd.Entry(PgtoDebito).State = EntityState.Modified; } bd.SaveChanges(); return RedirectToAction("index"); } } return RedirectToAction("index"); }
// // GET: /Reserva/ public static ReservaLivro getReserva(int livroId) { ReservaLivro result = null; using (var bd = new BibliotecaDatabase()) { result = (from r in bd.Reservas.Include("LivroRelacionado").Include("UsuarioDeb") where r.LivroRelacionado.LivroId.Equals(livroId) && r.Situacao.Equals(true) select r).FirstOrDefault(); if (result == null) { result = new ReservaLivro(); result.ReservaLivroId = 0; var livro = bd.Livros.Find(livroId); /*Já engatinha na View o livro sendo reservado*/ result.LivroRelacionado = livro; } } return result; }
public ActionResult CategorizadosPorAutor() { using (var bd = new BibliotecaDatabase()) { var cat = new Categorizador(bd); return View(cat.LivrosPorAutor()); } }
private IEnumerable<Livro> ObterLivros() { using (var bd = new BibliotecaDatabase()) { var query = (from l in bd.Livros select l).Distinct().ToList(); return query.ToList(); } }
public IEnumerable<Usuario> ObterUsuarios() { using (var bd = new BibliotecaDatabase()) { var query = (from u in bd.Usuarios select u).Distinct().ToList(); return query.ToList(); } }
private void AdicionaLivro(Livro livro) { using (var ld = new BibliotecaDatabase()) { Debug.WriteLine(ld.Database.Connection.ConnectionString); ld.Livros.Add(livro); ld.SaveChanges(); } }
// // GET: /Usuario/ public ActionResult Index() { using (var bd = new BibliotecaDatabase()) { var usuarios = bd.Usuarios.ToList(); var usu = usuarios.Select(usuario => new UsuarioViewModel(usuario)); return View(usu); } }
public IEnumerable<Livro> ObterLivrosEmprestados() { using (var bd = new BibliotecaDatabase()) { var query = (from e in bd.Emprestimos.Include("LivroEmprestimo") where !e.DevolvidoEm.HasValue select e.LivroEmprestimo).Distinct().ToList(); return query.ToList(); } }
//Novo metodos para retorna lista de Emprestimo por livro public IEnumerable<Emprestimo> ListEmprestimosDoLivro(int livroId) { using (var bd = new BibliotecaDatabase()) { var query = (from e in bd.Emprestimos where e.LivroEmprestimo.LivroId == livroId && !e.DevolvidoEm.HasValue select e).Distinct().ToList(); return query.ToList(); } }
private Emprestimo ObterEmprestimoDoLivro(int livroId) { using (var bd = new BibliotecaDatabase()) { var query = (from e in bd.Emprestimos where e.LivroEmprestimo.LivroId == livroId && !e.DevolvidoEm.HasValue select e).FirstOrDefault(); return query; } }
//public ActionResult Popular() //{ // var meuUser = new Usuario { Login = "******", Nome = "Luiz Angelo Heinzen", Senha = "segredo", StatusAtivacao = StatusAtivacao.Ativo, TipoUsuario = TipoUsuario.Funcionario }; // var proto = new Usuario { Login = "******", Nome = "Proto(u)suario", Senha = "segredo", StatusAtivacao = StatusAtivacao.Ativo, TipoUsuario = TipoUsuario.Aluno }; // var tioBill = new Usuario { Login = "******", Nome = "Bill Gates", Senha = "segredo", StatusAtivacao = StatusAtivacao.Ativo, TipoUsuario = TipoUsuario.Professor}; // var guerraDosTronos = new Livro { Ano = 2000, Autor = "George R.R. Martin", Preco = 40m, Titulo = "A Guerra dos Tronos" }; // var carrie = new Livro { Ano = 1979, Autor = "Stepen King", Preco = 15m, Titulo = "Carrie, a estranha" }; // var arteGuerra = new Livro { Ano = 1600, Autor = "Sun-Tzu", Preco = 5m, Titulo = "A arte da Guerra" }; // var jogosVorazes = new Livro { Ano = 2003, Autor = "Stephanie Meyer", Preco = 25m, Titulo = "Jogos Vorazes" }; // var demian = new Livro { Ano = 1985, Autor = "Herman Hesse", Preco = 8m, Titulo = "Demian" }; // var hoje = DateTime.Now.Date; // var ontem = hoje.AddDays(-1); // var anteOntem = hoje.AddDays(-2); // var semanaPassada = hoje.AddDays(-7); // var amanha = hoje.AddDays(1); // var depoisDeAmanha = hoje.AddDays(2); // var proximaSemana = hoje.AddDays(7); // using(var bd = new BibliotecaDatabase()) // { // bd.Usuarios.Add(meuUser); // bd.Usuarios.Add(proto); // bd.Usuarios.Add(tioBill); // bd.Livros.Add(guerraDosTronos); // bd.Livros.Add(carrie); // bd.Livros.Add(arteGuerra); // bd.Livros.Add(jogosVorazes); // bd.Livros.Add(demian); // bd.Emprestimos.Add(new Emprestimo { LivroEmprestimo = jogosVorazes, UsuarioEmprestimo = meuUser, RetiradoEm = semanaPassada, DevolverAte = hoje }); // bd.Emprestimos.Add(new Emprestimo { LivroEmprestimo = carrie, UsuarioEmprestimo = meuUser, RetiradoEm = semanaPassada, DevolverAte = ontem }); // bd.Emprestimos.Add(new Emprestimo { LivroEmprestimo = guerraDosTronos, UsuarioEmprestimo = meuUser, RetiradoEm = ontem, DevolverAte = proximaSemana }); // bd.Emprestimos.Add(new Emprestimo { LivroEmprestimo = arteGuerra, UsuarioEmprestimo = tioBill, RetiradoEm = semanaPassada, DevolverAte = proximaSemana }); // bd.SaveChanges(); // } // //Depois os Emprestimos para testar // return RedirectToAction("Index", new DevolucaoViewModel()); //} #endregion public IEnumerable<Usuario> ObterUsuariosComEmprestimo() { using (var bd = new BibliotecaDatabase()) { var query = (from p in bd.Emprestimos where p.DevolvidoEm == null select p.UsuarioEmprestimo).Distinct().ToList(); return query.ToList(); } }
private IEnumerable<Emprestimo> ObterEmprestimosDoUsuario(int usuarioId) { using (var bd = new BibliotecaDatabase()) { var query = (from e in bd.Emprestimos where e.UsuarioEmprestimo.UsuarioId == usuarioId && !e.DevolvidoEm.HasValue select e).Distinct().ToList(); return query.ToList(); } }
public ActionResult ListarHistoricoLivroUsuario(int idUsuario, int idLivro) { using (var bd = new BibliotecaDatabase()) { var query = (from e in bd.Emprestimos.Include(j => j.LivroEmprestimo) where e.LivroEmprestimo.LivroId == idLivro && e.UsuarioEmprestimo.UsuarioId == idUsuario select e ).ToList(); return Json(query.ToList(), JsonRequestBehavior.AllowGet); } }
public ActionResult DescricaoLivro(long livroId) { using (var bd = new BibliotecaDatabase()) { var livro = bd.Livros.Find(livroId); if (Request.IsAjaxRequest()) return PartialView(livro); else return View(livro); } }
public ActionResult Index(long livroId) { using (var bd = new BibliotecaDatabase()) { var livro = (from l in bd.Livros.Include(c => c.Comentarios) where l.LivroId == livroId select l).SingleOrDefault(); return View(livro); } }
public void TesteComJoin() { using (var bd = new BibliotecaDatabase()) { var q = from l in bd.Livros join r in bd.Reservas on l equals r.LivroRelacionado where r.UsuarioDeb.UsuarioId == 1 select l; var livro = q.ToList(); livro.ForEach( l => Console.WriteLine(l.Titulo)); } }
private static IEnumerable<Livro> ObterLivros(string q) { q = q.ToLower(); using (var bd = new BibliotecaDatabase()) { var livros = from livro in bd.Livros select livro; if (!string.IsNullOrEmpty(q)) livros = livros = livros.Where(l => l.Titulo.ToLower().IndexOf(q) >= 0); return livros.ToList(); } }
/// <summary> /// Método que retorna a lista de acordo /// </summary> private static IEnumerable<Debito> ObterDebitos(string NomeUsuario) { NomeUsuario = NomeUsuario.ToLower(); using (var bd = new BibliotecaDatabase()) { IQueryable<Debito> debitos = from debito in bd.Debitos.Include("Emprestimo").Include("Emprestimo.LivroEmprestimo").Include("UsuarioDeb") where debito.DebitoAtivo orderby debito.Emprestimo.DevolvidoEm descending select debito; if (!string.IsNullOrEmpty(NomeUsuario)) debitos = debitos.Where(deb => deb.UsuarioDeb.Nome.ToLower().IndexOf(NomeUsuario) >= 0); return debitos.ToList(); } }
public override object BindModel(ControllerContext controllerContext, ModelBindingContext bindingContext) { var valor = bindingContext.ValueProvider.GetValue(bindingContext.ModelName); if (valor == null || string.IsNullOrEmpty(valor.AttemptedValue)) return base.BindModel(controllerContext, bindingContext); int livroId; if (!int.TryParse(valor.AttemptedValue, out livroId)) return base.BindModel(controllerContext, bindingContext); using (var bd = new BibliotecaDatabase()) { var livro = bd.Livros.Find(livroId); return livro; } }
public ActionResult Novo(UsuarioViewModel usuario) { if (ModelState.IsValid) { using (var bd = new BibliotecaDatabase()) { if (usuario.UsuarioId > 0) { bd.Entry(usuario.ParaEntidade()).State = EntityState.Modified; } else { if (!WebSecurity.UserExists(usuario.Login)) { bd.Usuarios.Add(usuario.ParaEntidade()); WebSecurity.CreateUserAndAccount(usuario.Login, usuario.Senha); if (usuario.TipoUsuario == TipoUsuario.Operador) { Roles.AddUserToRole(usuario.Login, "PodeAdicionarLivro"); Roles.AddUserToRole(usuario.Login, "PodeEmprestar"); } Roles.AddUserToRole(usuario.Login, "PodeComentar"); Roles.AddUserToRole(usuario.Login, "PodeReservar"); } else { return View("Erro"); } } bd.SaveChanges(); return RedirectToAction("index"); } } return View(usuario); }
public ActionResult AdicionarComentario(long livroId, string comentario) { using (var bd = new BibliotecaDatabase()) { var livro = (from l in bd.Livros.Include(c => c.Comentarios) where l.LivroId == livroId select l).SingleOrDefault(); livro.Comentarios.Add(new ComentarioLivro { Comentario = comentario }); bd.SaveChanges(); if (Request.IsAjaxRequest()) { ViewBag.Comentario = comentario; return PartialView(); } return RedirectToAction("Index"); } }
private Emprestimo CarregarEmprestimo(int idEmprestimo) { using (var bd = new BibliotecaDatabase()) { var query = (from e in bd.Emprestimos.Include(j => j.LivroEmprestimo).Include(j => j.UsuarioEmprestimo) where e.EmprestimoId == idEmprestimo select e).FirstOrDefault(); return query; } }
public int CarregarEmprestimo(int idUsuario, int idLivro) { using (var bd = new BibliotecaDatabase()) { var query = (from e in bd.Emprestimos.Include(j => j.LivroEmprestimo) where e.LivroEmprestimo.LivroId == idLivro && e.UsuarioEmprestimo.UsuarioId == idUsuario && !e.DevolvidoEm.HasValue select e.EmprestimoId).FirstOrDefault(); return (int)query; } }
public IEnumerable<Livro> ListarLivrosDoUsuario(int idEmprestimo) { using (var bd = new BibliotecaDatabase()) { var emprestimo = (from e in bd.Emprestimos.Include(j => j.LivroEmprestimo) where e.UsuarioEmprestimo.UsuarioId == idEmprestimo && !e.DevolvidoEm.HasValue select e.LivroEmprestimo).ToList(); return emprestimo; } }
public ActionResult Excluir(long usuarioId) { using (var bd = new BibliotecaDatabase()) { var usuario = bd.Usuarios.Find(usuarioId); bd.Entry(usuario).State = EntityState.Deleted; bd.SaveChanges(); return RedirectToAction("index"); } }
public ActionResult Emprestar(int livroId, int usuarioId) { DateTime hoje = DateTime.Now; string msg = (""); bool reservado = false; try { // Se ocorrer qualquer erro, exibe a mensagem ao usuário, na tela de empréstimos. using (var bd = new BibliotecaDatabase()) { var livro = bd.Livros.Find(livroId); if (livro == null) { msg = ("Não foi possível encontrar o livro: " + livroId); throw new Exception(msg); } // Verifica se o livro está emprestado if (ObterEmprestimoDoLivro(livroId) != null) { msg = ("O livro " + livro.Titulo + ", com código " + livroId + ", já está emprestado"); throw new Exception(msg); } // Verifica se o livro está reservado //Márcio Koch: Ajustada a verificação da reserva do livro. ReservaLivro reserva = ReservaController.getReserva(livroId); reservado = reserva != null && reserva.ReservaLivroId > 0; if (reservado && !reserva.UsuarioDeb.UsuarioId.Equals(usuarioId)) { msg = ("O livro " + livro.Titulo + " está reservado para outro usuário."); throw new Exception(msg); } // Verifica se o usuário existe var usuario = bd.Usuarios.Find(usuarioId); if (usuario == null) { msg = ("Não foi possível encontrar o usuário: " + usuarioId); throw new Exception(msg); } // Verifica a quantidade de livros emprestados para o Usuário e o tipo do usuário. IEnumerable<Emprestimo> emprestimosAtivos = ObterEmprestimosDoUsuario(usuarioId); int quantidadeEmprestada = emprestimosAtivos.Count(); if (PodeEmprestar(usuario, quantidadeEmprestada)) { DateTime prazo = GetPrazo(usuario.TipoUsuario); Emprestimo emprestimo = new Emprestimo { LivroEmprestimo = livro, UsuarioEmprestimo = usuario, RetiradoEm = hoje, DevolverAte = prazo }; bd.Emprestimos.Add(emprestimo); //Márcio Koch - Libera a reserva do livro, caso ele esteja reservado. if (reservado) { reserva = bd.Reservas.Find(reserva.ReservaLivroId); reserva.Situacao = false;//Libera a reserva } bd.SaveChanges(); msg = ("Livro emprestado com sucesso, com prazo até " + prazo + " " + msg); } else { // Exibe mensagem de erro ao usuário. msg = ("O empréstimo não foi efetuado, foi excedido o número de livros emprestados ao usuário. " + msg); throw new Exception(msg); } } } catch { ViewBag.Mensagem = msg; return View("Index", new EmprestimoViewModel()); } ViewBag.Mensagem = msg; return View("Index", new EmprestimoViewModel() ); }
public Categorizador(BibliotecaDatabase bd) { this.bd = bd; }
public IEnumerable<Emprestimo> ObterLivrosDevolvidos() { using (var bd = new BibliotecaDatabase()) { var livrosDevolvidos = (from e in bd.Emprestimos.Include(j => j.LivroEmprestimo) where e.DevolvidoEm != null select e).ToList(); return livrosDevolvidos; } }