public TelegramManager(IServiceProvider serviceProvider, string apiToken, long chatId) { _apiToken = apiToken; _services = serviceProvider; _mainModel = serviceProvider.GetRequiredService <IMainModel>(); Settings = serviceProvider.GetRequiredService <ISettingsProvider>().Settings; _logger = (ILogger <TelegramManager>)serviceProvider.GetService(typeof(ILogger <TelegramManager>)); _eventAggregator = (IEventAggregator2)serviceProvider.GetService(typeof(IEventAggregator2)); try { _bot = new TelegramBotClient(_apiToken); _chatId = chatId; _messageQueueLoopTask = Task.Factory .StartNew(() => BotMessageQueueLoopAsync() .ConfigureAwait(false), _cancellationTokenSource.Token, TaskCreationOptions.LongRunning, TaskScheduler.Default); } catch (Exception ex) { _logger.LogError("Telegram init error: {exception}", ex.Message); } }
public MainModel(IServiceProvider serviceProvider, ILogger <MainModel> logger, ISettingsProvider settingsProvider, IEventAggregator2 eventAggregator) { _services = serviceProvider; _logger = logger; _settingsProvider = settingsProvider; _eventAggregator = eventAggregator; LoadAppSettings(); }
public ArbitrageMonitoringStrategy(ISettingsProvider settingsProvider, IMainModel mainModel, StocksManager stocksManager, IEventAggregator2 eventAggregator, ILogger <ArbitrageMonitoringStrategy> logger, IUSADataManager usaDataManager) { StocksManager = stocksManager; Settings = settingsProvider.Settings; SetChatId(Settings); MainModel = mainModel; DataManager = usaDataManager; Logger = logger; eventAggregator.SubscribeOnPublishedThread(this); }
public USADataManager(ISettingsProvider settingsProvider, IMainModel mainModel, IEventAggregator2 eventAggregator) { _eventAggregator = eventAggregator; Settings = settingsProvider.Settings; MainModel = mainModel; _eventAggregator.SubscribeOnBackgroundThread(this); if (Settings.USAQuotesEnabled) { Run(); } }
public StocksManager(IServiceProvider services, IMainModel mainModel, ILogger <StocksManager> logger, ISettingsProvider settingsProvider, IEventAggregator2 eventAggregator) { _settingsProvider = settingsProvider; _services = services; _mainModel = mainModel; _logger = logger; EventAggregator = eventAggregator; EventAggregator.Subscribe(this); Init(); }
public MainViewModel(IServiceProvider serviceProvider, ILogger <MainViewModel> logger, IEventAggregator2 eventAggregator, ISettingsProvider settingsProvider, StatusViewModel status, AutoUpdate updater) { Updater = updater; _services = serviceProvider; _logger = logger; _uiContext = SynchronizationContext.Current; _settingsProvider = settingsProvider; _eventAggregator = eventAggregator; Status = status; LoadAppSettings(); SettingsViewModel = new SettingsViewModel(_settingsProvider, this); CheckUpdates(); }
public RocketMonitoringStrategy(ISettingsProvider settingsProvider, IMainModel mainModel, StocksManager stocksManager, IEventAggregator2 eventAggregator, ILogger <RocketMonitoringStrategy> logger) { StocksManager = stocksManager; Settings = settingsProvider.Settings; MainModel = mainModel; Logger = logger; eventAggregator.SubscribeOnPublishedThread(this); }
public SettingsModel(ILogger <SettingsModel> logger, IEventAggregator2 eventAggregator) : base() { _eventAggregator = eventAggregator; _logger = logger; }
public StatusViewModel(IEventAggregator2 eventAggregator) { EventAggregator = eventAggregator; eventAggregator.SubscribeOnPublishedThread(this); }
/// <summary> /// Subscribes an instance to all events declared through implementations of <see cref = "IHandler{T}" />. /// </summary> /// <remarks>The subscription is invoked on a new background thread.</remarks> /// <param name="eventAggregator"></param> /// <param name = "subscriber">The instance to subscribe for event publication.</param> public static void SubscribeOnBackgroundThread(this IEventAggregator2 eventAggregator, object subscriber) { eventAggregator.Subscribe(subscriber, f => Task.Factory.StartNew(f, default, TaskCreationOptions.None, TaskScheduler.Default));
public static void Subscribe(this IEventAggregator2 eventAggregator, object subscriber) { eventAggregator.SubscribeOnPublishedThread(subscriber); }