Esempio n. 1
0
        private IValue VisitInternal(IVault copyCat, IValue internalValue)
        {
            var copy = copyCat.CreateValue(internalValue.VPath);

            copy.SetContent(internalValue.ContentStream).SetEntireMetadata(internalValue.Metadata);
            return(copy);
        }
Esempio n. 2
0
        private static IValue GetStructureVersionHolder(this IVault vault)
        {
            // Load all possible version holders
            var versionHolder1 = vault.GetValue("$version");
            var versionHolder2 = vault.GetValue("$format");
            var versionHolder3 = vault.GetValue("$structureversion");

            // Get version token from the latest holder
            var genuineHolder = versionHolder3 ?? versionHolder2 ?? versionHolder1;

            genuineHolder = genuineHolder ?? vault.CreateValue("$structureversion");
            var genuineVersion = genuineHolder.ContentString;

            // Ensure that all kinds of version holders are present in the vault (backward compat!)
            versionHolder1 = versionHolder1 ?? vault.GetOrCreateValue("$version");
            versionHolder2 = versionHolder2 ?? vault.GetOrCreateValue("$format");
            versionHolder3 = versionHolder3 ?? vault.GetOrCreateValue("$structureversion");
            var allHolders = new [] { versionHolder1, versionHolder2, versionHolder3 };

            // Now synchronize all version signatures across all holders
            foreach (var anyVersionHolder in allHolders)
            {
                if (anyVersionHolder != null)
                {
                    anyVersionHolder.SetContent(genuineVersion);
                }
            }

            // Return only the latest holder
            return(genuineHolder);
        }
Esempio n. 3
0
        protected virtual IValue Visit(IVault copyCat, IValue value)
        {
            var copy = copyCat.CreateValue(value.VPath);

            copy.SetContent(value.ContentStream).SetEntireMetadata(value.Metadata);
            return(copy);
        }
Esempio n. 4
0
 private IValue VisitInternal(IVault copyCat, IValue internalValue)
 {
     var copy = copyCat.CreateValue(internalValue.VPath);
     copy.SetContent(internalValue.ContentStream).SetEntireMetadata(internalValue.Metadata);
     return copy;
 }
Esempio n. 5
0
 protected virtual IValue Visit(IVault copyCat, IValue value)
 {
     var copy = copyCat.CreateValue(value.VPath);
     copy.SetContent(value.ContentStream).SetEntireMetadata(value.Metadata);
     return copy;
 }