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"); }
private void AdicionaLivro(Livro livro) { using (var ld = new BibliotecaDatabase()) { Debug.WriteLine(ld.Database.Connection.ConnectionString); ld.Livros.Add(livro); ld.SaveChanges(); } }
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"); } }
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 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 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 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"); }