private async Task <bool> CreateConfigEntryAsync(GameConfigurationUpdateRequest <TConfigType> request, int ownershipId, CancellationToken token = default)
        {
            if (request == null)
            {
                throw new ArgumentNullException(nameof(request));
            }

            switch (request.Source)
            {
            case ConfigurationSourceType.Account:
                return(await AccountConfigRepository.TryCreateAsync(new AccountGameConfiguration <TConfigType>(ownershipId, new GameConfigData(request.Data), request.ConfigType), token));

            case ConfigurationSourceType.Character:
                return(await CharacterConfigRepository.TryCreateAsync(new CharacterGameConfiguration <TConfigType>(ownershipId, new GameConfigData(request.Data), request.ConfigType), token));

            default:
                throw new ArgumentOutOfRangeException(nameof(request.Source), request.Source, null);
            }
        }