public PartialViewResult SendFriendshipRequest(int? key)
        {
            FriendRequestCreateViewModel model;
            if (key.HasValue)
            {
                model = new FriendRequestCreateViewModel();
                model.Key = key.Value;
            }
            else
            {
                this.TempData[Constants.TempDataErrorMessage] = "User is missing.";
                return this.PartialView("_ErrorModal");
            }

            return this.PartialView("_FriendshipRequest", model);
        }
        public ActionResult SendFriendshipRequest(FriendRequestCreateViewModel viewModel)
        {
            bool result = true;
            var user = User.Identity as CustomIdentity;

            if (viewModel != null)
            {
                try
                {
                    User sender = this._membershipService.GetUserByKey(user.Id);
                    User receiver =
                        this._membershipService.GetUserByKey(viewModel.Key.GetValueOrDefault());
                    this._friendshipService.SendRequest(sender, receiver);
                }
                catch (Exception ex)
                {
                    this.TempData[Constants.TempDataErrorMessage] = ex.Message;
                    return this.PartialView("_ErrorModal");
                }

            }

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

            return this.PartialView("_Success");
        }
        public ActionResult RemoveFriend(FriendRequestCreateViewModel viewModel)
        {
            var user = User.Identity as CustomIdentity;

            if (viewModel != null)
            {
                try
                {
                    User firstFriend = this._membershipService.GetUserByKey(user.Id);
                    User secondFriend =
                        this._membershipService.GetUserByKey(viewModel.Key.GetValueOrDefault());
                    this._friendshipService.RemoveFriend(firstFriend, secondFriend);
                }
                catch (Exception ex)
                {
                    this.TempData[Constants.TempDataErrorMessage] = ex.Message;
                    return this.PartialView("_ErrorModal");
                }
            }

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