Пример #1
0
        public void ProcessCreditsPurchase(PurchaseModel purchaseModel, int?userId = null, PromoCode promoCode = null)
        {
            try
            {
                var numberOfCredits = purchaseModel.Quantity;
                var creditsModel    = new PurchaseCreditsViewModel
                {
                    NumberOfCredits = numberOfCredits
                };

                var userCreditPack = new UserCreditPack
                {
                    UserId          = userId ?? _authentication.CurrentUserId,
                    NumberOfCredits = numberOfCredits,
                    TotalPrice      = promoCode?.TotalPrice ?? creditsModel.TotalPrice
                };

                _userCreditPacksRepository.Create(userCreditPack);
                userCreditPack.User = _usersRepository.Find(_authentication.CurrentUserId);

                var contact = _contactService.Find(purchaseModel.ContactId);

                SendEmailToVibrantHealth(userCreditPack, promoCode);
                SendEmailToCustomer(userCreditPack, contact, promoCode);
            }
            catch (Exception ex)
            {
                _logger.Error($"MembershipService => ProcessPurchase => Purchase failed: {ex.GetFullErrorMessage()}");
                SendEmailToVibrantHealthAboutFailure(purchaseModel, ex.GetFullErrorMessage());
                throw ex;
            }
        }
Пример #2
0
 public ActionResult PurchaseCredits(PurchaseCreditsViewModel model)
 {
     return(View(model));
 }