public ActionResult Create([FromBody] SystemUserData userData) { if (userData == null) { return(BadRequest("Input request is empty")); } #region Check input 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($"Create new 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 validatorPasswordResult = validatorPassword.Validate(userData.NewPassword); if (!validatorPasswordResult.IsValid) { string messageError = validatorPasswordResult.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.Create(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.Status201Created)); }