Пример #1
0
        private async void DiscoverAvailableKeysAsync()
        {
            Console.WriteLine($"{this}: discovering available keys...");
            var keysResponse = await _client.GetKeysWithHttpMessagesAsync(_uri);

            if (!keysResponse.Response.IsSuccessStatusCode)
            {
                throw new InvalidProgramException();
            }

            using (var respBodyEnum = keysResponse.Body.GetEnumerator())
            {
                while (respBodyEnum.MoveNext())
                {
                    var cur     = respBodyEnum.Current;
                    var keyData =
                        await _client.GetKeyWithHttpMessagesAsync(_uri,
                                                                  cur.Identifier.Name, cur.Identifier.Version);

                    if (keyData.Response.IsSuccessStatusCode)
                    {
                        lock (_keys)
                        {
                            _keys[cur.Identifier.Name] = new Key(cur, keyData.Body, this);
                            _DEBUG_KeyEncDecVerify(_keys[cur.Identifier.Name]);
                        }
                    }
                }
            }

            Console.WriteLine($"{this}: key discovery complete ({_keys.Count}); initalized.");
        }