public async Task <ILivro> IncluirLivroNoCarrinho(ICarrinhoLivro CarrinhoLivro, Carrinho Carrinho, Livro Livro) { if (CarrinhoLivro is null) { throw new ArgumentNullException(nameof(CarrinhoLivro)); } if (Carrinho is null) { throw new ArgumentNullException(nameof(Carrinho)); } if (Livro is null) { throw new ArgumentNullException(nameof(Livro)); } ILivro livro = CarrinhoLivro.IncluirLivroCarrinho(this._CarrinhoFactory, Carrinho, Livro); ICarrinho carrinho = (ICarrinho)Carrinho; await this._CarrinhoRepository.AddLivro(CarrinhoLivro, carrinho, livro).ConfigureAwait(false); return(livro); }
public async Task <ICarrinho> ExcluirCarrinho(ICarrinhoLivro CarrinhoLivro, Carrinho Carrinho) { if (CarrinhoLivro is null) { throw new ArgumentNullException(nameof(CarrinhoLivro)); } if (Carrinho is null) { throw new ArgumentNullException(nameof(Carrinho)); } bool result = false; result = CarrinhoLivro.ExcluirCarrinho(this._CarrinhoFactory, Carrinho); ICarrinho carrinho = (ICarrinho)Carrinho; if (result) { await this._CarrinhoRepository.Delete(CarrinhoLivro, carrinho).ConfigureAwait(false); } else { carrinho = null; } return(carrinho); }
public async Task <IPedido> GerarPedido(ICarrinhoLivro CarrinhoLivro, Livros Livros, Pessoa Cliente) { if (CarrinhoLivro is null) { throw new ArgumentNullException(nameof(CarrinhoLivro)); } if (Livros is null || Livros.Count <= 0) { throw new ArgumentNullException(nameof(Livros)); } if (Cliente is null) { throw new ArgumentNullException(nameof(Cliente)); } Pedido fPedido = new Pedido(Cliente, Livros, DateTime.Now); IPedido pedido = CarrinhoLivro.EfetivarPedidoCarinho(this._CarrinhoFactory, fPedido); await this._CarrinhoRepository.AddPedido(CarrinhoLivro, pedido).ConfigureAwait(false); return(pedido); }
public async Task <ICarrinho> CriarCarrinho(ICarrinhoLivro CarrinhoLivro, Carrinho Carrinho) { if (CarrinhoLivro is null) { throw new ArgumentNullException(nameof(CarrinhoLivro)); } ICarrinho carrinho = CarrinhoLivro.IncluirCarrinho(this._CarrinhoFactory, Carrinho); await this._CarrinhoRepository.Add(CarrinhoLivro, carrinho).ConfigureAwait(false); return(carrinho); }
public async Task Executar(IncluirLivroCarrinhoEntrada entrada) { if (entrada is null) { this._IncluirLivroCarrinhoSaidaPort.WriteError("Entrada não pode ser nula"); return; } ICarrinhoLivro CarrinhoLivro = await this._CarrinhoRepository.GetCarrinhoLivro().ConfigureAwait(false); if (CarrinhoLivro is null) { this._IncluirLivroCarrinhoSaidaPort.WriteError("Carrinho não existe."); return; } ILivro livro = await this._CarrinhoService.IncluirLivroNoCarrinho(CarrinhoLivro, entrada.Carrinho, entrada.Livro); await this._unitOfWork.Save().ConfigureAwait(false); this.BuildOutput(livro); }
public async Task Executar(GerarPedidoEntrada entrada) { if (entrada is null) { this._GerarPedidoSaidaPort.WriteError("Entrada não pode ser nula"); return; } ICarrinhoLivro CarrinhoLivro = await this._CarrinhoRepository.GetCarrinhoLivro().ConfigureAwait(false); if (CarrinhoLivro is null) { this._GerarPedidoSaidaPort.WriteError("Carrinho não existe."); return; } IPedido pedido = await this._CarrinhoService.GerarPedido(CarrinhoLivro, entrada.livros, entrada.Cliente); await this._unitOfWork.Save().ConfigureAwait(false); this.BuildOutput(pedido); }
public async Task <ILivro> RemoverLivroDoCarrinho(ICarrinhoLivro CarrinhoLivro, Carrinho Carrinho, Livro Livro) { if (CarrinhoLivro is null) { throw new ArgumentNullException(nameof(CarrinhoLivro)); } if (Carrinho is null) { throw new ArgumentNullException(nameof(Carrinho)); } if (Livro is null) { throw new ArgumentNullException(nameof(Livro)); } bool result = CarrinhoLivro.ExcluirLivroCarrinho(this._CarrinhoFactory, Carrinho, Livro); ICarrinho carrinho = (ICarrinho)Carrinho; ILivro livro = (ILivro)Livro; if (result) { await this._CarrinhoRepository.DeleteLivro(CarrinhoLivro, carrinho, livro).ConfigureAwait(false); } else { livro = null; } return(livro); }