/// <summary> /// Event handler for the NewWindow event. /// </summary> /// <param name="sender">Events Service</param> /// <param name="e">The NewWindow event args</param> private void JetstreamService_NewWindow(object sender, NewWindowEventArgs e) { // lock so we process all events in order lock (_newWindowLock) { foreach (TersoSolutions.Jetstream.SDK.Application.Messages.JetstreamEvent m in e.Messages) { try { Debug.WriteLine("Jetstream Message: " + m.EventType); // now we can deserialize the XML message into the appropriate message switch (m.EventType.Trim().ToLower()) { case "aggregateevent": { AE.Jetstream message = (AE.Jetstream)m; ProcessAggregateEvent(message); break; } case "commandcompletionevent": { CCE.Jetstream message = (CCE.Jetstream)m; ProcessCommandCompletionEvent(message); break; } case "commandqueuedevent": { CQE.Jetstream message = (CQE.Jetstream)m; ProcessCommandQueuedEvent(message); break; } case "devicefailureevent": { DFE.Jetstream message = (DFE.Jetstream)m; ProcessDeviceFailureEvent(message); break; } case "devicerestoreevent": { DRE.Jetstream message = (DRE.Jetstream)m; ProcessDeviceRestoreEvent(message); break; } case "heartbeatevent": { HE.Jetstream message = (HE.Jetstream)m; ProcessHeartbeatEvent(message); break; } case "logentryevent": { LEE.Jetstream message = (LEE.Jetstream)m; ProcessLogEntryEvent(message); break; } case "logicaldeviceaddedevent": { LDAE.Jetstream message = (LDAE.Jetstream)m; ProcessLogicalDeviceAddedEvent(message); break; } case "logicaldeviceremovedevent": { LDRE.Jetstream message = (LDRE.Jetstream)m; ProcessLogicalDeviceRemovedEvent(message); break; } case "objectevent": { OE.Jetstream message = (OE.Jetstream)m; ProcessObjectEvent(message); break; } case "sensorreadingevent": { SRE.Jetstream message = (SRE.Jetstream)m; ProcessSensorReadingEvent(message); break; } default: { ProcessUnknownMessage(m.ToString()); break; } } } catch (Exception ex) { EventLog.WriteEntry("JetstreamSDK", ex.Message + "\n" + ex.StackTrace); } } } }
/// <summary> /// Method for processing a new <paramref name="logEnteryEvent"/> /// </summary> /// <param name="logEntryEvent"> /// Deserialized LogEntryEvent message in the xsd.exe object model. /// </param> protected virtual void ProcessLogEntryEvent(LEE.Jetstream logEntryEvent) { }
public void LogEntryEventTest() { try { LEE.JetstreamHeader logHeader = new LEE.JetstreamHeader(); LEE.Jetstream logEntryEvent = new LEE.Jetstream(); logHeader.LogicalDeviceId = LogicalDeviceId; LEE.JetstreamLogEntryEvent lgEntEvt = new LEE.JetstreamLogEntryEvent(); LEE.JetstreamLogEntryEventLogEntryList lgEntEvtLst = new LEE.JetstreamLogEntryEventLogEntryList(); LEE.JetstreamLogEntryEventLogEntryListLogEntryLevel level; level = LEE.JetstreamLogEntryEventLogEntryListLogEntryLevel.Trace; LEE.JetstreamLogEntryEventLogEntryListLogEntryParameterList paramLst = new LEE.JetstreamLogEntryEventLogEntryListLogEntryParameterList(); LEE.JetstreamLogEntryEventLogEntryListLogEntryParameterListParameter[] param = new LEE.JetstreamLogEntryEventLogEntryListLogEntryParameterListParameter[1]; param[0] = new LEE.JetstreamLogEntryEventLogEntryListLogEntryParameterListParameter { Name = "WinName" + LogicalDeviceId, Value = "Val" + LogicalDeviceId }; paramLst.Parameter = param; LEE.JetstreamLogEntryEventLogEntryListLogEntry[] enty = new LEE.JetstreamLogEntryEventLogEntryListLogEntry[1]; enty[0] = new LEE.JetstreamLogEntryEventLogEntryListLogEntry { Level = level, LogTime = DateTime.Now, Message = "WindMsg" + LogicalDeviceId, Type = "WinType", ParameterList = paramLst }; logEntryEvent.Header = logHeader; logEntryEvent.LogEntryEvent = lgEntEvt; logEntryEvent.LogEntryEvent.LogEntryList = lgEntEvtLst; logEntryEvent.LogEntryEvent.LogEntryList.LogEntry = enty; #region window StringBuilder sb = new StringBuilder(); sb.AppendLine("ProcessLogEntryEvent for Logical Device " + logEntryEvent.Header.LogicalDeviceId); foreach (var entry in logEntryEvent.LogEntryEvent.LogEntryList.LogEntry) { sb.AppendFormat("Level: {0}\r\n", entry.Level); sb.AppendFormat("Log Time: {0} {1}\r\n", entry.LogTime.ToLongDateString(), entry.LogTime.ToLongTimeString()); sb.AppendFormat("Message: {0}\r\n", entry.Message); sb.AppendFormat("Type: {0}\r\n", entry.Type); if (entry.ParameterList.Parameter != null) { // collect the name/value pairs associated with the log entry event foreach (var parm in entry.ParameterList.Parameter) { sb.AppendFormat("Parameter: {0} = {1}\r\n", parm.Name, parm.Value); } } } #endregion } catch (Exception ex) { Assert.Fail(ex.ToString()); } }