public async Task <IActionResult> Modify(string id, [FromForm] UserModifyPostModel model) { var file = Request.Form.Files.Count > 0 ? Request.Form.Files.First() : null; var result = await userService.ModifyUser(model, id, file); if (!result.Error) { return(Ok(result.DataResult)); } return(BadRequest(result.ErrorMessage)); }
public async Task <ServiceResultModel <UserModifyPostModel> > ModifyUser(UserModifyPostModel model, string id, IFormFile file) { var result = new ServiceResultModel <UserModifyPostModel>(); var user = await userManager.FindByIdAsync(id); if (user != null && !user.Deleted) { var errorMessage = ValidateUserData(model.Email, model.Username, user.UserName); if (errorMessage != null) { result.Error = true; result.ErrorMessage = errorMessage; } else { if (model.Password != null && model.Password.Length >= passwordMinimumLenght) { var isPasswordValid = await userManager.CheckPasswordAsync(user, model.Password); if (!isPasswordValid) { var token = await userManager.GeneratePasswordResetTokenAsync(user); await userManager.ResetPasswordAsync(user, token, model.Password); } } user.UpdatedAt = DateTime.Now; user.UserName = model.Username; user.Email = model.Email; user.FullName = model.FullName; user.Phone = model.Phone; user.Address = model.Address; user.Avatar = model.AvatarFile != null ? model.Avatar : await fileService.GenerateFileSource(file, userAvatarsFolderName, model.Username.ToLower()); user.City = model.City; user.Country = model.Country; user.PostalCode = model.PostalCode; var updateResult = await userManager.UpdateAsync(user); if (updateResult.Succeeded) { result.DataResult = model; } else { result.Error = true; result.ErrorMessage = UserMessages.ModifyUserError(); } } } else { result.Error = true; result.ErrorMessage = UserMessages.UserNotExist(); } return(result); }