using Hangfire; using Hangfire.Dashboard; using Microsoft.Extensions.DependencyInjection; using Sanhe.Abp.Hangfire.Dashboard.Authorization; using Sanhe.Abp.Hangfire.Dashboard.Localization; using Sanhe.Abp.Hangfire.Dashboard.Permissions; using Volo.Abp.Authorization; using Volo.Abp.Hangfire; using Volo.Abp.Localization; using Volo.Abp.Modularity; using Volo.Abp.VirtualFileSystem; namespace Sanhe.Abp.Hangfire.Dashboard { [DependsOn( typeof(AbpAuthorizationModule), typeof(AbpHangfireModule))] public class AbpHangfireDashboardModule : AbpModule { public override void PreConfigureServices(ServiceConfigurationContext context) { PreConfigure(options => { options.AsyncAuthorization = new IDashboardAsyncAuthorizationFilter[] { new DashboardAuthorizationFilter( HangfireDashboardPermissions.Dashboard) }; }); } public override void ConfigureServices(ServiceConfigurationContext context) { Configure(options => { options.FileSets.AddEmbedded(); }); Configure(options => { options.Resources .Add("en") .AddVirtualJson("/Sanhe/Abp/Hangfire/Dashboard/Localization/Resources"); }); var preActions = context.Services.GetPreConfigureActions(); context.Services.AddTransient(serviceProvider => { var options = serviceProvider.GetRequiredService().Get(); preActions.Configure(options); return options; }); context.Services.AddHangfireServer(); } } }