public void ConfirmarAluguel(Aluguel aluguel)
        {
            // TODO: incluir mensagem ao resources
            if (aluguel.Livros == null || aluguel.Livros.Count <= 0)
            {
                throw new ApplicationException("Nenhum livro selecionado para o aluguel.");
            }

            using (ISession session = NHibernateUtils.OpenSession())
            {
                using (ITransaction tran = session.BeginTransaction())
                {
                    session.Save(aluguel);

                    foreach (Livro livro in aluguel.Livros)
                    {
                        livro.QuantidadeDisponivel--;
                        LivroRepository.GetInstance().Update(livro);
                    }

                    CarrinhoRepository.GetInstance().LimparCarrinho(aluguel.Usuario);

                    tran.Commit();
                }
            }
        }
Ejemplo n.º 2
0
        public static LivroRepository GetInstance()
        {
            if (instancia == null)
            {
                instancia = new LivroRepository();
            }

            return(instancia);
        }
        public void AdicionarLivroAoCarrinho(int codigoLivro, Usuario user)
        {
            Carrinho carrinho = Get(user);

            bool add = false;

            if (carrinho == null)
            {
                add      = true;
                carrinho = new Carrinho()
                {
                    Usuario = user
                };
            }

            Livro livro = LivroRepository.GetInstance().GetLivro(codigoLivro);

            if (livro == null)
            {
                throw new ApplicationException(BP.Resources.Resources.Carrinho_CodigoLivroInvalido);
            }

            if (livro.QuantidadeDisponivel <= 0)
            {
                throw new ApplicationException(BP.Resources.Resources.Carrinho_LivroNaoDisponivel);
            }

            if (carrinho.Livros == null)
            {
                carrinho.Livros = new List <Livro>();
            }

            foreach (Livro lv in carrinho.Livros)
            {
                if (lv.CodLivro == codigoLivro)
                {
                    throw new ApplicationException(BP.Resources.Resources.Carrinho_LivroJaAdicionado);
                }
            }

            carrinho.Livros.Add(livro);

            if (add)
            {
                this.Add(carrinho);
            }
            else
            {
                this.Update(carrinho);
            }
        }
        public void RegistrarDevolucao(Aluguel aluguel)
        {
            aluguel.DataDevolucao = DateTime.Now;

            using (ISession session = NHibernateUtils.OpenSession())
            {
                using (ITransaction tran = session.BeginTransaction())
                {
                    session.Update(aluguel);

                    foreach (Livro livro in aluguel.Livros)
                    {
                        livro.QuantidadeDisponivel++;
                        LivroRepository.GetInstance().Update(livro);
                    }

                    tran.Commit();
                }
            }
        }