Esempio n. 1
0
        //this one is not currently used
        public static IEndpointRouteBuilder UseCustomRoutes(this IEndpointRouteBuilder routes, bool useFolders)
        {
            if (useFolders)
            {
                routes.AddCultureBlogRoutesForSimpleContent(new cloudscribe.Core.Web.Components.SiteFolderRouteConstraint(), new CultureSegmentRouteConstraint(true));
                routes.AddBlogRoutesForSimpleContent(new cloudscribe.Core.Web.Components.SiteFolderRouteConstraint());
            }
            routes.AddCultureBlogRoutesForSimpleContent(new CultureSegmentRouteConstraint());
            routes.AddBlogRoutesForSimpleContent();
            routes.AddSimpleContentStaticResourceRoutes();
            routes.AddCloudscribeFileManagerRoutes();
            if (useFolders)
            {
                routes.MapControllerRoute(
                    name: "foldererrorhandler",
                    pattern: "{sitefolder}/oops/error/{statusCode?}",
                    defaults: new { controller = "Oops", action = "Error" },
                    constraints: new { name = new cloudscribe.Core.Web.Components.SiteFolderRouteConstraint() }
                    );

                routes.MapControllerRoute(
                    name: "apifoldersitemap-localized",
                    pattern: "{sitefolder}/{culture}/api/sitemap"
                    , defaults: new { controller = "FolderSiteMap", action = "Index" }
                    , constraints: new { name = new cloudscribe.Core.Web.Components.SiteFolderRouteConstraint(), culture = new CultureSegmentRouteConstraint(true) }
                    );

                routes.MapControllerRoute(
                    name: "apifoldersitemap",
                    pattern: "{sitefolder}/api/sitemap"
                    , defaults: new { controller = "FolderSiteMap", action = "Index" }
                    , constraints: new { name = new cloudscribe.Core.Web.Components.SiteFolderRouteConstraint() }
                    );

                routes.MapControllerRoute(
                    name: "foldersitemap-localized",
                    pattern: "{sitefolder}/{culture}/sitemap"
                    , defaults: new { controller = "Page", action = "SiteMap" }
                    , constraints: new { name = new cloudscribe.Core.Web.Components.SiteFolderRouteConstraint(), culture = new CultureSegmentRouteConstraint(true) }
                    );

                routes.MapControllerRoute(
                    name: "foldersitemap",
                    pattern: "{sitefolder}/sitemap"
                    , defaults: new { controller = "Page", action = "SiteMap" }
                    , constraints: new { name = new cloudscribe.Core.Web.Components.SiteFolderRouteConstraint() }
                    );

                routes.MapControllerRoute(
                    name: "apifoldermetaweblog-localized",
                    pattern: "{sitefolder}/{culture}/api/metaweblog"
                    , defaults: new { controller = "FolderMetaweblog", action = "Index" }
                    , constraints: new { name = new cloudscribe.Core.Web.Components.SiteFolderRouteConstraint(), culture = new CultureSegmentRouteConstraint(true) }
                    );

                routes.MapControllerRoute(
                    name: "apifoldermetaweblog",
                    pattern: "{sitefolder}/api/metaweblog"
                    , defaults: new { controller = "FolderMetaweblog", action = "Index" }
                    , constraints: new { name = new cloudscribe.Core.Web.Components.SiteFolderRouteConstraint() }
                    );

                routes.MapControllerRoute(
                    name: "apifolderrss",
                    pattern: "{sitefolder}/api/rss"
                    , defaults: new { controller = "FolderRss", action = "Index" }
                    , constraints: new { name = new cloudscribe.Core.Web.Components.SiteFolderRouteConstraint() }
                    );

                routes.MapControllerRoute(
                    name: "folderdefault",
                    pattern: "{sitefolder}/{controller}/{action}/{id?}",
                    defaults: null,
                    constraints: new { name = new cloudscribe.Core.Web.Components.SiteFolderRouteConstraint() }
                    );
                routes.AddCulturePageRouteForSimpleContent(new cloudscribe.Core.Web.Components.SiteFolderRouteConstraint(), new CultureSegmentRouteConstraint(true));
                routes.AddDefaultPageRouteForSimpleContent(new cloudscribe.Core.Web.Components.SiteFolderRouteConstraint());
            }

            routes.AddPwaDefaultRoutes(new cloudscribe.Core.Web.Components.SiteFolderRouteConstraint());

            routes.MapControllerRoute(
                name: "errorhandler",
                pattern: "oops/error/{statusCode?}",
                defaults: new { controller = "Oops", action = "Error" }
                );


            routes.MapControllerRoute(
                name: "api-sitemap-culture",
                pattern: "{culture}/api/sitemap"
                , defaults: new { controller = "CultureSiteMap", action = "Index" }
                , constraints: new { culture = new CultureSegmentRouteConstraint() }
                );

            routes.MapControllerRoute(
                name: "api-rss-culture",
                pattern: "{culture}/api/rss"
                , defaults: new { controller = "CultureRss", action = "Index" }
                , constraints: new { culture = new CultureSegmentRouteConstraint() }
                );

            routes.MapControllerRoute(
                name: "api-metaweblog-culture",
                pattern: "{culture}/api/metaweblog"
                , defaults: new { controller = "CultureMetaweblog", action = "Index" }
                , constraints: new { culture = new CultureSegmentRouteConstraint() }
                );

            routes.MapControllerRoute(
                name: "sitemap-localized",
                pattern: "{culture}/sitemap"
                , defaults: new { controller = "Page", action = "SiteMap" }
                , constraints: new { culture = new CultureSegmentRouteConstraint() }
                );

            routes.MapControllerRoute(
                name: "sitemap",
                pattern: "sitemap"
                , defaults: new { controller = "Page", action = "SiteMap" }
                );
            routes.MapControllerRoute(
                name: "default-localized",
                pattern: "{culture}/{controller}/{action}/{id?}",
                defaults: new { action = "Index" },
                constraints: new { culture = new CultureSegmentRouteConstraint() }
                );

            routes.MapControllerRoute(
                name: "def",
                pattern: "{controller}/{action}"
                , defaults: new { action = "Index" }
                );
            routes.AddCulturePageRouteForSimpleContent(new CultureSegmentRouteConstraint());
            routes.AddDefaultPageRouteForSimpleContent();


            return(routes);
        }