Browse Source

Added a new middleware to set the default homepage

pull/13635/head
malik masis 4 years ago
parent
commit
95115cef4d
  1. 17
      modules/cms-kit/src/Volo.CmsKit.Public.Web/CmsKitPublicWebModule.cs
  2. 28
      modules/cms-kit/src/Volo.CmsKit.Public.Web/DefaultHomePageMiddleware.cs
  3. 11
      modules/cms-kit/src/Volo.CmsKit.Public.Web/HomePageDefaultMiddlewareExtensions.cs

17
modules/cms-kit/src/Volo.CmsKit.Public.Web/CmsKitPublicWebModule.cs

@ -1,6 +1,7 @@
using Markdig; using Markdig;
using Microsoft.AspNetCore.Mvc.RazorPages; using Microsoft.AspNetCore.Mvc.RazorPages;
using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.DependencyInjection;
using Volo.Abp;
using Volo.Abp.AspNetCore.Mvc.Localization; using Volo.Abp.AspNetCore.Mvc.Localization;
using Volo.Abp.AspNetCore.Mvc.UI.Components.LayoutHook; using Volo.Abp.AspNetCore.Mvc.UI.Components.LayoutHook;
using Volo.Abp.AutoMapper; using Volo.Abp.AutoMapper;
@ -88,21 +89,27 @@ public class CmsKitPublicWebModule : AbpModule
options.Conventions.AddPageRoute("/Public/CmsKit/Blogs/BlogPost", @"/blogs/{blogSlug}/{blogPostSlug:minlength(1)}"); options.Conventions.AddPageRoute("/Public/CmsKit/Blogs/BlogPost", @"/blogs/{blogSlug}/{blogPostSlug:minlength(1)}");
}); });
} }
if (GlobalFeatureManager.Instance.IsEnabled<GlobalResourcesFeature>()) if (GlobalFeatureManager.Instance.IsEnabled<GlobalResourcesFeature>())
{ {
Configure<AbpLayoutHookOptions>(options => Configure<AbpLayoutHookOptions>(options =>
{ {
options.Add( options.Add(
LayoutHooks.Head.Last, LayoutHooks.Head.Last,
typeof(GlobalStyleViewComponent) typeof(GlobalStyleViewComponent)
); );
options.Add( options.Add(
LayoutHooks.Body.Last, LayoutHooks.Body.Last,
typeof(GlobalScriptViewComponent) typeof(GlobalScriptViewComponent)
); );
}); });
} }
} }
public override void OnApplicationInitialization(ApplicationInitializationContext context)
{
var app = context.GetApplicationBuilder();
app.UseHomePageDefaultMiddleware();
}
} }

28
modules/cms-kit/src/Volo.CmsKit.Public.Web/DefaultHomePageMiddleware.cs

@ -0,0 +1,28 @@
using System.Threading.Tasks;
using Microsoft.AspNetCore.Http;
using Volo.CmsKit.Pages;
using Volo.CmsKit.Public.Pages;
namespace Volo.CmsKit.Public.Web;
public class DefaultHomePageMiddleware
{
private readonly RequestDelegate _next;
private readonly IPagePublicAppService _pagePublicAppService;
public DefaultHomePageMiddleware(RequestDelegate next, IPagePublicAppService pagePublicAppService)
{
_next = next;
_pagePublicAppService = pagePublicAppService;
}
public async Task InvokeAsync(HttpContext httpContext)
{
var page = await _pagePublicAppService.FindDefaultHomePageAsync();
if (page is not null && httpContext.Request.Path.Value == "/")
{
httpContext.Request.Path = $"{PageConsts.UrlPrefix}{page.Slug}";
}
await _next(httpContext);
}
}

11
modules/cms-kit/src/Volo.CmsKit.Public.Web/HomePageDefaultMiddlewareExtensions.cs

@ -0,0 +1,11 @@
using Microsoft.AspNetCore.Builder;
namespace Volo.CmsKit.Public.Web;
public static class HomePageDefaultMiddlewareExtensions
{
public static IApplicationBuilder UseHomePageDefaultMiddleware(this IApplicationBuilder builder)
{
return builder.UseMiddleware<DefaultHomePageMiddleware>();
}
}
Loading…
Cancel
Save