public DateTimeOffset GetLastModified(string module) { var cacheKey = CacheKey.With(GetType(), "LastModifiedDateTime", module); return(PlatformCache.GetOrCreateExclusive(cacheKey, (cacheEntry) => { cacheEntry.AddExpirationToken(ChangesCollectorCacheRegion.CreateChangeTokenForKey(module)); return DateTimeOffset.Now; })); }
public async Task Publish <T>(T @event, CancellationToken cancellationToken = default(CancellationToken)) where T : class, IEvent { var module = GetModuleByType(@event.GetType()); ChangesCollectorCacheRegion.ExpireTokenForKey(module); if (!EventSuppressor.EventsSuppressed && _routes.TryGetValue(@event.GetType(), out var handlers)) { await Task.WhenAll(handlers.Select(handler => handler(@event, cancellationToken))); } }