Пример #1
0
        public async Task Process(RemoveBookInput input)
        {
            Book book = await bookReadOnlyRepository.Get(input.BookId);

            if (book == null)
            {
                throw new BookNotFoundException($"The book {input.BookId} does not exist.");
            }

            Basket basket = (input.BasketId != null)? await basketReadOnlyRepository.Get(input.BasketId):new Basket();

            Removal removal = new Removal(book.Id);

            basket.RemoveBook(removal);

            await basketWriteOnlyRepository.Update(basket);

            OrderOutput      orderResponse = outputConverter.Map <OrderOutput>(removal);
            RemoveBookOutput output        = new RemoveBookOutput(orderResponse, basket.GetTotalPrice().Value);

            outputBoundary.Populate(output);
        }