コード例 #1
0
        /// <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);
        }
コード例 #2
0
        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));
        }
コード例 #3
0
        /// <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);
        }