public ActionResult DeleteProfile([DataSourceRequest] DataSourceRequest dsRequest,
                                          ProfileAdminViewModel ProfileAdminViewModel)
        {
            var userProfile = db.UserProfiles.Find(ProfileAdminViewModel.Id);

            if (userProfile != null &&
                ModelState.IsValid &&
                userProfile.UserId != WebSecurity.CurrentUserId)
            {
                // possible performance issue

                var endorsements = db.Endorsements
                                   .Where(x => x.Endorser.UserId == userProfile.UserId);

                foreach (var endorsement in endorsements)
                {
                    db.Endorsements.Remove(endorsement);
                }

                userProfile.Following.Clear();
                userProfile.Followers.Clear();

                db.Entry(userProfile).State = EntityState.Modified;
                db.UserProfiles.Remove(userProfile);
                db.SaveChanges();
            }

            return(Json(ModelState.ToDataSourceResult()));
        }
        public ActionResult UpdateProfile([DataSourceRequest] DataSourceRequest dsRequest,
                                          ProfileAdminViewModel profileAdminViewModel)
        {
            var userProfile = db.UserProfiles.Find(profileAdminViewModel.Id);

            if (userProfile != null && ModelState.IsValid)
            {
                userProfile.FirstName           = profileAdminViewModel.FirstName;
                userProfile.LastName            = profileAdminViewModel.LastName;
                userProfile.Visibility          = profileAdminViewModel.Visibility;
                userProfile.EducationVisibility = profileAdminViewModel.EducationVisibility;
                userProfile.JobsVisibility      = profileAdminViewModel.JobVisibility;
                userProfile.SkillVisibility     = profileAdminViewModel.SkillVisibility;
                userProfile.Email = profileAdminViewModel.Email;
                db.Entry <UserProfile>(userProfile).State = EntityState.Modified;
                db.SaveChanges();
            }

            return(Json(ModelState.ToDataSourceResult()));
        }