Esempio n. 1
0
        public async Task Media_feed_projection_is_initialized_from_bootstrap()
        {
            var mediaId = Guid.NewGuid();

            _eventStore
            .GetAllEventsBetween(Arg.Any <Position>(), Arg.Any <Position>(), Arg.Any <IReadOnlyCollection <Type> >())
            .Returns(new AsyncList <IEvent> {
                new MediaFeedAdded(mediaId, "https://site/rss.xml"),
                new MediaFeedAdded(mediaId, "https://site/atom.xml"),
                new MediaFeedAdded(mediaId, "https://site/rss1.xml"),
                new MediaFeedRemoved(mediaId, "https://site/rss1.xml"),
            });

            await _projectionsBootstrapper.InitializeUntil(0);

            (await _finder.GetAllMediaFeeds())
            .Should()
            .BeEquivalentTo(new[] {
                new MediaFeedReadModel {
                    MediaId = mediaId,
                    FeedUrl = "https://site/rss.xml"
                },
                new MediaFeedReadModel {
                    MediaId = mediaId,
                    FeedUrl = "https://site/atom.xml"
                }
            });
        }
        public async Task Handle(SynchronizeAllMediaFeedsCommand command)
        {
            try {
                Debug("Start all feeds synchronization");
                var mediaFeeds = await _synchronizationFinder.GetAllMediaFeeds();

                foreach (var feed in mediaFeeds)
                {
                    await SynchronizeFeed(feed);
                }
            }
            finally {
                Debug("All feeds synchronization ended");
            }
        }