public async Task <ActionResult> Edit([Bind(Include = "Email,Id,LastName,FirstName,PhoneNumber,UserName,UniqueNumber")] AdminViewModels.EditUserViewModel editUser, params string[] selectedRole)
      {
          if (ModelState.IsValid)
          {
              var user = await UserManager.FindByIdAsync(editUser.Id);

              if (user == null)
              {
                  return(HttpNotFound());
              }

              user.Email        = editUser.Email;
              user.FirstName    = editUser.FirstName;
              user.LastName     = editUser.LastName;
              user.PhoneNumber  = editUser.PhoneNumber;
              user.UserName     = editUser.UserName;
              user.UniqueNumber = editUser.UniqueNumber;

              var userRoles = await UserManager.GetRolesAsync(user.Id);

              selectedRole = selectedRole ?? new string[] { };

              var result = await UserManager.AddToRolesAsync(user.Id, selectedRole.Except(userRoles).ToArray <string>());

              if (!result.Succeeded)
              {
                  ModelState.AddModelError("", result.Errors.First());
                  return(View());
              }
              result = await UserManager.RemoveFromRolesAsync(user.Id, userRoles.Except(selectedRole).ToArray <string>());

              if (!result.Succeeded)
              {
                  ModelState.AddModelError("", result.Errors.First());
              }

              return(RedirectToAction("Index"));
          }
          else
          {
              // ModelState.AddModelError("", user.Errors.First());
          }

          return(View());
      }
      //
      // GET: /Users/Edit/1
      public async Task <ActionResult> Edit(string id)
      {
          if (id == null)
          {
              return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
          }
          var user = await UserManager.FindByIdAsync(id);

          if (user == null)
          {
              return(HttpNotFound());
          }

          var userRoles = await UserManager.GetRolesAsync(user.Id);


          var userToEdit = new AdminViewModels.EditUserViewModel()
          {
              Id           = user.Id,
              Email        = user.Email,
              FirstName    = user.FirstName,
              LastName     = user.LastName,
              PhoneNumber  = user.PhoneNumber,
              UserName     = user.UserName,
              UniqueNumber = user.UniqueNumber,

              RolesList = RoleManager.Roles.ToList().Select(x => new SelectListItem()
                {
                    Selected = userRoles.Contains(x.Name),
                    Text     = x.Name,
                    Value    = x.Name
                })
          };


          return(View(userToEdit));
      }