public ScraperActor(IPlatformEventScraper scraper, ScrapingOptions options) { _scraper = scraper; _options = options; _cancelScraping = new Cancelable(Context.System.Scheduler); Receive <ScrapPage>(_ => _scraper.ScrapPage().PipeTo(Self)); Receive <LiveOddsUpdate>(update => { Context.Parent.Forward(update); }); Receive <OutcomesSnapshot>(update => { var context = Context; Context.Parent.Forward(update); if (_eventState == PlatformEventState.Open && update.State == PlatformEventState.Live) { _cancelScraping.Cancel(false); _scraper.SubscribeToLive(u => { context.Self.Tell(u); }); _eventState = update.State; } else if (update.State == PlatformEventState.Ended) { Context.Parent.Tell(new RecyclePage(_scraper.Page)); Context.Stop(Self); } }); }
public ScrapingCommand(PlatformEvent platformEvent, ScrapingOptions scrapingOptions) { PlatformEvent = platformEvent; Options = scrapingOptions; }