public async Task <ActionResult> EditEmployee(EditEmployeeVM model) { try { var maVaiTroTrenHeThong_noChanges = model.MaVaiTroTrenHeThong; model = (EditEmployeeVM)(await AddSomePropertiesToEmployeeVM(model)); model.MaVaiTroTrenHeThong = await userRoleRepository.FindRoleIdByUserID(model.Id); if (!ModelState.IsValid) { return(View(model)); } var employeeRecord = await _userManager.FindByIdAsync(model.Id); employeeRecord.Email = model.Email; employeeRecord.PhoneNumber = model.PhoneNumber; employeeRecord.FirstName = model.FirstName; employeeRecord.MiddleName = model.MiddleName; employeeRecord.LastName = model.LastName; employeeRecord.TaxtId = model.TaxtId; employeeRecord.DateOfBirth = model.DateOfBirth; employeeRecord.GioiTinh = model.GioiTinh; employeeRecord.NoiSinh = model.NoiSinh; employeeRecord.DiaChiTamTru = model.DiaChiTamTru; employeeRecord.DiaChiLienLac = model.DiaChiLienLac; employeeRecord.MaChucVu = model.MaChucVu; employeeRecord.MaChuyenMon = model.MaChuyenMon; employeeRecord.MaPhongBan = model.MaPhongBan; employeeRecord.LoaiNhanVien = model.LoaiNhanVien; employeeRecord.SoCMND = model.SoCMND; employeeRecord.MucLuongCoBan = model.MucLuongCoBan; var uriProfilePicture = UploadedProfilePicture(model); if (uriProfilePicture != null) { var oldProfilePictureName = employeeRecord.ProfilePicture; employeeRecord.ProfilePicture = uriProfilePicture; DeleteProfilePicture(oldProfilePictureName); } var changeEmployeeRecordSuccess = (await _userManager.UpdateAsync(employeeRecord)).Succeeded; var oldUserRole = await userRoleRepository.FindByUserID(employeeRecord.Id); var newUserRole = new IdentityUserRole <string> { UserId = employeeRecord.Id, RoleId = maVaiTroTrenHeThong_noChanges }; var changeUserRoleSuccess = await userRoleRepository.Replace(oldUserRole, newUserRole); if (!changeEmployeeRecordSuccess || !changeUserRoleSuccess) { ModelState.AddModelError("", "Error while saving"); return(View(model)); } return(RedirectToAction(nameof(Details), new { id = model.Id })); } catch { return(View()); } }