private void SetAutorouteSettings(AutorouteSettings autorouteSettings, SettingsDictionary settings) { settings["AutorouteSettings.AllowCustomPattern"] = autorouteSettings.AllowCustomPattern.ToString(); settings["AutorouteSettings.AutomaticAdjustmentOnEdit"] = autorouteSettings.AutomaticAdjustmentOnEdit.ToString(); settings["AutorouteSettings.DefaultPatternIndex"] = autorouteSettings.DefaultPatternIndex.ToString(); settings["AutorouteSettings.PerItemConfiguration"] = autorouteSettings.PerItemConfiguration.ToString(); settings["AutorouteSettings.PatternDefinitions"] = autorouteSettings.PatternDefinitions; }
public void ContentPartAttached(ContentPartAttachedContext context) { if (context.ContentPartName == "AutoroutePart") { // Create pattern and default pattern for each culture installed and for the neutral culture // Get cultures var SiteCultures = _cultureManager.ListCultures().ToList(); // Adding a null culture for the culture neutral pattern List <string> cultures = new List <string>(); cultures.Add(null); cultures.AddRange(SiteCultures); // Create Patterns and DefaultPatterns var settings = new AutorouteSettings { Patterns = new List <RoutePattern>() }; List <RoutePattern> newPatterns = new List <RoutePattern>(); List <DefaultPattern> newDefaultPatterns = new List <DefaultPattern>(); foreach (string culture in cultures) { newPatterns.Add(new RoutePattern { Name = "Title", Description = "my-title", Pattern = "{Content.Slug}", Culture = culture }); newDefaultPatterns.Add(new DefaultPattern { Culture = culture, PatternIndex = "0" }); } settings.Patterns = newPatterns; settings.DefaultPatterns = newDefaultPatterns; //Update Settings _contentDefinitionManager.AlterTypeDefinition(context.ContentTypeName, builder => builder.WithPart("AutoroutePart", settings.Build)); //TODO Generate URL's for existing content items //We should provide a global setting to enable/disable this feature } }