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