Esempio n. 1
0
        void OnBrokerStatus(QueueSpy.Messages.BrokerStatus brokerStatus)
        {
            logger.Log("BrokerStatus received, id: {0}.", brokerStatus.BrokerId);
            var brokerModel = brokerModelLoader.LoadBrokerModel(brokerStatus.BrokerId);

            var context = new CompareContext {
                Bus       = bus,
                SampledAt = brokerStatus.SampledAtUtc
            };

            context.SendMessage = brokerEvent => {
                brokerEvent.BrokerId    = brokerStatus.BrokerId;
                brokerEvent.DateTimeUTC = brokerStatus.SampledAtUtc;
                bus.SendCommand <Messages.BrokerEvent>(brokerEvent);
            };

            analysisModel.VisitUnchanged(brokerModel, brokerStatus, context);
        }
        static void CheckBrokerStatus(Broker brokerModel, QueueSpy.Messages.BrokerStatus brokerStatus, CompareContext context)
        {
            if (!brokerStatus.IsResponding && brokerModel.ContactOK)
            {
                context.SendMessage(new Messages.BrokerEvent {
                    EventTypeId = (int)EventType.BrokerContactLost,
                    Description = "Broker Contact Lost."
                });
            }

            if (brokerStatus.IsResponding && !brokerModel.ContactOK)
            {
                context.SendMessage(new Messages.BrokerEvent {
                    EventTypeId = (int)EventType.BrokerContactEstablished,
                    Description = "Broker Contact Established."
                });
            }
        }