public HostFactoryNotifierProcessor(ANotifierProcessorParams notifierProcessorParams) { _dataReaders = (notifierProcessorParams as HostFactoryNotifierProcessorParams)?.DataReaders; _clientsManager = notifierProcessorParams.ClientsManager; _logger = notifierProcessorParams.Logger; _filtersValidator = (notifierProcessorParams as HostFactoryNotifierProcessorParams)?.FiltersValidator; _filtersValidatorRepository = (notifierProcessorParams as HostFactoryNotifierProcessorParams)?.FiltersValidatorRepository; _aggregatorsValidator = (notifierProcessorParams as HostFactoryNotifierProcessorParams)?.AggregatorsValidator; _aggregatorsValidatorRepository = (notifierProcessorParams as HostFactoryNotifierProcessorParams)?.AggregatorsValidatorRepository; _lock = false; _timer = new Timer(notifierProcessorParams.Interval) { AutoReset = true }; _timer.Elapsed += (sender, eventArgs) => { ProcessingData(); }; }
public void SetAggregator(INotificationAggregatorsValidator aggregator) { _aggregator = aggregator; }
internal static List <NotificationMessage> GetData(INotificationDataReader[] readers, INotificationFiltersValidator filtersValidator, IFiltersValidatorRepository filtersValidatorRepository, INotificationAggregatorsValidator aggregatorsValidator, IAggregatorsValidatorRepository aggregatorsValidatorRepository) { var ret = new List <NotificationMessage>(); if (!readers.Any()) { return(ret); } foreach (var r in readers) { if (r is NotificationDataReaderDecorator decorator) { filtersValidator?.SetFilters(filtersValidatorRepository?.GetFilters(decorator.GetId())); (r as INotificationValidator).SetValidator(filtersValidator); aggregatorsValidator?.SetAggregators(aggregatorsValidatorRepository?.GetAggregators(decorator.GetId())); (r as INotificationAggregator).SetAggregator(aggregatorsValidator); } ret.AddRange(r.GetData()); } return(ret); }
public override void SetAggregator(INotificationAggregatorsValidator aggregator) { (NotificationDataReader as INotificationAggregator)?.SetAggregator(aggregator); }