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);
            }
        }
Ejemplo n.º 2
0
        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));
 }
Ejemplo n.º 5
0
 private static string GetCacheKey(SubscriptionPaymentGatewayType gateway, string paymentId)
 {
     return(gateway + "_" + paymentId);
 }
Ejemplo n.º 6
0
 public virtual PaymentCacheItem GetCacheItemOrNull(SubscriptionPaymentGatewayType gateway, string paymentId)
 {
     return(_cacheManager
            .GetCache(PaymentCacheItem.CacheName)
            .GetOrDefault <string, PaymentCacheItem>(GetCacheKey(gateway, paymentId)));
 }
Ejemplo n.º 7
0
 public static SubscriptionPaymentStatus GetPaymentStatus(this SubscriptionPaymentGatewayType gateway, string externalPaymentStatus)
 {
     return(gateway.CreatePaymentGatewayPaymentStatusConverter().ConvertToSubscriptionPaymentStatus(externalPaymentStatus));
 }
Ejemplo n.º 8
0
        private static IPaymentGatewayPaymentStatusConverter CreatePaymentGatewayPaymentStatusConverter(this SubscriptionPaymentGatewayType gateway)
        {
            switch (gateway)
            {
            case SubscriptionPaymentGatewayType.Paypal:
                return(new PayPalPaymentGatewayPaymentStatusConverter());

            default:
                throw new Exception("Unknown payment gatwway: " + gateway);
            }
        }
Ejemplo n.º 9
0
 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);
        }
Ejemplo n.º 11
0
 public string GetAdditionalData(SubscriptionPaymentGatewayType gateway, string key)
 {
     return(Edition.AdditionalData[gateway][key]);
 }