public EventStream StartStream(string streamKey, params object[] events) { ensureAsStringStorage(); var stream = new EventStream(streamKey, events.Select(EventStream.ToEvent).ToArray(), true); var operation = new AppendEventsOperation(stream, _store.Events); _session.UnitOfWork.Add(operation); return(stream); }
public EventStream StartStream(Type aggregateType, Guid id, params object[] events) { ensureAsGuidStorage(); var stream = new EventStream(id, events.Select(EventStream.ToEvent).ToArray(), true) { AggregateType = aggregateType }; var operation = new AppendEventsOperation(stream, _store.Events); _session.UnitOfWork.Add(operation); return(stream); }
public EventStream Append(string stream, params object[] events) { ensureAsStringStorage(); if (_session.UnitOfWork.TryFindStream(stream, out var eventStream)) { eventStream.AddEvents(events.Select(EventStream.ToEvent)); } else { eventStream = new EventStream(stream, events.Select(EventStream.ToEvent).ToArray(), false); var operation = new AppendEventsOperation(eventStream, _store.Events); _session.UnitOfWork.Add(operation); } return(eventStream); }