public static async Task <T> GetItemAsync <T>(this IComponentStagingStore store, string identifier)
        {
            var stream = await store.GetItemAsync(identifier);

            using (var streamReader = new StreamReader(stream))
            {
                var text = await streamReader.ReadToEndAsync();

                return(JsonConvert.DeserializeObject <T>(text));
            }
        }
Example #2
0
        public async Task <IIngestEvent[]> GetStoredEvents()
        {
            var identifiers = await _componentStagingStore.GetAvailableIdentifiersAsync();

            var events = await Task.WhenAll(identifiers.Select(async id =>
            {
                var item = await _componentStagingStore.GetItemAsync(id).ConfigureAwait(false);
                return(item.ReadSerializedEvent());
            })).ConfigureAwait(false);

            return(events.OrderBy(e => e.Order).ToArray());
        }
        public async Task InitializeCache()
        {
            var storedItems = await _componentStagingStore.GetAvailableIdentifiersAsync().ConfigureAwait(false);

            foreach (var itemId in storedItems)
            {
                using (var itemStream = await _componentStagingStore.GetItemAsync(itemId).ConfigureAwait(false))
                {
                    using (var memoryStream = new MemoryStream())
                    {
                        await itemStream.CopyToAsync(memoryStream).ConfigureAwait(false);

                        _cache.Add(itemId, memoryStream.GetBuffer());
                    }
                }
            }
        }