示例#1
0
        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);
            }
        }
示例#2
0
 public QueuedAsyncEvent(string queueId, EventStreamRow eventStreamRow, long?sequenceNumber)
 {
     QueueId          = queueId;
     EventStreamRow   = eventStreamRow;
     EventStreamRowId = eventStreamRow.Id;
     SequenceNumber   = sequenceNumber;
     Id = Guid.NewGuid();
 }
示例#3
0
        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");
                }
            }
        }
示例#4
0
 private IEventStoreRecord SelectEventRecordFromRow(EventStreamRow row)
 {
     return(new EventStoreRecordAdapter(row, eventSerializer));
 }
示例#5
0
 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);
 }
示例#6
0
 public EventStoreRecordAdapter(EventStreamRow row, IEventSerializer eventSerializer)
 {
     this.row             = row;
     this.eventSerializer = eventSerializer;
 }