public ActionResult Edit(UserProfileViewModel ViewModel)
 {
     if (ModelState.IsValid)
     {
         UserProfile userprofile = db.UserProfiles.Find(ViewModel.profile.UserId);
         userprofile.UserRoles.Clear();
         userprofile.UserRoles.Add(db.UserRoles.Find(ViewModel.role_id));
         db.Entry(userprofile).CurrentValues.SetValues(ViewModel.profile);
         db.SaveChanges();
         return RedirectToAction("Index");
     }
     ViewBag.roleList = new SelectList(db.UserRoles, "RoleId", "RoleName");
     return View(ViewModel);
 }
        ////
        //// GET: /UserProfile/Create
        //public ActionResult Create()
        //{
        //    return View();
        //}
        ////
        //// POST: /UserProfile/Create
        //[HttpPost]
        //[ValidateAntiForgeryToken]
        //public ActionResult Create(UserProfile userprofile)
        //{
        //    if (ModelState.IsValid)
        //    {
        //        db.UserProfiles.Add(userprofile);
        //        db.SaveChanges();
        //        return RedirectToAction("Index");
        //    }
        //    return View(userprofile);
        //}
        //
        // GET: /UserProfile/Edit/5
        public ActionResult Edit(int id = 0)
        {
            UserProfileViewModel ViewModel = new UserProfileViewModel();
            var userprofile = db.UserProfiles.Find(id);

            if (userprofile == null)
            {
                return HttpNotFound("User Profile not found.");
            }

            ViewModel.profile = userprofile;
            if (userprofile.UserRoles.Count == 1)
            {
                ViewModel.role_id = userprofile.UserRoles.SingleOrDefault().RoleId;
            }
            ViewBag.roleList = new SelectList(db.UserRoles, "RoleId", "RoleName");
            return View(ViewModel);
        }