Exemplo n.º 1
0
        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}");
            }
        }