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; } }
public ActionResult PurchaseCredits(PurchaseCreditsViewModel model) { return(View(model)); }