/// <summary> /// Handle subscription actions /// </summary> /// <param name="subscriptionAction"></param> /// <param name="subscriptionId"></param> /// <returns></returns> public ResponseModel TriggerSubscriptionAction(SubscriptionEnums.SubscriptionAction subscriptionAction, int subscriptionId) { ResponseModel response; var subscription = GetById(subscriptionId); // If wrong input parameters then returl wrong subscription url if (subscription == null) { return(new ResponseModel { Success = false, Message = T("Subscription_Message_WrongSubscription") }); } WorkContext.CurrentContact.Email = subscription.Email; switch (subscription.Module) { case SubscriptionEnums.SubscriptionModule.Page: response = GetPageSubscriptionResult(subscriptionAction, subscription); break; default: response = new ResponseModel { Success = false, Message = T("Subscription_Message_WrongSubscription") }; break; } return(response); }
public ActionResult Subscription(SubscriptionEnums.SubscriptionAction subscriptionAction, int subscriptionId) { var response = _subscriptionService.TriggerSubscriptionAction(subscriptionAction, subscriptionId); if (response.Success) { switch (subscriptionAction) { case SubscriptionEnums.SubscriptionAction.View: return(Redirect((string)response.Data)); } } return(View("Subscription/Index", response)); }
/// <summary> /// Get page subscription result from action /// </summary> /// <param name="subscriptionAction"></param> /// <param name="subscription"></param> /// <returns></returns> private ResponseModel GetPageSubscriptionResult(SubscriptionEnums.SubscriptionAction subscriptionAction, Subscription subscription) { ResponseModel response; var parameters = SerializeUtilities.Deserialize <SubscriptionPageParameterModel>(subscription.Parameters); var page = _pageService.GetById(parameters.Id); if (page != null) { switch (subscriptionAction) { case SubscriptionEnums.SubscriptionAction.View: response = new ResponseModel { Success = true, Data = "/" + page.FriendlyUrl }; break; case SubscriptionEnums.SubscriptionAction.Remove: var subscriptionManageModel = new SubscriptionManageModel(subscription); response = RemoveRegistration(subscriptionManageModel); if (response.Success) { response.Message = T("Subscription_Message_PageUnsubscribeSuccessfully"); } break; default: response = new ResponseModel { Success = false, Message = T("Subscription_Message_WrongSubscription") }; break; } } else { response = new ResponseModel { Success = false, Message = T("Subscription_Message_WrongSubscription") }; } return(response); }