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)); }
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); }