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); }
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); }