public ActionResult Subscribe(SubscriptionCreateViewModel viewModel)
        {
            var user = User.Identity as CustomIdentity;
            bool result = false;

            if (viewModel != null)
            {
                try
                {
                    User subscriber = this._membershipService.GetUserByKey(user.Id);
                    User target = this._membershipService.GetUserByKey(viewModel.Key);
                    this._subscriptionService.AddSubscription(subscriber, target);
                    result = true;
                }
                catch (Exception ex)
                {
                    this.TempData[Constants.TempDataErrorMessage] = ex.Message;
                    return this.PartialView("_ErrorModal");
                }
            }

            if (result)
            {
                return this.Json(new { success = result });
            }

            return this.PartialView("_Success");
        }
        public PartialViewResult Subscribe(int? key)
        {
            SubscriptionCreateViewModel result = null;
            if (key.HasValue)
            {
                result = new SubscriptionCreateViewModel();
                result.UserKey = key.Value;
            }
            else
            {
                this.TempData[Constants.TempDataErrorMessage] = "User is missing.";
                return this.PartialView("_ErrorModal");
            }

            return this.PartialView("_Subscribe", result);
        }