Esempio n. 1
0
        public async Task <IActionResult> ConfirmSubscription([FromQuery] string token)
        {
            using (var transaction = _paymentsUnitOfWork.BeginTransaction())
            {
                try
                {
                    var subscription = await _paymentsUnitOfWork.SubscriptionRepository
                                       .GetSubscriptions()
                                       .Where(x => x.PayPalAgreementId == token)
                                       .SingleOrDefaultAsync();

                    subscription.Status = SubscriptionStatus.Active;
                    _paymentsUnitOfWork.SubscriptionRepository.Update(subscription);
                    await _paymentsUnitOfWork.SaveAsync();

                    await _subscriptionEventService.PublishSubscriptionEventAsync(subscription.ProductName, subscription.InfluencedLogin);

                    transaction.Commit();
                }
                catch (Exception e)
                {
                    transaction.Rollback();
                }
            }
            //todo show success page
            return(Ok());
        }