public static void Initialize(IEventRegistry eventRegistry, IEventBus eventBus, AnalyticsOperationRequestRepository OperationRequestRepository, AnalyticsRegistry analyticsRegistry)//, IServiceProvider services) { _eventRegistry = eventRegistry; _eventBus = eventBus; _OperationRequestRepository = OperationRequestRepository; _analyticsRegistry = analyticsRegistry; }
/// <summary> /// Subscribe to diagnostics info. Accesses repository to update metadata (status, errors etc.) of operations. /// </summary> public static void Listen() { _eventRegistry.Register <DiagnosticsResponseEvent>(Exchanges.Diagnostics); _eventBus.Subscribe((DiagnosticsResponseEvent @event) => { using (IServiceScope scope = Services.CreateScope()) { _OperationRequestRepository = scope.ServiceProvider.GetRequiredService <AnalyticsOperationRequestRepository>(); _OperationRequestRepository.Update(@event.Operation); _OperationRequestRepository.SaveChanges(); } }); }
/// <summary> /// Sample event subsribe: Register + Subscribe /// </summary> /// <param name="app"></param> public static void SubscribeEvents(this IApplicationBuilder app) { IEventRegistry registry = app.ApplicationServices.GetRequiredService <IEventRegistry>(); registry.Register <TimeSeriesAnalysisRequestEvent>(Exchanges.TimeSeries); registry.Register <DiagnosticsResponseEvent>(Exchanges.Diagnostics); registry.Register <AnalyticModuleRegistrationRequestEvent>(Exchanges.ModuleRegistration); DiagnosticsListener.Services = app.ApplicationServices.GetRequiredService <IServiceProvider>(); using (IServiceScope scope = app.ApplicationServices.GetRequiredService <IServiceProvider>().CreateScope()) { IEventBus eventBus = scope.ServiceProvider.GetRequiredService <IEventBus>(); AnalyticsRegistry analyticsRegistry = scope.ServiceProvider.GetRequiredService <AnalyticsRegistry>(); AnalyticsOperationRequestRepository operationRequestRepository = scope.ServiceProvider.GetRequiredService <AnalyticsOperationRequestRepository>(); DiagnosticsListener.Initialize(registry, eventBus, operationRequestRepository, analyticsRegistry); DiagnosticsListener.Listen(); DiagnosticsListener.ListenNewModules(); } }
public AnalyticsService(IEventBus eventBus, AnalyticsOperationRequestRepository operationRequestRepository, AnalyticsRegistry analyticsRegistry) { _eventBus = eventBus; _operationRequestRepository = operationRequestRepository; _analyticsRegistry = analyticsRegistry; }