public async Task UpdateScadaData(Dictionary <long, AnalogModbusData> scadaData) { var scadaDipatcher = new ScadaHubDispatcher(); scadaDipatcher.Connect(); try { await scadaDipatcher.NotifyScadaDataUpdate(scadaData); } catch (Exception e) { string errorMessage = $"{baseLogString} UpdateScadaData => exception {e.Message}"; Logger.LogError(errorMessage, e); } }
public async Task Notify(IPublishableMessage message, string publisherName) { if (message is ActiveOutageMessage activeOutage) { Logger.LogInformation($"{baseLogString} Notify => ActiveOutageMessageReceived. OutageId: 0x{activeOutage.OutageId:x16} ElementId: 0x{activeOutage.OutageElementGid}"); var outageDispatcher = new OutageHubDispatcher(_outageMapper); outageDispatcher.Connect(); try { await outageDispatcher.NotifyActiveOutageUpdate(activeOutage); } catch (Exception e) { string errorMessage = $"{baseLogString} Notify => exception {e.Message}"; Logger.LogError(errorMessage, e); } } else if (message is ArchivedOutageMessage archivedOutage) { var outageDispatcher = new OutageHubDispatcher(_outageMapper); outageDispatcher.Connect(); try { await outageDispatcher.NotifyArchiveOutageUpdate(archivedOutage); } catch (Exception e) { string errorMessage = $"{baseLogString} Notify => exception {e.Message}"; Logger.LogError(errorMessage, e); } } else if (message is TopologyForUIMessage topologyMessage) { OmsGraphViewModel graph = _graphMapper.Map(topologyMessage.UIModel); var graphDispatcher = new GraphHubDispatcher(); graphDispatcher.Connect(); try { await graphDispatcher.NotifyGraphUpdate(graph.Nodes, graph.Relations); } catch (Exception e) { string errorMessage = $"{baseLogString} Notify => exception {e.Message}"; Logger.LogError(errorMessage, e); } } else if (message is MultipleAnalogValueSCADAMessage analogValuesMessage) { Dictionary <long, AnalogModbusData> analogModbusData = new Dictionary <long, AnalogModbusData>(analogValuesMessage.Data); var scadaDispatcher = new ScadaHubDispatcher(); scadaDispatcher.Connect(); try { await scadaDispatcher.NotifyScadaDataUpdate(analogModbusData); } catch (Exception e) { string errorMessage = $"{baseLogString} Notify => exception {e.Message}"; Logger.LogError(errorMessage, e); } } }