public IDataResult <User> Register(UserForRegisterDto userForRegisterDto)
        {
            var userAlreadyExistsCheck = BusinessRules.Run(CheckIfUserAlreadyExists(userForRegisterDto.Email));

            if (userAlreadyExistsCheck != null)
            {
                return(new ErrorDataResult <User>(userAlreadyExistsCheck.Message));
            }

            byte[] passwordHash, passwordSalt;

            HashingHelper.CreatePasswordHash(userForRegisterDto.Password, out passwordHash, out passwordSalt);

            var user = new User
            {
                Email        = userForRegisterDto.Email,
                FirstName    = userForRegisterDto.FirstName,
                LastName     = userForRegisterDto.LastName,
                PasswordHash = passwordHash,
                PasswordSalt = passwordSalt,
                Status       = true
            };

            var result = _userService.Add(user);

            if (!result.Success)
            {
                return(new ErrorDataResult <User>(Messages.UserInsertionError));
            }

            var getUser = _userService.GetByEMail(user.Email).Data;

            _userOperationClaimService.AddDefaultClaim(getUser.Id);

            return(new SuccessDataResult <User>(user, Messages.RegistirationSuccessful));
        }