private static bool TryGetDeserializedConfig(IStorageActionsAccessor accessor, string configurationName, out FileVersioningConfiguration fileVersioningConfiguration) { if (accessor.ConfigExists(configurationName) == false) { fileVersioningConfiguration = null; return false; } var configuration = accessor.GetConfig(configurationName); if (configuration == null) { fileVersioningConfiguration = null; return false; } fileVersioningConfiguration = configuration.JsonDeserialization<FileVersioningConfiguration>(); return true; }
public void RemoveOldRevisions(string name, long revision, FileVersioningConfiguration versioningConfiguration) { var latestValidRevision = revision - versioningConfiguration.MaxRevisions; if (latestValidRevision <= 0) return; using (fileSystem.DisableAllTriggersForCurrentThread()) { fileSystem.Files.IndicateFileToDelete(string.Format("{0}/revisions/{1}", name, latestValidRevision), null); } }
public bool TryGetVersioningConfiguration(string name, RavenJObject metadata, IStorageActionsAccessor accessor, out FileVersioningConfiguration versioningConfiguration) { versioningConfiguration = null; if (name.StartsWith("Raven/", StringComparison.OrdinalIgnoreCase)) return false; if (metadata.Value<string>(VersioningUtil.RavenFileRevisionStatus) == "Historical") return false; versioningConfiguration = accessor.GetVersioningConfiguration(name); if (versioningConfiguration == null || versioningConfiguration.Exclude || (versioningConfiguration.ExcludeUnlessExplicit && !metadata.__ExternalState.ContainsKey(Constants.RavenCreateVersion)) || metadata.__ExternalState.ContainsKey(Constants.RavenIgnoreVersioning)) return false; return true; }