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); }
protected virtual Task <bool> IsStoreIdCorrectAsync(Order order, PaymentItemEto paymentItem) { return(Task.FromResult( Guid.TryParse(paymentItem.GetProperty <string>("StoreId"), out var paymentStoreId) && order.StoreId == paymentStoreId)); }
protected virtual Task <bool> IsPaymentPriceCorrectAsync(Order order, PaymentItemEto paymentItem) { return(Task.FromResult(order.TotalPrice == paymentItem.OriginalPaymentAmount)); }
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)); }