public void Notify(IPublishableMessage message) { if (message is SingleAnalogValueSCADAMessage) { SingleAnalogValueSCADAMessage msg = (SingleAnalogValueSCADAMessage)message; Console.WriteLine($"Merenje: {msg.AnalogModbusData.MeasurementGid} {msg.AnalogModbusData.Value}"); } else if (message is MultipleAnalogValueSCADAMessage) { MultipleAnalogValueSCADAMessage msg = (MultipleAnalogValueSCADAMessage)message; foreach (var item in msg.Data) { Console.WriteLine($"Merenje: {item.Key} {item.Value}"); } } TopologyForUIMessage model = message as TopologyForUIMessage; PrintUI(model.UIModel); }
public void WebTopologyModelProviderDelegate(List <UIModel> uIModels) { //Dok se ne sredi logika za vise root-ova na WEB-u UIModel uIModel; if (uIModels.Count == 0) { uIModel = new UIModel(); } else { uIModel = uIModels.First(); } TopologyForUIMessage message = new TopologyForUIMessage(uIModel); CalculationEnginePublication publication = new CalculationEnginePublication(Topic.TOPOLOGY, message); try { using (PublisherProxy publisherProxy = proxyFactory.CreateProxy <PublisherProxy, IPublisher>(EndpointNames.PublisherEndpoint)) { if (publisherProxy == null) { string errMessage = "WebTopologyModelProviderDelegate => PublisherProxy is null."; logger.LogError(errMessage); throw new NullReferenceException(errMessage); } publisherProxy.Publish(publication, "CE_PUBLISHER"); logger.LogDebug("Topology publisher published new ui model successfully."); } } catch (Exception ex) { logger.LogError($"Topology publisher failed to publish new ui model. Exception: {ex.Message}"); } }