public static bool IsTemporalVersioningEnabled(this DocumentDatabase database, string key, RavenJObject metadata) { if (key == null) { return(false); } // Don't ever version raven system documents. if (key.StartsWith("Raven/", StringComparison.InvariantCultureIgnoreCase)) { return(false); } // Don't version this one from the test helpers either. if (key == "Pls Delete Me") { return(false); } // Don't version any doc that isn't an entity. var entityName = metadata.Value <string>(Constants.RavenEntityName); if (entityName == null) { return(false); } bool enabled; var cacheKey = (database.Name ?? "") + ":" + entityName; if (ConfigCache.TryGetValue(cacheKey, out enabled)) { return(enabled); } var temporalVersioningConfiguration = database.GetTemporalVersioningConfiguration(entityName); enabled = temporalVersioningConfiguration != null && temporalVersioningConfiguration.Enabled; ConfigCache.TryAdd(cacheKey, enabled); return(enabled); }