public async Task <ViewResult> Index() { ViewBag.Subscriptions = await SubscriptionsFacade.UserActiveSubscriptionsAsync(User.Identity.GetUserId()); ViewBag.PaymentDetails = await SubscriptionsFacade.DefaultCreditCard(User.Identity.GetUserId()); ViewBag.Invoices = await InvoiceDataService.UserInvoicesAsync(User.Identity.GetUserId()); return(View()); }
private async Task UpdateSubscriptionTax(string userId, decimal tax) { var user = await UserManager.FindByIdAsync(userId); var subscription = (await SubscriptionsFacade.UserActiveSubscriptionsAsync(userId)).FirstOrDefault(); if (subscription != null && subscription.TaxPercent != tax) { await SubscriptionsFacade.UpdateSubscriptionTax(user, subscription.StripeId, tax); } }
public async Task <ViewResult> ChangeSubscription() { var currentSubscription = (await SubscriptionsFacade.UserActiveSubscriptionsAsync(User.Identity.GetUserId())).FirstOrDefault(); var model = new ChangeSubscriptionViewModel { SubscriptionPlans = await SubscriptionPlansFacade.GetAllAsync(), CurrentSubscription = currentSubscription != null ? currentSubscription.SubscriptionPlan.Id : string.Empty }; return(View(model)); }
public async Task <ViewResult> Index() { var userId = User.Identity.GetUserId(); ViewBag.Subscriptions = await SubscriptionsFacade.UserActiveSubscriptionsAsync(User.Identity.GetUserId()); ViewBag.PaymentDetails = await SubscriptionsFacade.DefaultCreditCard(User.Identity.GetUserId()); ViewBag.Invoices = await InvoiceDataService.UserInvoicesAsync(User.Identity.GetUserId()); ViewBag.BillingAddress = (await UserManager.FindByIdAsync(userId)).BillingAddress; return(View()); }
public async Task <ActionResult> ReActivateSubscription() { var currentSubscription = (await SubscriptionsFacade.UserActiveSubscriptionsAsync(User.Identity.GetUserId())).FirstOrDefault(); var user = await UserManager.FindByIdAsync(User.Identity.GetUserId()); if (currentSubscription != null && await SubscriptionsFacade.UpdateSubscriptionAsync(user.Id, user.StripeCustomerId, currentSubscription.SubscriptionPlanId)) { // TempData.Add("flash", new FlashSuccessViewModel("Your subscription plan has been re-activated.")); } else { // TempData.Add("flash", new FlashDangerViewModel("Ooops! There was a problem re-activating your subscription. Please, try again.")); } return(RedirectToAction("Index")); }
public async Task <ActionResult> CancelSubscription(CancelSubscriptionViewModel model) { if (ModelState.IsValid) { var currentSubscription = (await SubscriptionsFacade.UserActiveSubscriptionsAsync(User.Identity.GetUserId())).FirstOrDefault(); var user = await UserManager.FindByIdAsync(User.Identity.GetUserId()); DateTime?endDate; // Because we are passing CancelAtTheEndOfPeriod to EndSubscription, we get the date when the subscription will be cancelled if (currentSubscription != null && (endDate = await SubscriptionsFacade.EndSubscriptionAsync(currentSubscription.Id, user, true, model.Reason)) != null) { // TempData.Add("flash", new FlashSuccessViewModel("Your subscription has been cancelled.")); } else { // TempData.Add("flash", new FlashDangerViewModel("Sorry, there was a problem cancelling your subscription.")); } return(RedirectToAction("Index", "Billing")); } return(View(model)); }