/// <summary> /// Write a done key /// </summary> /// <param name="writer">An event writer</param> /// <param name="eventTemplate">An event template</param> static async Task WriteEventDone(EventStreamWriter writer, EventElement eventTemplate) { var @event = eventTemplate; @event.Unbroken = false; @event.Done = true; await writer.WriteEventAsync(@event); }
/// <summary> /// Write event data without appending a newline seperator. /// </summary> /// <param name="writer">An event writer</param> /// <param name="eventTemplate">An event template</param> /// <param name="eventData">Event data</param> static async Task WriteEventData(EventStreamWriter writer, EventElement eventTemplate, string eventData) { var @event = eventTemplate; @event.Data = eventData; await writer.WriteEventAsync(@event); }
/// <summary> /// Write events using EventStreamWriter /// </summary> // This method can be used by manual testing thus is public public static async Task WriteEvents() { using (var writer = new EventStreamWriter()) { var eventTemplate = new EventElement { Index = "sdk-tests2", Host = "test host", SourceType = "test sourcetype", Source = "test source", }; await WriteEventData( writer, eventTemplate, "Event with all default fields set"); await WriteEventData( writer, eventTemplate, "Letter O with double acute: \u0150"); eventTemplate.Unbroken = true; await WriteEventData( writer, eventTemplate, "Part 1 of an unbroken event "); await WriteEventData( writer, eventTemplate, "Part 2 of an unbroken event ending with newline" + Environment.NewLine); await WriteEventDone( writer, eventTemplate); eventTemplate.Unbroken = false; await WriteEventData( writer, eventTemplate, "Event after done key"); var timedEvent = eventTemplate; timedEvent.Time = new DateTime(2013, 1, 1, 0, 0, 0, 1, DateTimeKind.Utc); timedEvent.Data = "Event with fixed time"; await writer.WriteEventAsync(timedEvent); await WriteMultiplex(writer); } }