public async Task <IActionResult> UpdateUser([FromBody] UpdateUserViewModel updateUserViewModel) { if (!ModelState.IsValid) { return(BadRequest("خطا در اطلاعات ، لطفا ورودی های خود را کنترل فرمایید")); } var myUserId = GetMyUserId(); var userInDb = await _userService.FindUserAsync(updateUserViewModel.UserId).ConfigureAwait(false); await _roleService.DisablePreviuosRoles(userInDb.Id); await _claimService.DisablePrviousClaims(userInDb.Id); var userRoles = _roleService.ConvertToUserRoles(updateUserViewModel.RoleIds, updateUserViewModel.UserId); var userClaims = GetClaims(updateUserViewModel.ZoneIds, updateUserViewModel.Actions, myUserId, updateUserViewModel.UserId); await _claimService.AddRangeAsync(userClaims); await _roleService.AddRangeAsync(userRoles); _userService.UpdateUserAsync(userInDb, updateUserViewModel); await _uow.SaveChangesAsync(); var successMessage = String.Join(" ", "اطلاعات", updateUserViewModel.DisplayName, "با موفقیت ویرایش شد"); return(Ok(successMessage)); }