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 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)); }
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); }
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()); }
public Task <bool> Exists(string type, string id) { FilterDefinition <EventCommit> query = CommitFilters.ByAggregate(type, id); return(Collection.Find(query).AnyAsync()); }
public Task Delete(string type, string id) { FilterDefinition <EventCommit> query = CommitFilters.ByAggregate(type, id); return(Collection.DeleteManyAsync(query)); }