public async Task <IActionResult> Edit(string id)
        {
            var model = new DDEditUserViewModel();

            var user = await _applicationDbContext.Users.FirstOrDefaultAsync(t => t.Id == id);

            //var users = await _userManager.GetUserAsync(User);
            //var groups = _db.Groups.FirstOrDefault(t => t.Id == int.Parse(users.GroupId));
            model.UserName  = user.UserName;
            model.GroupId   = user.GroupId;
            model.Groups    = GroupByEdit(int.Parse(user.GroupId));
            model.Projects  = GetProjectsbyGroupId(int.Parse(user.GroupId), user.ProjectIds);
            model.Password  = user.PasswordHash;
            model.Id        = user.Id;
            model.ProjectId = user.ProjectIds;
            return(View(model));
        }
        public async Task <IActionResult> Edit(DDEditUserViewModel model)
        {
            //验证视图模型
            if (!ModelState.IsValid)
            {
                model.Groups   = GroupByEdit(int.Parse(model.GroupId));
                model.Projects = GetProjectsbyGroupId(int.Parse(model.GroupId), model.ProjectId);
                return(View(model));
            }

            //用户名重复不需要判断,因为界面已经禁止输入用户名
            //if(IsUserNameExitByEdit(model.UserName,int.Parse(model.Id))==false)
            //{
            //    ModelState.AddModelError(string.Empty, "用户名称已经存在");
            //}

            //找到用户
            var user = await _applicationDbContext.Users.FirstOrDefaultAsync(t => t.Id == model.Id);

            //var changePassword = await _userManager.ChangePasswordAsync(user,user.PasswordHash, model.Password);
            //if(!changePassword.Succeeded)
            //{
            //    ModelState.AddModelError(string.Empty, "修改密码失败");
            //}

            user.PasswordHash = _userManager.PasswordHasher.HashPassword(user, model.Password);
            user.GroupId      = model.GroupId;
            user.ProjectIds   = model.ProjectId;



            _applicationDbContext.Update(user);
            await _applicationDbContext.SaveChangesAsync();

            return(RedirectToAction(nameof(Index)));
        }