public async Task <KeyModel> CreateRootKey() { var existingKeyCount = await _keyData.Count(); if (existingKeyCount > 0) { var msg = _localizer["Root key can only be created for empty database"]; throw new InvalidOperationException(msg); } var model = new KeyModel { Type = ApiKeyTypes.ClientSecret, PublicKey = "rootkey", Properties = { [ApiKeyPropertyNames.ClientSecret1] = ModelHelper.GenerateSecret(), [ApiKeyPropertyNames.ClientSecret2] = ModelHelper.GenerateSecret() } }; var saved = await _keyData.Create(model); return(saved); }