public async Task ReplaceWithNewConnectionAsync(string did, OwnIdConnection connection)
        {
            var gigyaOwnIdConnection = new GigyaOwnIdConnection(connection);

            var responseMessage =
                await _apiClient.SetAccountInfoAsync <TProfile>(did, data : new AccountData(gigyaOwnIdConnection));

            if (responseMessage.ErrorCode != 0)
            {
                throw new Exception($"Gigya.setAccountInfo error -> {responseMessage.GetFailureMessage()}");
            }
        }
        public async Task CreateProfileAsync(IUserProfileFormContext <TProfile> context, string recoveryToken = null,
                                             string recoveryData = null)
        {
            var loginResponse = await _restApiClient.NotifyLogin(context.DID);

            if (loginResponse.ErrorCode != 0)
            {
                throw new Exception(
                          $"Gigya.notifyLogin error -> {loginResponse.GetFailureMessage()}");
            }

            var connection = new GigyaOwnIdConnection
            {
                PublicKey     = context.PublicKey,
                RecoveryToken = recoveryToken,
                RecoveryData  = recoveryData
            };

            var setAccountMessage =
                await _restApiClient.SetAccountInfoAsync(context.DID, context.Profile, new AccountData(connection));

            if (setAccountMessage.ErrorCode > 0)
            {
                _logger.LogError($"did: {context.DID} " +
                                 $"Gigya.setAccountInfo (profile) for NEW user error -> {setAccountMessage.GetFailureMessage()}");

                var removeUserResult = await _restApiClient.DeleteAccountAsync(context.DID);

                if (removeUserResult.ErrorCode != 0)
                {
                    throw new Exception(
                              $"Gigya.deleteAccount with uid={context.DID} error -> {removeUserResult.GetFailureMessage()}");
                }

                SetErrorsToContext(context, setAccountMessage);
            }
        }