예제 #1
0
        public async Task QueryAsync(Func <StoredEvent, Task> callback, string property, object value, string position = null, CancellationToken ct = default(CancellationToken))
        {
            var streamName = await projectionClient.CreateProjectionAsync(property, value);

            var sliceStart = projectionClient.ParsePosition(position);

            await QueryAsync(callback, streamName, sliceStart, ct);
        }
예제 #2
0
        public async Task QueryAsync(Func <StoredEvent, Task> callback, string property, object value, string?position = null, CancellationToken ct = default)
        {
            Guard.NotNull(callback);
            Guard.NotNullOrEmpty(property);
            Guard.NotNull(value);

            using (Profiler.TraceMethod <GetEventStore>())
            {
                var streamName = await projectionClient.CreateProjectionAsync(property, value);

                var sliceStart = projectionClient.ParsePosition(position);

                await QueryAsync(callback, streamName, sliceStart, ct);
            }
        }
예제 #3
0
        public async Task QueryAsync(Func <StoredEvent, Task> callback, string?streamFilter = null, string?position = null, CancellationToken ct = default)
        {
            Guard.NotNull(callback, nameof(callback));

            using (Profiler.TraceMethod <GetEventStore>())
            {
                var streamName = await projectionClient.CreateProjectionAsync(streamFilter);

                var sliceStart = projectionClient.ParsePosition(position);

                await QueryAsync(callback, streamName, sliceStart, ct);
            }
        }
예제 #4
0
        public async IAsyncEnumerable <StoredEvent> QueryAllReverseAsync(string?streamFilter = null, string?position = null, long take = long.MaxValue,
                                                                         [EnumeratorCancellation] CancellationToken ct = default)
        {
            if (take <= 0)
            {
                yield break;
            }

            var streamName = await projectionClient.CreateProjectionAsync(streamFilter);

            var sliceStart = ProjectionClient.ParsePosition(position);

            await foreach (var storedEvent in QueryAsync(streamName, sliceStart, take, ct))
            {
                yield return(storedEvent);
            }
        }