public virtual int GetActiveApiKeyIndex(IApplicationNameProvider nameProvider) { string clientId = GetApplicationClientId(nameProvider); ActiveApiKeyIndex apiKeyIndex = CoreRegistryRepository.OneActiveApiKeyIndexWhere(c => c.ApplicationCuid == clientId); if (apiKeyIndex != null) { return(apiKeyIndex.Value); } return(0); }
public virtual ApiKeyInfo SetActiveApiKeyIndex(IApplicationNameProvider nameProvider, int index) { string clientId = GetApplicationClientId(nameProvider); ActiveApiKeyIndex apiKeyIndex = CoreRegistryRepository.OneActiveApiKeyIndexWhere(c => c.ApplicationCuid == clientId); if (apiKeyIndex == null) { apiKeyIndex = new ActiveApiKeyIndex { ApplicationCuid = clientId }; } if (Application?.ApiKeys.Count - 1 > index || index < 0) { throw new IndexOutOfRangeException($"Specified ApiKeyIndex index is invalid: {index}"); } apiKeyIndex.Value = index; CoreRegistryRepository.Save(apiKeyIndex); return(new ApiKeyInfo() { ApiKey = GetApplicationApiKey(clientId, index), ApplicationClientId = clientId }); }