public Feed(Uri uri, HttpResourceClient httpResourceClient) { this.httpResourceClient = httpResourceClient; using (var xmlReader = XmlReader.Create(httpResourceClient.Get(uri))) { feed = SyndicationFeed.Load(xmlReader); } }
public Task Execute(Uri recentFeedUri, EventProcessor eventProcessor, HttpResourceClient httpResourceClient, ClientState clientState) { foreach (var item in ((IEnumerable<SyndicationItem>)encounteredItems).Reverse()) { eventProcessor.Process(item); clientState.RecordSuccessfullyProcessed(item); } return new Terminate(); }
public Task Execute(Uri recentFeedUri, EventProcessor eventProcessor, HttpResourceClient httpResourceClient, ClientState clientState) { var entry = feed.Items.ElementAt(entryIndex); if (!clientState.HaveAlreadyProcessed(entry)) { encounteredItems.Add(entry); if (feed.Items.Count() > entryIndex + 1) { return new NavigateEntryTask(feed, entryIndex + 1, encounteredItems); } return new NavigatePreviousArchiveTask(feed, encounteredItems); } return new ProcessItemsTask(encounteredItems); }
public Task Execute(Uri recentFeedUri, EventProcessor eventProcessor, HttpResourceClient httpResourceClient, ClientState clientState) { return new NavigateEntryTask(new Feed(recentFeedUri, httpResourceClient), 0, new List<SyndicationItem>()); }
public Client(string recentFeedUri, EventProcessor eventProcessor, HttpResourceClient httpResourceClient) { this.eventProcessor = eventProcessor; this.httpResourceClient = httpResourceClient; this.recentFeedUri = new Uri(recentFeedUri); }
public Task Execute(Uri recentFeedUri, EventProcessor eventProcessor, HttpResourceClient httpResourceClient, ClientState clientState) { throw new InvalidOperationException("Should not be executing the terminal state."); }
public Task Execute(Uri recentFeedUri, EventProcessor eventProcessor, HttpResourceClient httpResourceClient, ClientState clientState) { if (feed.HasPreviousArchive) return new NavigateEntryTask(feed.PreviousArchive, 0, encounteredItems); return new ProcessItemsTask(encounteredItems); }