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)); }
protected virtual Task <bool> IsUserAllowedToPayAsync(Order order, PaymentEto payment) { return(Task.FromResult(order.CustomerUserId == payment.UserId)); }
protected virtual Task <bool> IsStoreIdCorrectAsync(Order order, PaymentEto payment) { return(Task.FromResult( Guid.TryParse(payment.ExtraProperties.GetOrDefault("StoreId")?.ToString(), out var paymentStoreId) && order.StoreId == paymentStoreId)); }