public async Task <ObjectResult> UpdateInformation([FromQuery] string userId, [FromBody] MyUpdateUserModel model) { try { MyServiceResult objMyServiceResult = await this._IUserService.UpdateInformation(userId, model); return(StatusCode(StatusCodes.Status200OK, JsonSerializer.Serialize <MyServiceResult>(objMyServiceResult))); } catch (Exception ex) { return(StatusCode(StatusCodes.Status400BadRequest, JsonSerializer.Serialize <MyServiceResult>(new MyServiceResult { Successed = false, Content = ex.Message }))); } }
public async Task <MyServiceResult> UpdateInformation(string userId, MyUpdateUserModel model) { try { if (string.IsNullOrWhiteSpace(userId)) { return(new MyServiceResult { Successed = false, Content = "Người dùng không tồn tại" }); } MyIdentityUser objMyIdentityUser = await this._UserManager.FindByIdAsync(userId); if (objMyIdentityUser is null) { return(new MyServiceResult { Successed = false, Content = "Người dùng không tồn tại", }); } MyIdentityUser objMyIdentityUserNew = this._IMapper.Map <MyUpdateUserModel, MyIdentityUser>(model, objMyIdentityUser); this._EFDbContext.Entry <MyIdentityUser>(objMyIdentityUserNew).State = EntityState.Modified; int saveChangeResult = await this._EFDbContext.SaveChangesAsync(); if (saveChangeResult > 0) { MyIdentityUser objMyIdentityUser1 = await this._UserManager.FindByIdAsync(userId); if (objMyIdentityUser1 is null) { return(new MyServiceResult { Successed = false, Content = "Người dùng không tồn tại", }); } if (!string.IsNullOrEmpty(model.Role)) { bool isExistRole = await _RoleManager.RoleExistsAsync(model.Role); if (isExistRole) { IList <string> iListRole = await _UserManager.GetRolesAsync(objMyIdentityUser1); string roleUser = iListRole.First(); if (iListRole.Count > 0 && !string.Equals(roleUser, model.Role)) { IdentityResult resultRemoveRole = await _UserManager.RemoveFromRoleAsync(objMyIdentityUser1, roleUser); if (resultRemoveRole.Succeeded) { MyIdentityRole objMyIdentityRole = await _RoleManager.FindByIdAsync(model.Role); IdentityResult resultAddNewRole = await _UserManager.AddToRoleAsync(objMyIdentityUser1, objMyIdentityRole.Name); if (resultAddNewRole.Succeeded) { return(new MyServiceResult { Successed = true, Content = "Cập nhật thông tin người dùng thành công" }); } else { return(new MyServiceResult { Successed = false, Content = "Cập nhật thông tin người dùng thất bại" }); } } } } } return(new MyServiceResult { Successed = true, Content = "Cập nhật thông tin người dùng thành công" }); } else { return(new MyServiceResult { Successed = false, Content = "Cập nhật thông tin người dùng thất bại" }); } } catch (Exception) { throw; } }