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
                });
            }
        }
Example #2
0
        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
            });
        }