Beispiel #1
0
        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);
        }
Beispiel #2
0
        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);
        }
Beispiel #3
0
        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);
        }
Beispiel #4
0
        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);
        }
Beispiel #5
0
        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);
        }
Beispiel #6
0
        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);
        }
Beispiel #7
0
        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);
        }