示例#1
0
        public virtual int GetActiveApiKeyIndex(IApplicationNameProvider nameProvider)
        {
            string            clientId    = GetApplicationClientId(nameProvider);
            ActiveApiKeyIndex apiKeyIndex = ApplicationRegistrationRepository.OneActiveApiKeyIndexWhere(c => c.ApplicationCuid == clientId);

            if (apiKeyIndex != null)
            {
                return(apiKeyIndex.Value);
            }
            return(0);
        }
示例#2
0
        public virtual ApiKeyInfo SetActiveApiKeyIndex(IApplicationNameProvider nameProvider, int index)
        {
            string            clientId    = GetApplicationClientId(nameProvider);
            ActiveApiKeyIndex apiKeyIndex = ApplicationRegistrationRepository.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;
            ApplicationRegistrationRepository.Save(apiKeyIndex);
            return(new ApiKeyInfo()
            {
                ApiKey = GetApplicationApiKey(clientId, index),
                ApplicationClientId = clientId
            });
        }