Пример #1
0
        private bool TakePayment(OrderCommand order, decimal price)
        {
            var paymentProvider = paymentProviders.Create(order.PaymentTypeId);

            return(paymentProvider
                   .Map(provider => paymentGateway.Pay(provider, 1234, price))
                   .IfNone(false));
        }
Пример #2
0
        public OrderCommandResult Handle(OrderCommand order)
        {
            var items = FindOrderedItems(order);

            var price = items.Sum(x => x.Price);

            bool paidOk = TakePayment(order, price);

            return(paidOk
                ? OrderCommandResult.Success(items.ToArray())
                : OrderCommandResult.Failed());
        }
Пример #3
0
 private IEnumerable <MenuItem> FindOrderedItems(OrderCommand order)
 => context.MenuItems.Where(x => order.OrderedDishes.Contains(x.Id));