//[SampleMetadataTag(Name = BuiltInTagNames.SampleHidden)] public void CaDeployFlatQuickLaunchNavigation() { var aboutUs = new QuickLaunchNavigationNodeDefinition { Title = "About us", Url = "about-us.aspx", IsExternal = true }; var services = new QuickLaunchNavigationNodeDefinition { Title = "Services", Url = "services.aspx", IsExternal = true }; var contacts = new QuickLaunchNavigationNodeDefinition { Title = "Contacts", Url = "contacts.aspx", IsExternal = true }; var model = SPMeta2Model.NewWebModel(web => { web .AddQuickLaunchNavigationNode(aboutUs) .AddQuickLaunchNavigationNode(services) .AddQuickLaunchNavigationNode(contacts); }); DeployModel(model); }
public void Deploy_QuickNavigation() { // Step 1, define top navigation nodes var home = new QuickLaunchNavigationNodeDefinition { Title = "Home link", Url = "/", IsExternal = false }; var google = new QuickLaunchNavigationNodeDefinition { Title = "Google link", Url = "http://google.com", IsExternal = true }; // Step 2, define web model and artifact relationships - add feature to the web var model = SPMeta2Model .NewWebModel(web => { web .AddQuickLaunchNavigationNode(home) .AddQuickLaunchNavigationNode(google); }); // Step 3, deploy model DeployWebModel(model); }
private NavigationNode EnsureQuickLaunchNavigationNode(NavigationNodeModelHost navigationNodeModelHost, QuickLaunchNavigationNodeDefinition quickLaunchNode) { var navigationNode = navigationNodeModelHost.HostNavigationNode; var quickLaunch = navigationNode.Children; var context = navigationNodeModelHost.HostWeb.Context; context.Load(quickLaunch); context.ExecuteQuery(); var existingNode = GetNavigationNode(navigationNodeModelHost, quickLaunchNode); InvokeOnModelEvent(this, new ModelEventArgs { CurrentModelNode = null, Model = null, EventType = ModelEventType.OnProvisioning, Object = existingNode, ObjectType = typeof(NavigationNode), ObjectDefinition = quickLaunchNode, ModelHost = navigationNodeModelHost }); if (existingNode == null) { existingNode = quickLaunch.Add(new NavigationNodeCreationInformation { Title = quickLaunchNode.Title, IsExternal = quickLaunchNode.IsExternal, Url = quickLaunchNode.Url }); context.ExecuteQuery(); } existingNode.Title = quickLaunchNode.Title; existingNode.Url = quickLaunchNode.Url; existingNode.IsVisible = quickLaunchNode.IsVisible; InvokeOnModelEvent(this, new ModelEventArgs { CurrentModelNode = null, Model = null, EventType = ModelEventType.OnProvisioned, Object = existingNode, ObjectType = typeof(NavigationNode), ObjectDefinition = quickLaunchNode, ModelHost = navigationNodeModelHost }); existingNode.Update(); context.ExecuteQuery(); return(existingNode); }
protected NavigationNode GetRootNavigationNode( WebModelHost webModelHost, QuickLaunchNavigationNodeDefinition quickLaunchModel) { NavigationNodeCollection quickLaunch = null; var result = GetRootNavigationNode(webModelHost, quickLaunchModel, out quickLaunch); return(result); }
private NavigationNode EnsureRootQuickLaunchNavigationNode( WebModelHost webModelHost, QuickLaunchNavigationNodeDefinition quickLaunchModel) { NavigationNodeCollection quickLaunch = null; var context = webModelHost.HostWeb.Context; var existingNode = GetRootNavigationNode(webModelHost, quickLaunchModel, out quickLaunch); var previousNode = quickLaunch.Count > 0 ? quickLaunch.Last() : null; InvokeOnModelEvent(this, new ModelEventArgs { CurrentModelNode = null, Model = null, EventType = ModelEventType.OnProvisioning, Object = existingNode, ObjectType = typeof(NavigationNode), ObjectDefinition = quickLaunchModel, ModelHost = webModelHost }); if (existingNode == null) { existingNode = quickLaunch.Add(new NavigationNodeCreationInformation { Title = quickLaunchModel.Title, IsExternal = quickLaunchModel.IsExternal, Url = quickLaunchModel.Url, PreviousNode = previousNode }); context.ExecuteQuery(); } existingNode.Title = quickLaunchModel.Title; existingNode.Url = quickLaunchModel.Url; existingNode.IsVisible = quickLaunchModel.IsVisible; InvokeOnModelEvent(this, new ModelEventArgs { CurrentModelNode = null, Model = null, EventType = ModelEventType.OnProvisioned, Object = existingNode, ObjectType = typeof(NavigationNode), ObjectDefinition = quickLaunchModel, ModelHost = webModelHost }); existingNode.Update(); context.ExecuteQuery(); return(existingNode); }
private void ValidateNode(NavigationNode qlNode, QuickLaunchNavigationNodeDefinition quickLaunchModel) { TraceUtils.WithScope(traceScope => { var pair = new ComparePair <QuickLaunchNavigationNodeDefinition, NavigationNode>(quickLaunchModel, qlNode); traceScope.WriteLine(string.Format("Validating model:[{0}] node:[{1}]", quickLaunchModel, qlNode)); traceScope.WithTraceIndent(trace => pair .ShouldBeEqual(trace, m => m.Title, o => o.Title) .ShouldBeEqual(trace, m => m.Url, o => o.Url) .ShouldBeEqual(trace, m => m.IsVisible, o => o.IsVisible) .ShouldBeEqual(trace, m => m.IsExternal, o => o.IsExternal)); }); }
private SPNavigationNode EnsureRootQuickLaunchNavigationNode( WebModelHost webModelHost, QuickLaunchNavigationNodeDefinition quickLaunchNode) { var web = webModelHost.HostWeb; var quickLaunch = web.Navigation.QuickLaunch; var existingNode = quickLaunch.OfType <SPNavigationNode>() .FirstOrDefault(n => n.Url == quickLaunchNode.Url); InvokeOnModelEvent(this, new ModelEventArgs { CurrentModelNode = null, Model = null, EventType = ModelEventType.OnProvisioning, Object = existingNode, ObjectType = typeof(SPNavigationNode), ObjectDefinition = quickLaunchNode, ModelHost = existingNode }); if (existingNode == null) { existingNode = new SPNavigationNode(quickLaunchNode.Title, quickLaunchNode.Url, quickLaunchNode.IsExternal); quickLaunch.AddAsLast(existingNode); } existingNode.Title = quickLaunchNode.Title; existingNode.Url = quickLaunchNode.Url; existingNode.IsVisible = quickLaunchNode.IsVisible; InvokeOnModelEvent(this, new ModelEventArgs { CurrentModelNode = null, Model = null, EventType = ModelEventType.OnProvisioned, Object = existingNode, ObjectType = typeof(SPNavigationNode), ObjectDefinition = quickLaunchNode, ModelHost = existingNode }); existingNode.Update(); return(existingNode); }
protected NavigationNode GetNavigationNode( NavigationNodeModelHost navigationNodeModelHost, QuickLaunchNavigationNodeDefinition quickLaunchNode) { var navigationNode = navigationNodeModelHost.HostNavigationNode; var quickLaunch = navigationNode.Children; var context = navigationNodeModelHost.HostWeb.Context; context.Load(quickLaunch); context.ExecuteQuery(); var existingNode = quickLaunch.OfType <NavigationNode>() .FirstOrDefault(n => n.Url == quickLaunchNode.Url); return(existingNode); }
protected NavigationNode GetRootNavigationNode( WebModelHost webModelHost, QuickLaunchNavigationNodeDefinition quickLaunchModel, out NavigationNodeCollection quickLaunch) { var web = webModelHost.HostWeb; var context = webModelHost.HostWeb.Context; quickLaunch = web.Navigation.QuickLaunch; context.Load(quickLaunch); context.ExecuteQuery(); var existingNode = quickLaunch.OfType <NavigationNode>() .FirstOrDefault(n => n.Url == quickLaunchModel.Url); return(existingNode); }
public static ModelNode AddQuickLaunchNavigationNode(this ModelNode model, QuickLaunchNavigationNodeDefinition definition, Action <ModelNode> action) { return(model.AddDefinitionNode(definition, action)); }
public static ModelNode AddQuickLaunchNavigationNode(this ModelNode model, QuickLaunchNavigationNodeDefinition definition) { return(AddQuickLaunchNavigationNode(model, definition, null)); }
public static TModelNode AddQuickLaunchNavigationNode <TModelNode>(this TModelNode model, QuickLaunchNavigationNodeDefinition definition, Action <QuickLaunchNavigationNodeModelNode> action) where TModelNode : ModelNode, IQuickLaunchNavigationNodeHostModelNode, new() { return(model.AddTypedDefinitionNode(definition, action)); }
public static TModelNode AddQuickLaunchNavigationNode <TModelNode>(this TModelNode model, QuickLaunchNavigationNodeDefinition definition) where TModelNode : ModelNode, IQuickLaunchNavigationNodeHostModelNode, new() { return(AddQuickLaunchNavigationNode(model, definition, null)); }
//[SampleMetadataTag(Name = BuiltInTagNames.SampleHidden)] public void CaDeployHierarchicalQuickLaunchNavigation() { // top level departments node var departments = new QuickLaunchNavigationNodeDefinition { Title = "Departments", Url = "departments.aspx", IsExternal = true }; var hr = new QuickLaunchNavigationNodeDefinition { Title = "HR", Url = "hr.aspx", IsExternal = true }; var it = new QuickLaunchNavigationNodeDefinition { Title = "IT", Url = "it.aspx", IsExternal = true }; // top level clients node var clients = new QuickLaunchNavigationNodeDefinition { Title = "Clients", Url = "clients.aspx", IsExternal = true }; var microsoft = new QuickLaunchNavigationNodeDefinition { Title = "Microsoft", Url = "microsfot.aspx", IsExternal = true }; var apple = new QuickLaunchNavigationNodeDefinition { Title = "Apple", Url = "apple.aspx", IsExternal = true }; var model = SPMeta2Model.NewWebModel(web => { web .AddQuickLaunchNavigationNode(departments, node => { node .AddQuickLaunchNavigationNode(hr) .AddQuickLaunchNavigationNode(it); }) .AddQuickLaunchNavigationNode(clients, node => { node .AddQuickLaunchNavigationNode(microsoft) .AddQuickLaunchNavigationNode(apple); }); }); DeployModel(model); }
private void ValidateRootQuickLaunchNavigationNode(WebModelHost webModelHost, QuickLaunchNavigationNodeDefinition quickLaunchModel) { var qlNode = GetRootNavigationNode(webModelHost, quickLaunchModel); ValidateNode(qlNode, quickLaunchModel); }
private void ValidateQuickLaunchNavigationNode(NavigationNodeModelHost navigationNodeModelHost, QuickLaunchNavigationNodeDefinition quickLaunchModel) { var qlNode = GetNavigationNode(navigationNodeModelHost, quickLaunchModel); ValidateNode(qlNode, quickLaunchModel); }