private static void Stream_DataRow(object sender, EventStreamRow e) { if (e.Kind != EventStreamRow.RowKind.Event) { return; // We don't parse state events } if (!EmojiEventParser.CanParse(e.EventType)) { return; } EventJson ev; using (var db = new SynapseDbContext(_config.GetConnectionString("synapse"))) { ev = db.EventsJson.FirstOrDefault(e2 => e2.RoomId == e.RoomId && e2.EventId == e.EventId); if (ev == null) { return; } } var emoji = EmojiEventParser.CountEmoji(e.EventType, ev).Where(c => c.Value > 0); foreach (var pair in emoji) { log.Information("Found {0} instances of {1} emoji in type {2}", pair.Value, pair.Key, e.EventType); _redis.GetSubscriber().PublishAsync(EmojiChannel.IncrementCommands, IncrementCommand.Make(pair.Key, pair.Value, e.EventType)); _redisDb.StringIncrementAsync(pair.Key, pair.Value, CommandFlags.FireAndForget); } }
public QueuedAsyncEvent(string queueId, EventStreamRow eventStreamRow, long?sequenceNumber) { QueueId = queueId; EventStreamRow = eventStreamRow; EventStreamRowId = eventStreamRow.Id; SequenceNumber = sequenceNumber; Id = Guid.NewGuid(); }
private static void Stream_DataRow(object sender, EventStreamRow e) { using (var db = new SynapseDbContext(_config.GetConnectionString("synapse"))) { log.Information("Received event {0} ({1}) in {2}", e.EventId, e.EventType, e.RoomId); var ev = db.EventsJson.SingleOrDefault(e2 => e2.RoomId == e.RoomId && e2.EventId == e.EventId); if (ev != null) { log.Information(ev.Json); } else { log.Error("EVENT NOT FOUND"); } } }
private IEventStoreRecord SelectEventRecordFromRow(EventStreamRow row) { return(new EventStoreRecordAdapter(row, eventSerializer)); }
private static void Stream_DataRow(object sender, EventStreamRow e) { Log.Logger.Information("Received event {0} ({1}, {2}) from Synapse", e.EventId, e.Kind, e.SynapseVersion); }
public EventStoreRecordAdapter(EventStreamRow row, IEventSerializer eventSerializer) { this.row = row; this.eventSerializer = eventSerializer; }