public IDisposableDependencyObjectWrapper <IPaymentGatewayManager> Create(SubscriptionPaymentGatewayType gateway) { switch (gateway) { case SubscriptionPaymentGatewayType.Paypal: return(IocManager.Instance.ResolveAsDisposable <PayPalGatewayManager>()); default: throw new Exception("Can not create IPaymentGatewayManager for given gateway: " + gateway); } }
public void RemoveCacheItem(SubscriptionPaymentGatewayType gateway, string paymentId) { var key = GetCacheKey(gateway, paymentId); var cacheItem = GetCacheItemOrNull(gateway, paymentId); if (cacheItem == null) { return; } _cacheManager.GetCache(PaymentCacheItem.CacheName).Remove(key); }
public async Task <SubscriptionPayment> UpdateByGatewayAndPaymentIdAsync(SubscriptionPaymentGatewayType gateway, string paymentId, int?tenantId, SubscriptionPaymentStatus status) { var payment = await SingleAsync(p => p.PaymentId == paymentId && p.Gateway == gateway); payment.Status = status; if (tenantId.HasValue) { payment.TenantId = tenantId.Value; } return(payment); }
public async Task <SubscriptionPayment> GetByGatewayAndPaymentIdAsync(SubscriptionPaymentGatewayType gateway, string paymentId) { return(await SingleAsync(p => p.PaymentId == paymentId && p.Gateway == gateway)); }
private static string GetCacheKey(SubscriptionPaymentGatewayType gateway, string paymentId) { return(gateway + "_" + paymentId); }
public virtual PaymentCacheItem GetCacheItemOrNull(SubscriptionPaymentGatewayType gateway, string paymentId) { return(_cacheManager .GetCache(PaymentCacheItem.CacheName) .GetOrDefault <string, PaymentCacheItem>(GetCacheKey(gateway, paymentId))); }
public static SubscriptionPaymentStatus GetPaymentStatus(this SubscriptionPaymentGatewayType gateway, string externalPaymentStatus) { return(gateway.CreatePaymentGatewayPaymentStatusConverter().ConvertToSubscriptionPaymentStatus(externalPaymentStatus)); }
private static IPaymentGatewayPaymentStatusConverter CreatePaymentGatewayPaymentStatusConverter(this SubscriptionPaymentGatewayType gateway) { switch (gateway) { case SubscriptionPaymentGatewayType.Paypal: return(new PayPalPaymentGatewayPaymentStatusConverter()); default: throw new Exception("Unknown payment gatwway: " + gateway); } }
public PaymentCacheItem(SubscriptionPaymentGatewayType gateWay, PaymentPeriodType paymentPeriodType, string paymentId) { GateWay = gateWay; PaymentId = paymentId; PaymentPeriodType = paymentPeriodType; }
private async Task <string> ExecutePaymentAsync(int editionId, PaymentPeriodType paymentPeriodType, SubscriptionPaymentGatewayType gateway) { var data = Request.Form.ToDictionary(q => q.Key, q => string.Join(",", q.Value)); var result = await _paymentAppService.ExecutePayment(new ExecutePaymentDto { EditionId = editionId, EditionPaymentType = EditionPaymentType.NewRegistration, Gateway = gateway, AdditionalData = data }); var paymentId = result.GetId(); _paymentCache.AddCacheItem(new PaymentCacheItem(gateway, paymentPeriodType, paymentId)); return(paymentId); }
public string GetAdditionalData(SubscriptionPaymentGatewayType gateway, string key) { return(Edition.AdditionalData[gateway][key]); }