protected virtual decimal GetChangedBalance(PaymentItemEto paymentItem)
        {
            var changedBalance = paymentItem.OriginalPaymentAmount;

            if (!changedBalance.IsBetween(decimal.Zero, PrepaymentConsts.AccountMaxBalance))
            {
                throw new AmountOverflowException(decimal.Zero, PrepaymentConsts.AccountMaxBalance);
            }

            return(changedBalance);
        }
Esempio n. 2
0
 protected virtual Task <bool> IsStoreIdCorrectAsync(Order order, PaymentItemEto paymentItem)
 {
     return(Task.FromResult(
                Guid.TryParse(paymentItem.GetProperty <string>("StoreId"), out var paymentStoreId) &&
                order.StoreId == paymentStoreId));
 }
Esempio n. 3
0
 protected virtual Task <bool> IsPaymentPriceCorrectAsync(Order order, PaymentItemEto paymentItem)
 {
     return(Task.FromResult(order.TotalPrice == paymentItem.OriginalPaymentAmount));
 }
Esempio n. 4
0
 public virtual async Task <bool> IsValidPaymentAsync(Order order, PaymentEto payment, PaymentItemEto paymentItem)
 {
     return(await IsStoreIdCorrectAsync(order, paymentItem) &&
            await IsPaymentPriceCorrectAsync(order, paymentItem) &&
            await IsUserAllowedToPayAsync(order, payment));
 }