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));
        }