public void RegisterCounting() { int timeout = config.CoreDelay; var domainStats = from e in _pingInputStream group e by new { e.ParentDomain, e.SiteId } into domainGroups from win in domainGroups.HoppingWindow( TimeSpan.FromSeconds(timeout), TimeSpan.FromSeconds(timeout / 5), HoppingWindowOutputPolicy.ClipToWindowEnd) select new DomainStatistics { ParentId = domainGroups.Key.SiteId, Id = DomainSelector.GetDomainId(domainGroups.Key.ParentDomain, domainGroups.Key.SiteId), SelectorType = (int)PageSelectorType.DomainString, Count = (int)win.Count(), Pattern = domainGroups.Key.ParentDomain }; var domainPatternStats = from e in _pingInputStream group e by new { e.SiteId } into domainGroups from win in domainGroups.HoppingWindow( TimeSpan.FromSeconds(timeout), TimeSpan.FromSeconds(timeout / 5), HoppingWindowOutputPolicy.ClipToWindowEnd) select new DomainStatistics { Id = domainGroups.Key.SiteId, ParentId = null, SelectorType = (int)PageSelectorType.DomainPattern, Pattern = null, Count = (int)win.Count() }; var domainStatsTotal = from e in domainPatternStats select new DomainStatistics { ParentId = e.Id, Id = DomainSelector.GetDomainId(DomainSelector.TotalDomain, e.Id), //Domain = string.Empty, SelectorType = (int)PageSelectorType.DomainString, //UserId = Guid.Empty, Pattern = DomainSelector.TotalDomain, Count = e.Count //PageId = null }; var pageStats = from e in _pingInputStream where e.PageId != null group e by new { e.PageId, e.ParentDomain, e.SiteId } into domainGroups from win in domainGroups.HoppingWindow( TimeSpan.FromSeconds(timeout), TimeSpan.FromSeconds(timeout / 5), HoppingWindowOutputPolicy.ClipToWindowEnd) select new DomainStatistics { ParentId = DomainSelector.GetDomainId(domainGroups.Key.ParentDomain, domainGroups.Key.SiteId), Id = PageSelector.GetPageId(domainGroups.Key.PageId.Value, domainGroups.Key.ParentDomain, domainGroups.Key.SiteId), Pattern = null, SelectorType = (int)PageSelectorType.PagePattern, Count = (int)win.Count() }; var totalPageStats = from e in _pingInputStream where e.PageId != null group e by new { e.PageId, e.SiteId } into domainGroups from win in domainGroups.HoppingWindow( TimeSpan.FromSeconds(timeout), TimeSpan.FromSeconds(timeout / 5), HoppingWindowOutputPolicy.ClipToWindowEnd) select new DomainStatistics { ParentId = DomainSelector.GetDomainId(DomainSelector.TotalDomain, domainGroups.Key.SiteId), Id = PageSelector.GetPageId(domainGroups.Key.PageId.Value, DomainSelector.TotalDomain, domainGroups.Key.SiteId), Pattern = null, SelectorType = (int)PageSelectorType.PagePattern, Count = (int)win.Count() }; var totalStats = domainPatternStats.Union(domainStats).Union(domainStatsTotal).Union(totalPageStats).Union(pageStats); _domainStatSource = totalStats.ToObservable(); _statsOutputService = new CepObserver<DomainStatistics>(); _eventsOutputService = new CepDataCollector<PageRequest>(); _subscription = _domainStatSource.Subscribe(_statsOutputService); }
public void RegisterCounting() { int timeout = config.CoreDelay; var domainStats = from e in _pingInputStream group e by new { e.ParentDomain, e.SiteId } into domainGroups from win in domainGroups.HoppingWindow( TimeSpan.FromSeconds(timeout), TimeSpan.FromSeconds(timeout / 5), HoppingWindowOutputPolicy.ClipToWindowEnd) select new DomainStatistics { ParentId = domainGroups.Key.SiteId, Id = DomainSelector.GetDomainId(domainGroups.Key.ParentDomain, domainGroups.Key.SiteId), SelectorType = (int)PageSelectorType.DomainString, Count = (int)win.Count(), Pattern = domainGroups.Key.ParentDomain }; var domainPatternStats = from e in _pingInputStream group e by new { e.SiteId } into domainGroups from win in domainGroups.HoppingWindow( TimeSpan.FromSeconds(timeout), TimeSpan.FromSeconds(timeout / 5), HoppingWindowOutputPolicy.ClipToWindowEnd) select new DomainStatistics { Id = domainGroups.Key.SiteId, ParentId = null, SelectorType = (int)PageSelectorType.DomainPattern, Pattern = null, Count = (int)win.Count() }; var domainStatsTotal = from e in domainPatternStats select new DomainStatistics { ParentId = e.Id, Id = DomainSelector.GetDomainId(DomainSelector.TotalDomain, e.Id), //Domain = string.Empty, SelectorType = (int)PageSelectorType.DomainString, //UserId = Guid.Empty, Pattern = DomainSelector.TotalDomain, Count = e.Count //PageId = null }; var pageStats = from e in _pingInputStream where e.PageId != null group e by new { e.PageId, e.ParentDomain, e.SiteId } into domainGroups from win in domainGroups.HoppingWindow( TimeSpan.FromSeconds(timeout), TimeSpan.FromSeconds(timeout / 5), HoppingWindowOutputPolicy.ClipToWindowEnd) select new DomainStatistics { ParentId = DomainSelector.GetDomainId(domainGroups.Key.ParentDomain, domainGroups.Key.SiteId), Id = PageSelector.GetPageId(domainGroups.Key.PageId.Value, domainGroups.Key.ParentDomain, domainGroups.Key.SiteId), Pattern = null, SelectorType = (int)PageSelectorType.PagePattern, Count = (int)win.Count() }; var totalPageStats = from e in _pingInputStream where e.PageId != null group e by new { e.PageId, e.SiteId } into domainGroups from win in domainGroups.HoppingWindow( TimeSpan.FromSeconds(timeout), TimeSpan.FromSeconds(timeout / 5), HoppingWindowOutputPolicy.ClipToWindowEnd) select new DomainStatistics { ParentId = DomainSelector.GetDomainId(DomainSelector.TotalDomain, domainGroups.Key.SiteId), Id = PageSelector.GetPageId(domainGroups.Key.PageId.Value, DomainSelector.TotalDomain, domainGroups.Key.SiteId), Pattern = null, SelectorType = (int)PageSelectorType.PagePattern, Count = (int)win.Count() }; var totalStats = domainPatternStats.Union(domainStats).Union(domainStatsTotal).Union(totalPageStats).Union(pageStats); _domainStatSource = totalStats.ToObservable(); _statsOutputService = new CepObserver <DomainStatistics>(); _eventsOutputService = new CepDataCollector <PageRequest>(); _subscription = _domainStatSource.Subscribe(_statsOutputService); }