private static bool CanReset(UserFriendlySettingsLayer.Identity layer)
        {
            if (layer.CharacteristicMount == null)
                return false;

            // Look for our metadata id to see if we should prevent reset
            var metadata = layer.CharacteristicMount.Metadata;
            return !metadata.TryGet(TemplatesLoader.PreventReset);
        }
            private static bool CanDelete(UserFriendlySettingsLayer.Identity layer)
            {
                if (layer.CharacteristicMount == null)
                    return false;

                // Look for our metadata id to see if we should prevent deletion
                var metadata = layer.CharacteristicMount.Metadata;
                return !metadata.TryGet(SettingsLoader.IsNonUserEditable);
            }
Exemplo n.º 3
0
        private void MountSettingsFile(Lifetime lifetime, string pluginId, FileSystemPath path,
                                       UserFriendlySettingsLayer.Identity hostId,
                                       IThreading threading, IFileSystemTracker filetracker,
                                       FileSettingsStorageBehavior behavior,
                                       UserInjectedSettingsLayers userInjectedSettingsLayers)
        {
            var id = string.Format("extension::{0}-{1}", pluginId, path.Name);
            var persistentId = new LayerId(id);

            var pathAsProperty = new Property<FileSystemPath>(lifetime, "InjectedFileStoragePath", path);
            var serialization = CreateXmlFileSettingsStorage(lifetime, threading, filetracker, behavior, id, pathAsProperty);
            var descriptor = new LayerDescriptor(lifetime, hostId, persistentId, serialization.Storage,
                                                 MountPath.Default, () => { });

            descriptor.InitialMetadata.Set(UserFriendlySettingsLayers.DisplayName,
                                           string.Format("{0} » {1}", pluginId, path.NameWithoutExtension));
            descriptor.InitialMetadata.Set(UserFriendlySettingsLayers.Origin,
                                           string.Format("Published by plugin: {0}", pluginId));
            descriptor.InitialMetadata.Set(UserFriendlySettingsLayers.DiskFilePath, path);
            descriptor.InitialMetadata.Set(IsNonUserEditable, true);

            userInjectedSettingsLayers.RegisterUserInjectedLayer(lifetime, descriptor);
        }