public static void Publish(PersistedEvent tup) { foreach (var item in s_subscribers.Values) { item.Writer.TryWrite(tup); } }
private void SendToAll(JsonDocument jsonDocument) { var aggregateId = jsonDocument.RootElement.GetProperty("AggregateId").GetGuid(); var eventType = jsonDocument.RootElement.GetProperty("EventType").GetString(); var id = jsonDocument.RootElement.GetProperty("Id").GetInt64(); var timeStamp = InstantPattern.General.Parse(jsonDocument.RootElement.GetProperty("Timestamp").GetString()).Value; var version = jsonDocument.RootElement.GetProperty("Version").GetInt32(); var payload = jsonDocument.RootElement.GetProperty("Payload").GetBytesFromBase64(); var metadata = jsonDocument.RootElement.GetProperty("Metadata").GetBytesFromBase64(); var result = new PersistedEvent { AggregateId = aggregateId, EventType = eventType, Id = id, Metadata = metadata, Payload = payload, Timestamp = timeStamp, Version = version }; EventChannel.Publish(result); }