Esempio n. 1
0
        internal StreamAction Append(DocumentSessionBase session, Guid stream, params object[] events)
        {
            EnsureAsGuidStorage(session);

            if (stream == Guid.Empty)
            {
                throw new ArgumentOutOfRangeException(nameof(stream), "Cannot use an empty Guid as the stream id");
            }

            var wrapped = events.Select(o =>
            {
                var e      = BuildEvent(o);
                e.StreamId = stream;
                return(e);
            }).ToArray();

            if (session.WorkTracker.TryFindStream(stream, out var eventStream))
            {
                eventStream.AddEvents(wrapped);
            }
            else
            {
                eventStream = StreamAction.Append(stream, wrapped);
                session.WorkTracker.Streams.Add(eventStream);
            }

            return(eventStream);
        }
Esempio n. 2
0
        internal StreamAction Append(DocumentSessionBase session, string stream, params object[] events)
        {
            EnsureAsStringStorage(session);

            if (stream.IsEmpty())
            {
                throw new ArgumentOutOfRangeException(nameof(stream), "The stream key cannot be null or empty");
            }

            var wrapped = events.Select(o =>
            {
                var e       = BuildEvent(o);
                e.StreamKey = stream;
                return(e);
            }).ToArray();

            if (session.WorkTracker.TryFindStream(stream, out var eventStream))
            {
                eventStream.AddEvents(wrapped);
            }
            else
            {
                eventStream = StreamAction.Append(stream, wrapped);
                session.WorkTracker.Streams.Add(eventStream);
            }

            return(eventStream);
        }
Esempio n. 3
0
        internal StreamAction Append(DocumentSessionBase session, string stream, params object[] events)
        {
            EnsureAsStringStorage(session);

            if (session.UnitOfWork.TryFindStream(stream, out var eventStream))
            {
                eventStream.AddEvents(events);
            }
            else
            {
                eventStream = StreamAction.Append(stream, events);
                session.UnitOfWork.Streams.Add(eventStream);
            }

            return(eventStream);
        }
Esempio n. 4
0
        internal StreamAction Append(DocumentSessionBase session, string stream, params object[] events)
        {
            EnsureAsStringStorage(session);

            var wrapped = events.Select(BuildEvent).ToArray();

            if (session.WorkTracker.TryFindStream(stream, out var eventStream))
            {
                eventStream.AddEvents(wrapped);
            }
            else
            {
                eventStream = StreamAction.Append(stream, wrapped);
                session.WorkTracker.Streams.Add(eventStream);
            }

            return(eventStream);
        }