diff --git a/src/Orchard.Web/Modules/Orchard.Autoroute/Orchard.Autoroute.csproj b/src/Orchard.Web/Modules/Orchard.Autoroute/Orchard.Autoroute.csproj
index d43de044a..765729df5 100644
--- a/src/Orchard.Web/Modules/Orchard.Autoroute/Orchard.Autoroute.csproj
+++ b/src/Orchard.Web/Modules/Orchard.Autoroute/Orchard.Autoroute.csproj
@@ -95,6 +95,10 @@
{475B6C45-B27C-438B-8966-908B9D6D1077}
Orchard.Alias
+
+ {0e7646e8-fe8f-43c1-8799-d97860925ec4}
+ Orchard.ContentTypes
+
{6F759635-13D7-4E94-BCC9-80445D63F117}
Orchard.Tokens
@@ -102,6 +106,7 @@
+
diff --git a/src/Orchard.Web/Modules/Orchard.Autoroute/Providers/ContentDefinition/ContentDefinitionEventHandler.cs b/src/Orchard.Web/Modules/Orchard.Autoroute/Providers/ContentDefinition/ContentDefinitionEventHandler.cs
new file mode 100644
index 000000000..15234b71c
--- /dev/null
+++ b/src/Orchard.Web/Modules/Orchard.Autoroute/Providers/ContentDefinition/ContentDefinitionEventHandler.cs
@@ -0,0 +1,104 @@
+using Orchard.Autoroute.Models;
+using Orchard.Autoroute.Services;
+using Orchard.Autoroute.Settings;
+using Orchard.ContentManagement;
+using Orchard.ContentManagement.MetaData;
+using Orchard.ContentTypes.Events;
+using Orchard.Localization.Services;
+using System;
+using System.Collections.Generic;
+using System.Linq;
+
+namespace Orchard.Autoroute.Providers.ContentDefinition {
+ public class ContentDefinitionEventHandler : IContentDefinitionEventHandler {
+ private readonly ICultureManager _cultureManager;
+ private readonly IContentDefinitionManager _contentDefinitionManager;
+ private readonly IOrchardServices _orchardServices;
+ private readonly Lazy _autorouteService;
+ private readonly IContentManager _contentManager;
+
+ public ContentDefinitionEventHandler(
+ IContentManager contentManager,
+ Lazy autorouteService,
+ IOrchardServices orchardServices,
+ IContentDefinitionManager contentDefinitionManager,
+ ICultureManager cultureManager) {
+ _cultureManager = cultureManager;
+ _contentDefinitionManager = contentDefinitionManager;
+ _orchardServices = orchardServices;
+ _autorouteService = autorouteService;
+ _contentManager = contentManager;
+ }
+
+ public void ContentTypeCreated(ContentTypeCreatedContext context) {
+ }
+
+ public void ContentTypeRemoved(ContentTypeRemovedContext context) {
+ }
+
+ public void ContentTypeImporting(ContentTypeImportingContext context) {
+ }
+
+ public void ContentTypeImported(ContentTypeImportedContext context) {
+ }
+
+ public void ContentPartCreated(ContentPartCreatedContext context) {
+ }
+
+ public void ContentPartRemoved(ContentPartRemovedContext context) {
+ }
+
+ public void ContentPartAttached(ContentPartAttachedContext context) {
+ if (context.ContentPartName == "AutoroutePart") {
+ //Create pattern and default pattern for each culture installed
+
+ //get cultures
+ var SiteCultures = _cultureManager.ListCultures().ToList();
+
+ //Create Patterns and DefaultPatterns
+ var settings = new AutorouteSettings {
+ Patterns = new List()
+ };
+
+ List newPatterns = new List();
+ List newDefaultPatterns = new List();
+ foreach (string culture in SiteCultures) {
+ 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
+ }
+ }
+
+ public void ContentPartDetached(ContentPartDetachedContext context) {
+ }
+
+ public void ContentPartImporting(ContentPartImportingContext context) {
+ }
+
+ public void ContentPartImported(ContentPartImportedContext context) {
+ }
+
+ public void ContentFieldAttached(ContentFieldAttachedContext context) {
+ }
+
+ public void ContentFieldDetached(ContentFieldDetachedContext context) {
+ }
+
+ }
+}
\ No newline at end of file