Esempio n. 1
0
        public async Task SendOrganizationPaymentFailedAsync() {
            var user = UserData.GenerateSampleUser();
            var organization = OrganizationData.GenerateSampleOrganization(_billingManager, _plans);

            await _mailer.SendOrganizationPaymentFailedAsync(user, organization);
            await RunMailJobAsync();
        }
        private async Task InvoicePaymentFailedAsync(StripeInvoice inv)
        {
            var org = await _organizationRepository.GetByStripeCustomerIdAsync(inv.CustomerId).AnyContext();

            if (org == null)
            {
                _logger.Error("Unknown customer id in payment failed notification: {0}", inv.CustomerId);
                return;
            }

            var user = await _userRepository.GetByIdAsync(org.BillingChangedByUserId).AnyContext();

            if (user == null)
            {
                _logger.Error("Unable to find billing user: {0}", org.BillingChangedByUserId);
                return;
            }

            _logger.Info("Stripe payment failed. Customer: {0} Org: {1} Org Name: {2} Email: {3}", inv.CustomerId, org.Id, org.Name, user.EmailAddress);
            await _mailer.SendOrganizationPaymentFailedAsync(user, org).AnyContext();
        }