示例#1
0
        protected SPDocumentParser GetCurrentObject(SPFarm farm, DocumentParserDefinition definition)
        {
            var currentExtension = definition.FileExtension;

            var service = SPWebService.ContentService;
            var parsers = service.PluggableParsers;

            if (parsers.ContainsKey(currentExtension))
            {
                return(parsers[currentExtension]);
            }

            return(null);
        }
示例#2
0
        private void DeployDefinition(object modelHost, SPFarm farm, DocumentParserDefinition definition)
        {
            var service = SPWebService.ContentService;
            var parsers = service.PluggableParsers;

            var currentExtension = definition.FileExtension;
            var currentParser    = GetCurrentObject(farm, definition);

            InvokeOnModelEvent(this, new ModelEventArgs
            {
                CurrentModelNode = null,
                Model            = null,
                EventType        = ModelEventType.OnProvisioning,
                Object           = currentParser,
                ObjectType       = typeof(SPDocumentParser),
                ObjectDefinition = definition,
                ModelHost        = modelHost
            });

            if (currentParser != null)
            {
                parsers.Remove(currentExtension);
                service.Update();
            }

            currentParser = new SPDocumentParser(definition.ProgId, currentExtension);
            service.PluggableParsers.Add(currentExtension, currentParser);

            InvokeOnModelEvent(this, new ModelEventArgs
            {
                CurrentModelNode = null,
                Model            = null,
                EventType        = ModelEventType.OnProvisioned,
                Object           = currentParser,
                ObjectType       = typeof(SPDocumentParser),
                ObjectDefinition = definition,
                ModelHost        = modelHost
            });

            service.Update();
        }
示例#3
0
 public static ModelNode AddDocumentParser(this ModelNode model, DocumentParserDefinition definition, Action <ModelNode> action)
 {
     return(model.AddDefinitionNode(definition, action));
 }
示例#4
0
 public static ModelNode AddDocumentParser(this ModelNode model, DocumentParserDefinition definition)
 {
     return(AddDocumentParser(model, definition, null));
 }
示例#5
0
 public static TModelNode AddDocumentParser <TModelNode>(this TModelNode model, DocumentParserDefinition definition,
                                                         Action <DocumentParserModelNode> action)
     where TModelNode : ModelNode, IFarmModelNode, new()
 {
     return(model.AddTypedDefinitionNode(definition, action));
 }
示例#6
0
 public static TModelNode AddDocumentParser <TModelNode>(this TModelNode model, DocumentParserDefinition definition)
     where TModelNode : ModelNode, IFarmModelNode, new()
 {
     return(AddDocumentParser(model, definition, null));
 }