Exemplo n.º 1
0
        public SessionBoundary(IDocumentStore store, IMartenSessionLogger logger)
        {
            _store = store;
            _logger = logger;

            reset();
        }
Exemplo n.º 2
0
        public SessionBoundary(IDocumentStore store, IMartenSessionLogger logger)
        {
            _store  = store;
            _logger = logger;

            reset();
        }
Exemplo n.º 3
0
            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);
                }
            }