public void Save(IEvent @event) { if (ContainsEvent(@event.Id)) { return; } if (string.IsNullOrEmpty(@event.MachineName)) { throw new Exception($"Machine name not specified on event {@event.Id}"); } string serialized = EventSerialization.Serialize(@event); if (_events.ContainsKey(@event.AggregateId)) { _events[@event.AggregateId].Add(serialized); } else { _events.Add(@event.AggregateId, new List <string> { serialized }); } }
public static void InsertEvent(this SqliteConnection conn, IEvent @event) { string serialized = EventSerialization.Serialize(@event); string sql = @"INSERT INTO events(Id, AggregateId, AggregateType, CreatedTimeUtc, MachineName, Serialized) VALUES(@Id, @AggregateId, @AggregateType, @CreatedTimeUtc, @MachineName, @Serialized);"; conn.Execute(sql, new { Id = @event.Id.ToString(), AggregateId = @event.AggregateId.ToString(), @event.AggregateType, @event.CreatedTimeUtc, @event.MachineName, Serialized = serialized }); }