private void NewClientLogMessageEvent(string pClientID, string pLogMessage) { //discard empty messages if (String.IsNullOrWhiteSpace(pLogMessage)) { return; } var targetClient = ConnectedClients.FirstOrDefault(t => t.ID == pClientID); if (targetClient != null) { NewConsoleLogMessage?.Invoke(targetClient, pLogMessage); } }
public override void Initialize() { //get frontend target var predictionTarget = GetPredictionTarget(); //init fs manager _filesystemManager = new FilesystemManager(); _filesystemManager.NewLogMessageEvent += CoreNotifyLogMessage; _filesystemManager.Initialize(); //configuration manager _configManager = new ConfigurationManager(_filesystemManager); _configManager.NewLogMessageEvent += CoreNotifyLogMessage; _configManager.Initialize(); //forward signalr manager _signalrservermanager = new SignalRServerManager(); _signalrservermanager.NewClientEvent += delegate(WorkerClient client) { NewClientEvent?.Invoke(client); ClientsUpdated(_signalrservermanager.ConnectedClients.Count); }; _signalrservermanager.ClientDisconnectedEvent += delegate(WorkerClient client) { ClientDisconnectedEvent?.Invoke(client); ClientsUpdated(_signalrservermanager.ConnectedClients.Count); }; _signalrservermanager.ClientUpdatedEvent += delegate(WorkerClient client) { ClientUpdatedEvent?.Invoke(client); }; _signalrservermanager.NewLogMessageEvent += CoreNotifyLogMessage; _signalrservermanager.NewConsoleLogMessage += delegate(WorkerClient pClient, string message) { NewConsoleLogMessage?.Invoke(pClient, message); }; _signalrservermanager.NewClientErrorMessageEvent += delegate(WorkerClient pClient, String pErrorMessage, List <String> pErrorLog, WorkPackage pWorkPackage) { _commandManager?.ReceiveErrorFromWorker(pErrorLog, pWorkPackage); }; _signalrservermanager.WorkRequestedEvent += SignalrmanagerOnWorkRequestedEvent; _signalrservermanager.TrainingResultsReceivedEvent += SignalrmanagerOnTrainingResultsReceivedEvent; _signalrservermanager.PredictionResultsReceivedEvent += SignalrmanagerOnPredictionResultsReceivedEvent; _signalrservermanager.Initialize(); //frontend signalr manager _signalrclientmanager = new SignalRClientManager(); _signalrclientmanager.NewLogMessageEvent += CoreNotifyLogMessage; _signalrclientmanager.PredictionRequestedEvent += _signalrclientmanager_PredictionRequestedEvent; _signalrclientmanager.ConfigurationUpdatedEvent += delegate(ConductorConfiguration pConfiguration) { this._commandManager.UpdateConfiguration(pConfiguration); }; _signalrclientmanager.ConnectedEvent += delegate() { _commandManager.ReportConfiguration(); }; if (!String.IsNullOrWhiteSpace(predictionTarget)) { //only connect to frontend if a target is specified _signalrclientmanager.Initialize($"{predictionTarget}/server/rnn"); _signalrclientmanager.ConnectAsync() .ContinueWith(t => { this.ClientsUpdated(_signalrservermanager.ConnectedClients.Count); }, TaskContinuationOptions.OnlyOnRanToCompletion); } else { this.CoreNotifyLogMessage("SignalRClientManager will not attempt to connect to a frontend because none was specified."); } //create command manager _commandManager = new CommandManager(_configManager, _filesystemManager, _signalrservermanager.ConnectedClients); _commandManager.NewLogMessageEvent += CoreNotifyLogMessage; _commandManager.PredictionFinishedEvent += _commandManager_PredictionFinishedEvent; _commandManager.StatusChangedEvent += _commandManager_StatusChangedEvent; _commandManager.Initialize(); base.Initialize(); }
public override void Initialize() { //init updater _updateNotifier = new UpdateNotifier(); _updateNotifier.PropertyChanged += (sender, args) => OnPropertyChanged(nameof(VersionStatus)); //forward signalr manager _signalrmanager = new SignalRManager(); _signalrmanager.NewClientEvent += delegate(Client client) { NewClientEvent?.Invoke(client); }; _signalrmanager.ClientDisconnectedEvent += delegate(Client client) { ClientDisconnectedEvent?.Invoke(client); }; _signalrmanager.ClientUpdatedEvent += delegate(Client client) { ClientUpdatedEvent?.Invoke(client); }; _signalrmanager.NewLogMessageEvent += NotifyNewLogMessageEvent; _signalrmanager.NewConsoleLogMessage += delegate(Client pClient, string message) { NewConsoleLogMessage?.Invoke(pClient, message); }; _signalrmanager.WorkRequestedEvent += SignalrmanagerOnWorkRequestedEvent; _signalrmanager.ResultsReceivedEvent += SignalrmanagerOnResultsReceivedEvent; _signalrmanager.Initialize(); //create command manager _commandManager = new CommandManager(); _commandManager.NewLogMessageEvent += NotifyNewLogMessageEvent; _commandManager.Initialize(); base.Initialize(); }