public static Task AppendToStream(
     this IEventStore eventStore,
     string streamId,
     int expectedVersion,
     NewStreamEvent newStreamEvent)
 {
     return(eventStore.AppendToStream(streamId, expectedVersion, new[] { newStreamEvent }));
 }
 private static async Task AppendEvents(IEventStore eventStore, string streamId, int numberOfEvents)
 {
     for (int i = 0; i < numberOfEvents; i++)
     {
         var newStreamEvent = new NewStreamEvent(Guid.NewGuid(), "MyEvent", "{}");
         await eventStore.AppendToStream(streamId, ExpectedVersion.Any, newStreamEvent);
     }
 }
        private static NewStreamEvent[] CreateNewStreamEventSequence(int startId, int count)
        {
            var streamEvents = new List <NewStreamEvent>();

            for (int i = 0; i < count; i++)
            {
                var eventNumber    = startId + i;
                var eventId        = Guid.Parse("00000000-0000-0000-0000-" + eventNumber.ToString().PadLeft(12, '0'));
                var newStreamEvent = new NewStreamEvent(eventId, "type", "\"data\"", "\"metadata\"");
                streamEvents.Add(newStreamEvent);
            }
            return(streamEvents.ToArray());
        }
        private static NewStreamEvent[] CreateNewStreamEvents()
        {
            var eventsToWrite    = new List <NewStreamEvent>();
            var largeStreamCount = 7500;

            for (int i = 0; i < largeStreamCount; i++)
            {
                var envelope = new NewStreamEvent(Guid.NewGuid(), $"event{i}", "{}", $"{i}");

                eventsToWrite.Add(envelope);
            }

            return(eventsToWrite.ToArray());
        }
Esempio n. 5
0
            private StreamEvent CreateStreamEvent(NewStreamEvent e)
            {
                switch (e.Kind)
                {
                case StreamEvent.EventKind.OnCompleted:
                    return(new OnCompletedEvent(e.Info));

                case StreamEvent.EventKind.OnNext:
                    return(new OnNextEvent(e.Info, TranslatePayload(e.Payload)));

                case StreamEvent.EventKind.OnError:
                    return(new OnErrorEvent(e.Info, TranslatePayload(e.Payload)));

                default:
                    throw new ArgumentException(nameof(e));
                }

                object TranslatePayload(PayloadInfo payloadInfo)
                {
                    if (payloadInfo is SimplePayloadInfo s)
                    {
                        return(s.Value);
                    }

                    var objPayload = (ObjectPayloadInfo)payloadInfo;
                    var typeInfo   = mTypeInfoCache.Lookup(objPayload.TypeId).Value; // should always arrive before object that uses it

                    var properties = mObjectPropertiesInfoByObjectId.WatchValue(objPayload.ObjectId)
                                     .Select(propsInfo => propsInfo.PropertyValues.Select(TranslatePayload))
                                     .Select(propValues => typeInfo.PropertyNames.Zip(propValues, (name, val) => new KeyValuePair <string, object>(name, val)))
                                     .Select(namesAndValues => namesAndValues.ToImmutableDictionary());

                    return(new PayloadObject(
                               typeInfo.TypeName,
                               objPayload.ObjectId,
                               objPayload.Representation,
                               objPayload.IsExceptionGettingValue,
                               objPayload.ItemCount,
                               properties.Take(1),
                               Observable.Never <IImmutableList <object> >()));
                }
            }