Example #1
0
        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);
            }
        }
Example #2
0
        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);
        }
Example #3
0
        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);
        }