public async Task <object> AddEvent(IEvent @event) { var aggregateId = Guid.NewGuid(); var result = await AddEventInternal(aggregateId, @event); if (result) { return(aggregateId); } return(null); }
private async Task <bool> AddEventInternal(GuidOrStringType streamId, IEvent @event) { using (var session = _DocumentStore.LightweightSession()) { streamId ??= Guid.NewGuid(); if (_DocumentStore.Events.StreamIdentity == StreamIdentity.AsGuid) { session.Events.Append((Guid)streamId, @event); } else { session.Events.Append((string)streamId, @event); } await session.SaveChangesAsync(); } return(true); }
async Task <bool> IEventCollection.AddEvent(object streamId, IEvent @event) { var guidOrStringType = streamId.ToString(); return(await AddEventInternal(guidOrStringType, @event)); }