Files
mixtape/zero.Core/Pages/ZeroPageModule.cs
T

50 lines
1.6 KiB
C#
Raw Normal View History

2021-11-26 12:31:33 +01:00
using Microsoft.Extensions.Configuration;
2021-11-24 15:49:25 +01:00
using Microsoft.Extensions.DependencyInjection;
2022-02-04 15:59:35 +01:00
using zero.Search;
2021-11-23 22:56:22 +01:00
namespace zero.Pages;
2022-01-06 18:10:58 +01:00
internal class ZeroPageModule : ZeroModule
2021-11-23 22:56:22 +01:00
{
2021-11-30 14:32:10 +01:00
public override void ConfigureServices(IServiceCollection services, IConfiguration configuration)
2021-11-23 22:56:22 +01:00
{
2021-11-24 13:56:08 +01:00
services.AddScoped<IPagesStore, PagesStore>();
services.AddScoped<IPageTypeService, PageTypeService>();
2021-11-26 12:31:33 +01:00
services.AddScoped<IPageModuleTypeService, PageModuleTypeService>();
2021-11-24 13:56:08 +01:00
2021-11-30 14:32:10 +01:00
services.AddOptions<PageOptions>().Bind(configuration.GetSection("Zero:Pages"));
services.AddOptions<PageModuleOptions>().Bind(configuration.GetSection("Zero:PageModules"));
2021-11-24 15:49:25 +01:00
services.ConfigureOptions<ConfigureModuleTypeJsonOptions>();
2021-12-02 13:43:04 +01:00
services.Configure<RavenOptions>(opts =>
2021-11-23 22:56:22 +01:00
{
2022-01-06 18:10:58 +01:00
opts.Indexes.Add<zero_Pages_AsHistory>();
opts.Indexes.Add<zero_Pages_ByHierarchy>();
opts.Indexes.Add<zero_Pages_ByType>();
opts.Indexes.Add<zero_Pages_WithChildren>();
2021-12-02 13:43:04 +01:00
});
2021-11-24 14:37:32 +01:00
2021-12-02 13:43:04 +01:00
services.Configure<FlavorOptions>(opts =>
{
2021-12-02 16:06:34 +01:00
opts.Configure<Page>(cfg =>
{
cfg.CanUseWithoutFlavors = false;
cfg.Add<PageFolder>(Constants.Pages.FolderAlias, "@page.folder.name", "@page.folder.description", "fth-folder");
});
2021-11-23 22:56:22 +01:00
});
2022-02-04 15:59:35 +01:00
services.Configure<ZeroSearchOptions>(opts =>
{
2022-08-29 14:01:59 +02:00
opts.Map<Page>().Display((x, res, ctx) =>
2022-02-04 15:59:35 +01:00
{
2022-08-29 14:01:59 +02:00
FlavorConfig flavor = ctx.Options.For<FlavorOptions>().Get<Page>(x.Flavor);
2022-02-04 15:59:35 +01:00
if (flavor != null)
{
res.Icon = flavor.Icon;
}
res.Url = "/pages/edit/" + x.Id;
});
});
2021-11-23 22:56:22 +01:00
}
}