Ejemplo n.º 1
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;
		}
Ejemplo n.º 2
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);
            }
        }
Ejemplo n.º 3
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;
        }