public async Task <object> UpsertAsync(Platforms platform, string platformKey, object configuration, CancellationToken cancellationToken)
        {
            if (!(configuration is BasePlatformConfiguration baseConfig && baseConfig.Platform == platform.ToString() && baseConfig.Key == platformKey))
            {
                throw new InvalidConfigurationException();
            }

            var config = await _repository.GetAsync(platform, platformKey, cancellationToken);

            if (config == null)
            {
                return(await _repository.CreateAsync(platform, platformKey, configuration, cancellationToken));
            }

            return(await _repository.UpdateAsync(platform, platformKey, configuration, cancellationToken));
        }