public static TModelNode AddDeleteQuickLaunchNavigationNodes <TModelNode>(this TModelNode model,
                                                                           DeleteQuickLaunchNavigationNodesDefinition definition,
                                                                           Action <DeleteQuickLaunchNavigationNodesModelNode> action)
     where TModelNode : ModelNode, IWebHostModelNode, new()
 {
     return(model.AddTypedDefinitionNode(definition, action));
 }
Ejemplo n.º 2
0
        private void DeployDefinition(object modelHost, WebModelHost typedModelHost, DeleteQuickLaunchNavigationNodesDefinition typedDefinition)
        {
            var web     = typedModelHost.HostWeb;
            var context = web.Context;

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

            if (typedDefinition.NavigationNodes != null && typedDefinition.NavigationNodes.Any())
            {
                var nodesCollection = GetNavigationNodeCollection(web);

                context.Load(nodesCollection);
                context.ExecuteQueryWithTrace();

                DeleteNavigationNodesService.DeleteNodesByMatch(typedDefinition, nodesCollection, url =>
                {
                    return(ResolveTokenizedUrl(typedModelHost, url));
                });
            }

            InvokeOnModelEvent(this, new ModelEventArgs
            {
                CurrentModelNode = null,
                Model            = null,
                EventType        = ModelEventType.OnProvisioned,
                Object           = web,
                ObjectType       = typeof(Web),
                ObjectDefinition = typedDefinition,
                ModelHost        = modelHost
            });
        }
 public static TModelNode AddDeleteQuickLaunchNavigationNodes <TModelNode>(this TModelNode model,
                                                                           DeleteQuickLaunchNavigationNodesDefinition definition)
     where TModelNode : ModelNode, IWebHostModelNode, new()
 {
     return(AddDeleteQuickLaunchNavigationNodes(model, definition, null));
 }