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()); }