private static void ProcessWebTemplateSettings(PublishingWeb publishingWeb, PageLayoutAndSiteTemplateSettingsDefinition definition) { var web = publishingWeb.Web; if (definition.InheritWebTemplates.HasValue && definition.InheritWebTemplates.Value) { publishingWeb.InheritAvailableWebTemplates(); } else if (definition.UseAnyWebTemplate.HasValue && definition.UseAnyWebTemplate.Value) { publishingWeb.AllowAllWebTemplates(definition.ResetAllSubsitesToInheritWebTemplates.HasValue ? definition.ResetAllSubsitesToInheritWebTemplates.Value : false); } else if (definition.UseDefinedWebTemplates.HasValue && definition.UseDefinedWebTemplates.Value) { var currentLocaleId = (uint)web.CurrencyLocaleID; var webTemplates = new List <SPWebTemplate>(); webTemplates.AddRange(web.Site.GetWebTemplates(currentLocaleId).OfType <SPWebTemplate>()); webTemplates.AddRange(web.Site.GetCustomWebTemplates(currentLocaleId).OfType <SPWebTemplate>()); var selectedWebTemplates = new Collection <SPWebTemplate>(); foreach (var selectedWebTemplateName in definition.DefinedWebTemplates) { var targetWebTemplate = webTemplates.FirstOrDefault(t => t.Name.ToUpper() == selectedWebTemplateName.ToUpper()); if (targetWebTemplate != null) { selectedWebTemplates.Add(targetWebTemplate); } } if (selectedWebTemplates.Any()) { publishingWeb.SetAvailableWebTemplates(selectedWebTemplates, 0, definition.ResetAllSubsitesToInheritWebTemplates.HasValue ? definition.ResetAllSubsitesToInheritWebTemplates.Value : false); } } }
private static void ProcessWebTemplateSettings(PublishingWeb publishingWeb, PageLayoutAndSiteTemplateSettingsDefinition definition) { var web = publishingWeb.Web; if (definition.InheritWebTemplates.HasValue && definition.InheritWebTemplates.Value) publishingWeb.InheritAvailableWebTemplates(); else if (definition.UseAnyWebTemplate.HasValue && definition.UseAnyWebTemplate.Value) { publishingWeb.AllowAllWebTemplates(definition.ResetAllSubsitesToInheritWebTemplates.HasValue ? definition.ResetAllSubsitesToInheritWebTemplates.Value : false); } else if (definition.UseDefinedWebTemplates.HasValue && definition.UseDefinedWebTemplates.Value) { var currentLocaleId = (uint)web.CurrencyLocaleID; var webTemplates = new List<SPWebTemplate>(); webTemplates.AddRange(web.Site.GetWebTemplates(currentLocaleId).OfType<SPWebTemplate>()); webTemplates.AddRange(web.Site.GetCustomWebTemplates(currentLocaleId).OfType<SPWebTemplate>()); var selectedWebTemplates = new Collection<SPWebTemplate>(); foreach (var selectedWebTemplateName in definition.DefinedWebTemplates) { var targetWebTemplate = webTemplates.FirstOrDefault(t => t.Name.ToUpper() == selectedWebTemplateName.ToUpper()); if (targetWebTemplate != null) selectedWebTemplates.Add(targetWebTemplate); } if (selectedWebTemplates.Any()) { publishingWeb.SetAvailableWebTemplates(selectedWebTemplates, 0, definition.ResetAllSubsitesToInheritWebTemplates.HasValue ? definition.ResetAllSubsitesToInheritWebTemplates.Value : false); } } }