public ActionResult Update([FromBody] SystemUserData userData) { if (userData == null) { return(BadRequest("Input request is empty")); } #region Valid data try { var dataRequestValidator = new SystemUserDataValidator(); var validationResult = dataRequestValidator.Validate(userData); if (!validationResult.IsValid) { string errorMessage = ""; foreach (var error in validationResult.Errors) { errorMessage += error.ErrorMessage + " "; } return(Conflict(errorMessage)); } } catch (Exception e) { _logger.LogError($"Update system user. Input data failed validation. Full validator exception message: {e.Message}"); return(StatusCode(StatusCodes.Status500InternalServerError, "Internal server error")); } #endregion #region Check password var validatorPassword = new PasswordValidator(); var validatorOldPasswordResult = validatorPassword.Validate(userData.OldPassword); if (!validatorOldPasswordResult.IsValid) { string messageError = validatorOldPasswordResult.Errors.FirstOrDefault()?.ErrorMessage; return(Conflict(messageError)); } if (!string.IsNullOrEmpty(userData.NewPassword)) { var validatorNewPasswordResult = validatorPassword.Validate(userData.OldPassword); if (!validatorNewPasswordResult.IsValid) { string messageError = validatorNewPasswordResult.Errors.FirstOrDefault()?.ErrorMessage; return(Conflict(messageError)); } } #endregion var claims = HttpContext.User.Claims.ToList(); string sessionToken = claims.FirstOrDefault(c => c.Type == AuthorizationDataModel.ClaimSessionToken)?.Value; ServiceResult result = _userSystemService.Update(sessionToken, userData); if (result.ResultConnection != ServiceResult.ResultConnectionEnum.Correct) { _logger.LogError($"User system service error: {result.Message}"); return(StatusCode(StatusCodes.Status500InternalServerError, result.Message)); } return(StatusCode(StatusCodes.Status200OK)); }