public PartialViewResult Show(int? id)
        {
            var currUser = GetCurrentUser();
            var reqUser = GetUserByIdOrCurrent(id);
            var model = new ContactProfileVm(reqUser);
            using (var connect = new ConnectService())
            {
                var myConn = connect.GetConnectReqIds(ConnectStatusType.Accepted);
                if (reqUser.UserId != currUser.UserId && !currUser.IsAdmin())
                {
                    byte code = 0;
                    if (myConn.Contains(currUser.UserId)) code |= (0x01 << (byte)VisibilityType.Connections);
                    if (currUser.IsAlumni()) code |= (0x01 << (byte)VisibilityType.Alumni);
                    if (currUser.IsStudent()) code |= (0x01 << (byte)VisibilityType.Student);
                    if (currUser.IsStaff()) code |= (0x01 << (byte)VisibilityType.Staff);
                    if ((code & reqUser.MobileVisibility) == 0)
                    {
                        model.MobileNumber = "<NA>";
                    }

                    if ((code & reqUser.EmailVisibility) == 0)
                    {
                        model.Email = "<NA>";
                    }

                    if ((code & reqUser.HomePhoneVisibility) == 0)
                    {
                        model.HomePhone = "<NA>";
                    }
                }
            }
            // TODO email visibility
            ViewData[Constants.ProfileEditKey] = (currUser.UserId == reqUser.UserId);
            return PartialView(model);
        }
        public ActionResult Edit(ContactProfileVm model)
        {
            JsonResult result;
            try
            {
                if (!string.IsNullOrEmpty(model.Email) && CurrentUser.Email != model.Email)
                {
                    _userService.ValidateEmailUnique(model.Email);
                }

                result = UpdateUserSubProfile(model);
            }
            catch (SimpleException ex)
            {
                ModelState.AddModelError("", ex.Message);
                result = GetErrorMsgJSON();
            }
            return result;
        }
 public PartialViewResult Edit()
 {
     var user = GetCurrentUser();
     var model = new ContactProfileVm(user);
     return PartialView(model);
 }