public static DeviceMessage DeserializeEvents(string deviceId, JArray events, ServiceContext serviceContext, IServiceEventSource serviceEventSource)
        {
            DeviceMessage messageRet = null;
            bool          firstEvent = true;

            foreach (JObject evt in events)
            {
                String eventType = GetEventTypeFromEvent(evt);

                if (eventType.Equals(Names.EVENT_TYPE_DEFAULT))
                {
                    serviceEventSource.ServiceMessage(serviceContext, $"Event Registry - Could not find event configuration for event type [{eventType}] - Will parse the event as Default Type");
                }

                EventConfiguration eventConfiguration = EventRegistry.GetEventConfiguration(eventType);

                DeviceEvent deviceEvent = DeserializeEvent(eventConfiguration, evt);

                if (firstEvent)
                {
                    messageRet = new DeviceMessage(eventConfiguration.MessageType, deviceId, deviceEvent);
                    firstEvent = false;
                }
                else
                {
                    messageRet.AddEvent(deviceEvent);
                }
            }

            return(messageRet);
        }
        public EventConfiguration(string eventType, string messageType, Type eventObjectType)
        {
            this.EventType      = eventType;
            this.EventObectType = eventObjectType;
            this.MessageType    = messageType;

            EventRegistry.RegisterEventType(this.EventType, this);
            RegisterAllEventTypes(eventType);
        }
        public EventConfiguration(string eventType, Type eventObjectType)
        {
            // this is for the case where the message has a single eventType (in this case message and event has the same type
            this.EventType      = eventType;
            this.EventObectType = eventObjectType;
            this.MessageType    = eventType;

            EventRegistry.RegisterEventType(this.EventType, this);
            RegisterAllEventTypes(eventType);
        }
        public MessageConfiguration(string messageType)
        {
            this.MessageType = messageType;

            if (EventRegistry.IsMessageTypeAlreadyRegistered(this.MessageType))
            {
                EventRegistry.UnRegisterMessageType(this.MessageType);
            }
            EventRegistry.RegisterMessageType(this.MessageType, this);
        }
Ejemplo n.º 5
0
        public DeviceMessage(string messageType, string deviceId, IEnumerable <DeviceEvent> events)
        {
            this.MessageType = messageType;
            this.DeviceId    = deviceId;
            this.Events      = EventRegistry.DeepCopyEvents(events);

            DeviceEvent firstEvent = events.FirstOrDefault();

            this.Timestamp = (DateTimeOffset)firstEvent.Timestamp;
        }
        public EventConfiguration(string eventType, string messageType, Type eventObjectType)
        {
            this.EventType      = eventType;
            this.EventObectType = eventObjectType;
            this.MessageType    = messageType;

            if (EventRegistry.IsEventTypeAlreadyRegistered(this.EventType))
            {
                EventRegistry.UnRegisterEventType(this.EventType);
            }
            EventRegistry.RegisterEventType(this.EventType, this);
        }
        public EventConfiguration(string eventType, Type eventObjectType)
        {
            // this is for the case where the message has a single eventType (in this case message and event has the same type
            this.EventType      = eventType;
            this.EventObectType = eventObjectType;
            this.MessageType    = eventType;

            if (EventRegistry.IsEventTypeAlreadyRegistered(this.EventType))
            {
                EventRegistry.UnRegisterEventType(this.EventType);
            }
            EventRegistry.RegisterEventType(this.EventType, this);
        }
        public MessageConfiguration(string messageType)
        {
            this.MessageType = messageType;

            EventRegistry.RegisterMessageType(this.MessageType, this);
        }
 public DeviceEventDefault(string eventType, JObject fields) : base()
 {
     this.Timestamp = EventRegistry.GetEventTimestampFromEvent(fields);
     this.EventType = eventType;
     this.Fields    = fields;
 }
Ejemplo n.º 10
0
 public DeviceEventDefault(JObject fields) : base()
 {
     this.Timestamp = EventRegistry.GetEventTimestampFromEvent(fields);
     this.EventType = Names.EVENT_TYPE_DEFAULT;
     this.Fields    = fields;
 }
 // PRiVATE METHODS
 private static Type[] GetKnownTypes()
 {
     return(EventRegistry.GetEventTypeReferencesFromAllAssemblies());
 }