public object Any(RegenerateApiKeys request) { var apiKeyAuth = this.Request.AssertValidApiKeyRequest(); if (string.IsNullOrEmpty(request.Environment) && apiKeyAuth.Environments.Length != 1) throw new ArgumentNullException("Environment"); var env = request.Environment ?? apiKeyAuth.Environments[0]; var apiRepo = (IManageApiKeys)HostContext.AppHost.GetAuthRepository(base.Request); using (apiRepo as IDisposable) { var userId = GetSession().UserAuthId; var updateKeys = apiRepo.GetUserApiKeys(userId) .Where(x => x.Environment == env) .ToList(); updateKeys.Each(x => x.CancelledDate = DateTime.UtcNow); var newKeys = apiKeyAuth.GenerateNewApiKeys(userId, env); updateKeys.AddRange(newKeys); apiRepo.StoreAll(updateKeys); return new RegenerateApiKeysResponse { Results = newKeys.Map(k => new UserApiKey { Key = k.Id, KeyType = k.KeyType, ExpiryDate = k.ExpiryDate, }) }; } }
public async Task <object> Any(RegenerateApiKeys request) { var apiKeyAuth = this.Request.AssertValidApiKeyRequest(); if (string.IsNullOrEmpty(request.Environment) && apiKeyAuth.Environments.Length != 1) { throw new ArgumentNullException("Environment"); } var env = request.Environment ?? apiKeyAuth.Environments[0]; var manageApiKeys = HostContext.AppHost.AssertManageApiKeysAsync(Request); using (manageApiKeys as IDisposable) { var userId = (await GetSessionAsync().ConfigAwait()).UserAuthId; var updateKeys = (await manageApiKeys.GetUserApiKeysAsync(userId).ConfigAwait()) .Where(x => x.Environment == env) .ToList(); updateKeys.Each(x => x.CancelledDate = DateTime.UtcNow); var newKeys = apiKeyAuth.GenerateNewApiKeys(userId, env); updateKeys.AddRange(newKeys); await manageApiKeys.StoreAllAsync(updateKeys).ConfigAwait(); return(new RegenerateApiKeysResponse { Results = newKeys.Map(k => new UserApiKey { Key = k.Id, KeyType = k.KeyType, ExpiryDate = k.ExpiryDate, }) }); } }