public void TraceInsert(UntypedEvent evt, string prefix) { StringBuilder builder = new StringBuilder() .Append(this._config.TraceName) .Append(prefix); if (evt.EventKind != EventKind.Insert) { throw new InvalidOperationException(); } for (int ordinal = 0; ordinal < this._type.Fields.Count; ordinal++) { if (this._config.SingleLine) { builder.Append(" "); } else { builder .AppendLine() .Append('\t') .Append(this._type.FieldsByOrdinal[ordinal].Name) .Append(" = "); } object value = evt.GetField(ordinal) ?? "NULL"; builder.Append(String.Format(CultureInfo.InvariantCulture, "{0}", value)); } this._trace(builder.ToString()); }
/// <summary> /// Traces an insert event. /// </summary> /// <param name="evt">Event to trace.</param> /// <param name="prefix">String prefix to use when tracing the event.</param> public void TraceInsert(UntypedEvent evt, string prefix) { StringBuilder builder = new StringBuilder() .Append(this.config.TraceName) .Append(": ") .Append(prefix); if (evt.EventKind != EventKind.Insert) { throw new InvalidOperationException(); } for (int ordinal = 0; ordinal < this.type.Fields.Count; ordinal++) { if (this.config.SingleLine) { builder.Append(" "); } else { builder .AppendLine() .Append('\t') .Append(this.type.FieldsByOrdinal[ordinal].Name) .Append(" = "); } object value = evt.GetField(ordinal) ?? "NULL"; builder.Append(String.Format(CultureInfo.InvariantCulture, "{0}", value)); } this.trace(builder.ToString()); }
private static string CreateLineFromEvent(UntypedEvent evt, CepEventType eventType, string[] delimiter, Dictionary <int, int> order, CultureInfo culture) { StringBuilder builder = new StringBuilder(); PointEvent pointEvent = evt as PointEvent; IntervalEvent intervalEvent = evt as IntervalEvent; EdgeEvent edgeEvent = evt as EdgeEvent; if (EventKind.Cti == evt.EventKind) { builder .Append("CTI") .Append(delimiter[0]); if (null != pointEvent) { builder.Append(pointEvent.StartTime.ToString()); } else if (null != intervalEvent) { builder.Append(intervalEvent.StartTime.ToString()); } else { builder.Append(edgeEvent.StartTime.ToString()); } } else { builder .Append("INSERT") .Append(delimiter[0]); if (null != pointEvent) { builder.Append(pointEvent.StartTime.ToString()); } else if (null != intervalEvent) { builder .Append(intervalEvent.StartTime.ToString()) .Append(delimiter[0]) .Append(intervalEvent.EndTime.ToString()) .Append(delimiter[0]); } else { builder .Append(edgeEvent.EdgeType.ToString()) .Append(delimiter[0]) .Append(edgeEvent.StartTime.ToString()) .Append(delimiter[0]) .Append((EdgeType.End == edgeEvent.EdgeType) ? edgeEvent.EndTime.ToString() : string.Empty) .Append(delimiter[0]); } SerializePayload(evt, eventType, delimiter, order, culture, ref builder); } return(builder.ToString()); }
public static void AddPayloadDetailsRow(StringBuilder sb, UntypedEvent evt, CepEventType eventType) { foreach (var p in eventType.FieldsByOrdinal) { object value = evt.GetField(p.Key); sb.AppendFormat("{0} = {1}, ", p.Value.Name, ((value != null) ? value.ToString() : "NULL")); } }
private static void SerializePayload(UntypedEvent evt, CepEventType eventType, string[] delimiter, Dictionary <int, int> order, CultureInfo culture, ref StringBuilder builder) { for (int ordinal = 0; ordinal < eventType.FieldsByOrdinal.Count; ordinal++) { object value = evt.GetField(order[ordinal]) ?? "NULL"; builder .AppendFormat(culture, "{0}", value) .Append(delimiter[0]); } }
/// <summary> /// Given an untyped PointEvent generate a textual representation suitable for console, /// trace, etc, output. /// </summary> /// <param name="currEvent">An untyped PointEvent</param> /// <returns>A formatted string of the contents of the PointEvent</returns> public static string FormatEventForDisplay(this UntypedEvent evt, CepEventType eventType, bool verbose) { StringBuilder sb = new StringBuilder(); DateTimeOffset startTime = DateTimeOffset.MinValue; DateTimeOffset endTime = DateTimeOffset.MinValue; if (evt is PointEvent) { startTime = ((PointEvent)evt).StartTime; sb.AppendFormat("POINT({0}) ", startTime.ToString("hh:mm:ss.fff")); } if (evt is IntervalEvent) { startTime = ((IntervalEvent)evt).StartTime; endTime = ((IntervalEvent)evt).EndTime; sb.AppendFormat("INTERVAL({0} - {1}) ", startTime.ToString("hh:mm:ss.fff"), endTime.ToString("hh:mm:ss.fff")); } if (evt is EdgeEvent) { startTime = ((EdgeEvent)evt).StartTime; endTime = DateTimeOffset.MaxValue; sb.AppendFormat("EDGE({0} - ?) ", startTime.ToString("hh:mm:ss.fff")); } if (EventKind.Cti == evt.EventKind) { sb.AppendFormat(" CTI - start time: {0}", startTime); } else if (verbose) { AddPayloadDetailsList(sb, evt, eventType); } else { AddPayloadDetailsRow(sb, evt, eventType); } return(sb.ToString()); }
/// <summary> /// Creates a string from an event payload. /// </summary> /// <param name="evt">Event of which to serialize the payload.</param> /// <param name="eventType">CEP event type.</param> /// <param name="delimiter">Delimiter between event fields.</param> /// <param name="builder">StringBuilder to append the payload string to.</param> private static void SerializePayload(UntypedEvent evt, CepEventType eventType, char delimiter, ref StringBuilder builder) { for (int ordinal = 0; ordinal < eventType.FieldsByOrdinal.Count; ordinal++) { object value = evt.GetField(ordinal) ?? "NULL"; if (value.GetType().FullName == "System.Byte[]") { System.Text.UTF8Encoding enc = new System.Text.UTF8Encoding(); builder .AppendFormat(CultureInfo.InvariantCulture, "{0}", enc.GetString((byte[])value)) .Append(delimiter); } else { builder .AppendFormat(CultureInfo.InvariantCulture, "{0}", value) .Append(delimiter); } } }