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