Beispiel #1
0
        public IAsyncEnumerable <EventCommit> EnumerateCommits(string type, string id, ISet <Type> eventTypes,
                                                               int maxVersion)
        {
            FilterDefinition <EventCommit> query =
                CommitFilters.ByAggregateAnyTypeBelowOrdinal(type, id, eventTypes, maxVersion);

            return(Enumerate(query));
        }
Beispiel #2
0
        public async Task EnumerateCommits(string type, string id, Action <EventCommit> consumer, Action completed)
        {
            FilterDefinition <EventCommit> query = CommitFilters.ByAggregate(type, id);

            await Enumerate(consumer, query);

            completed();
        }
        public async Task EnumerateCommits(string type, string id, ISet <Type> eventTypes, int maxVersion, Action <EventCommit> consumer, Action completed)
        {
            FilterDefinition <EventCommit> query = CommitFilters.ByAggregateAnyTypeBelowOrdinal(type, id, eventTypes, maxVersion);

            await Enumerate(consumer, query);

            completed();
        }
Beispiel #4
0
        public IAsyncEnumerable <EventCommit> EnumerateCommits(string type, string id, long maxversion,
                                                               EnumerateDirection direction = EnumerateDirection.Ascending, int?limit = null,
                                                               CancellationToken token      = default)
        {
            FilterDefinition <EventCommit> query = Filters.And(CommitFilters.ByAggregate(type, id),
                                                               Filters.Lte(x => x.VersionEvents, maxversion));

            return(Enumerate(query, direction, limit, token));
        }
Beispiel #5
0
        public async Task <long> GetVersion(string type, string id)
        {
            FilterDefinition <EventCommit> query = CommitFilters.ByAggregate(type, id);

            EventCommit result = await Collection.Find(query).Sort(Sorts.Descending(x => x.VersionEvents))
                                 .FirstOrDefaultAsync();

            return(result.VersionEvents);
        }
Beispiel #6
0
        public async Task <long> GetVersion(string type, string id)
        {
            FilterDefinition <EventCommit> query = CommitFilters.ByAggregate(type, id);

            List <EventCommit> commits = await Collection
                                         .Find(query)
                                         .ToListAsync();

            if (commits == null || commits.Count == 0)
            {
                return(0);
            }

            return(commits
                   .SelectMany(x => x.Events)
                   .Count());
        }
Beispiel #7
0
        public IAsyncEnumerable <EventCommit> EnumerateCommits(string type, string id, ISet <Type> eventTypes)
        {
            FilterDefinition <EventCommit> query = CommitFilters.ByAggregateAnyType(type, id, eventTypes);

            return(Enumerate(query));
        }
Beispiel #8
0
        public Task <bool> Exists(string type, string id)
        {
            FilterDefinition <EventCommit> query = CommitFilters.ByAggregate(type, id);

            return(Collection.Find(query).AnyAsync());
        }
Beispiel #9
0
        public Task Delete(string type, string id)
        {
            FilterDefinition <EventCommit> query = CommitFilters.ByAggregate(type, id);

            return(Collection.DeleteManyAsync(query));
        }