Пример #1
0
 protected virtual SPOfficialFileHost FindExistingObject(SPWebApplication webApp,
                                                         OfficialFileHostDefinition definition)
 {
     return(webApp.OfficialFileHosts
            .FirstOrDefault(h => !string.IsNullOrEmpty(h.OfficialFileName) &&
                            h.OfficialFileName.ToUpper() == definition.OfficialFileName.ToUpper()));
 }
Пример #2
0
        private void MapObject(SPOfficialFileHost currentObject, OfficialFileHostDefinition typedDefinition)
        {
            currentObject.OfficialFileUrl  = new Uri(typedDefinition.OfficialFileUrl);
            currentObject.OfficialFileName = typedDefinition.OfficialFileName;
            currentObject.ShowOnSendToMenu = typedDefinition.ShowOnSendToMenu;

            if (!string.IsNullOrEmpty(typedDefinition.Explanation))
            {
                currentObject.Explanation = typedDefinition.Explanation;
            }

            currentObject.Action = (SPOfficialFileAction)typedDefinition.Action;
        }
Пример #3
0
        private SPOfficialFileHost CreateNewObject(SPWebApplication webApp,
                                                   OfficialFileHostDefinition typedDefinition)
        {
            SPOfficialFileHost result = null;

            if (typedDefinition.CreateUniqueId)
            {
                result = new SPOfficialFileHost(true);
            }
            else
            {
                result = new SPOfficialFileHost(false);
            }

            webApp.OfficialFileHosts.Add(result);

            return(result);
        }
Пример #4
0
        private void DeployDefinition(object modelHost,
                                      WebApplicationModelHost typedModelHost,
                                      OfficialFileHostDefinition typedDefinition)
        {
            var currentObject = FindExistingObject(typedModelHost.HostWebApplication, typedDefinition);

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

            if (currentObject == null)
            {
                currentObject = CreateNewObject(typedModelHost.HostWebApplication, typedDefinition);
                MapObject(currentObject, typedDefinition);
            }
            else
            {
                MapObject(currentObject, typedDefinition);
            }

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

            typedModelHost.HostWebApplication.Update();
        }
 public static TModelNode AddOfficialFileHost <TModelNode>(this TModelNode model, OfficialFileHostDefinition definition,
                                                           Action <OfficialFileHostModelNode> action)
     where TModelNode : ModelNode, IWebApplicationModelNode, new()
 {
     return(model.AddTypedDefinitionNode(definition, action));
 }
 public static TModelNode AddOfficialFileHost <TModelNode>(this TModelNode model, OfficialFileHostDefinition definition)
     where TModelNode : ModelNode, IWebApplicationModelNode, new()
 {
     return(AddOfficialFileHost(model, definition, null));
 }