public SessionBoundary(IDocumentStore store, IMartenSessionLogger logger) { _store = store; _logger = logger; reset(); }
public StreamAction StartNewStream(IMartenSessionLogger logger = null) { var events = new object[] { new AEvent(), new BEvent(), new CEvent(), new DEvent() }; using var session = Store.Events.TenancyStyle == TenancyStyle.Conjoined ? Store.LightweightSession(TenantId) : Store.LightweightSession(); session.Listeners.Add(new EventMetadataChecker()); if (logger != null) { session.Logger = logger; } if (Store.Events.StreamIdentity == StreamIdentity.AsGuid) { session.Events.StartStream(StreamId, events); session.SaveChanges(); var stream = StreamAction.Append(StreamId); stream.Version = 4; stream.TenantId = TenantId; return(stream); } else { session.Events.StartStream(StreamId.ToString(), events); session.SaveChanges(); var stream = StreamAction.Start(StreamId.ToString(), new AEvent()); stream.Version = 4; stream.TenantId = TenantId; return(stream); } }