public async Task <ActionResult> Payment(int?upgradeEditionId, EditionPaymentType editionPaymentType) { var paymentInfo = await _paymentAppService.GetPaymentInfo(new PaymentInfoInput { UpgradeEditionId = upgradeEditionId }); return(View("~/Views/Payment/Index.cshtml", new PaymentViewModel { Edition = paymentInfo.Edition, AdditionalPrice = paymentInfo.AdditionalPrice, EditionPaymentType = editionPaymentType })); }
private async Task <IActionResult> UpgradeOrExtend(int upgradeEditionId, EditionPaymentType editionPaymentType) { var paymentInfo = await _paymentAppService.GetPaymentInfo(new PaymentInfoInput { UpgradeEditionId = upgradeEditionId }); var edition = await _tenantRegistrationAppService.GetEdition(upgradeEditionId); var model = new PaymentViewModel { Edition = edition, AdditionalPrice = paymentInfo.AdditionalPrice, EditionPaymentType = editionPaymentType }; return(View("Index", model)); }
private async Task <IActionResult> UpgradeOrExtend(int upgradeEditionId, EditionPaymentType editionPaymentType) { var paymentInfo = await _paymentAppService.GetPaymentInfo(new PaymentInfoInput { UpgradeEditionId = upgradeEditionId }); var edition = await _tenantRegistrationAppService.GetEdition(upgradeEditionId); if (editionPaymentType == EditionPaymentType.Upgrade && await UpgradeIsFree(upgradeEditionId)) { await _subscriptionAppService.UpgradeTenantToEquivalentEdition(upgradeEditionId); return(RedirectToAction("Index", "SubscriptionManagement", new { area = "AppAreaName" })); } var model = new PaymentViewModel { Edition = edition, AdditionalPrice = paymentInfo.AdditionalPrice, EditionPaymentType = editionPaymentType }; return(View("Index", model)); }
public async Task <IActionResult> Upgrade(int upgradeEditionId) { if (!AbpSession.TenantId.HasValue) { throw new ArgumentNullException(); } SubscriptionPaymentType subscriptionPaymentType; using (CurrentUnitOfWork.SetTenantId(null)) { var tenant = await _tenantManager.GetByIdAsync(AbpSession.GetTenantId()); subscriptionPaymentType = tenant.SubscriptionPaymentType; if (tenant.EditionId.HasValue) { var currentEdition = await _editionManager.GetByIdAsync(tenant.EditionId.Value); if (((SubscribableEdition)currentEdition).IsFree) { return(RedirectToAction("Buy", "Payment", new { tenantId = AbpSession.GetTenantId(), editionId = upgradeEditionId })); } } } var paymentInfo = await _paymentAppService.GetPaymentInfo(new PaymentInfoInput { UpgradeEditionId = upgradeEditionId }); var edition = await _tenantRegistrationAppService.GetEdition(upgradeEditionId); var lastPayment = await _subscriptionPaymentRepository.GetLastCompletedPaymentOrDefaultAsync( tenantId : AbpSession.GetTenantId(), gateway : null, isRecurring : null); var model = new UpgradeEditionViewModel { Edition = edition, AdditionalPrice = paymentInfo.AdditionalPrice, SubscriptionPaymentType = subscriptionPaymentType, PaymentPeriodType = lastPayment.GetPaymentPeriodType() }; if (subscriptionPaymentType.IsRecurring()) { model.PaymentGateways = new List <PaymentGatewayModel> { new PaymentGatewayModel { GatewayType = lastPayment.Gateway, SupportsRecurringPayments = true } }; } else { model.PaymentGateways = _paymentAppService.GetActiveGateways(new GetActiveGatewaysInput()); } return(View("Upgrade", model)); }