Ejemplo n.º 1
0
        public async Task SetStoriesAsync(IEnumerable <int> newStories)
        {
            if (newStories.SequenceEqual(_topStories))
            {
                return;
            }

            var nonStoredItems = await GetNonStoredItemsAsync(newStories);

            var added = AddItemsToDictionary(nonStoredItems);

            var values = newStories.Select(id => {
                _items.TryGetValue(id, out Item outItem);
                return(outItem);
            });

            await _messageSender.PublishNewsAsync(values.Where(item => item != null))
            .ConfigureAwait(false);

            RemoveCacheItemsNotInTheTopStories(newStories);
            _topStories = newStories.ToList();
        }