diff --git a/src/OrchardCore.Modules/OrchardCore.Admin/Startup.cs b/src/OrchardCore.Modules/OrchardCore.Admin/Startup.cs index 1a83938744d..7c982e062eb 100644 --- a/src/OrchardCore.Modules/OrchardCore.Admin/Startup.cs +++ b/src/OrchardCore.Modules/OrchardCore.Admin/Startup.cs @@ -57,7 +57,7 @@ public override void ConfigureServices(IServiceCollection services) services.AddScoped(); services.AddScoped, AdminSiteSettingsDisplayDriver>(); services.AddScoped(); - services.AddScoped(); + services.AddNavigationProvider(); services.AddSingleton(); services.AddScoped, VisitSiteNavbarDisplayDriver>(); diff --git a/src/OrchardCore.Modules/OrchardCore.AdminMenu/Startup.cs b/src/OrchardCore.Modules/OrchardCore.AdminMenu/Startup.cs index 9a639e053c4..c4f8c40f4ab 100644 --- a/src/OrchardCore.Modules/OrchardCore.AdminMenu/Startup.cs +++ b/src/OrchardCore.Modules/OrchardCore.AdminMenu/Startup.cs @@ -16,7 +16,7 @@ public sealed class Startup : StartupBase public override void ConfigureServices(IServiceCollection services) { services.AddScoped(); - services.AddScoped(); + services.AddNavigationProvider(); services.AddScoped(); services.AddScoped(); diff --git a/src/OrchardCore.Modules/OrchardCore.Apis.GraphQL/Startup.cs b/src/OrchardCore.Modules/OrchardCore.Apis.GraphQL/Startup.cs index 09c260d0ba1..a3e1cf606de 100644 --- a/src/OrchardCore.Modules/OrchardCore.Apis.GraphQL/Startup.cs +++ b/src/OrchardCore.Modules/OrchardCore.Apis.GraphQL/Startup.cs @@ -46,7 +46,7 @@ public override void ConfigureServices(IServiceCollection services) }); services.AddScoped(); - services.AddTransient(); + services.AddNavigationProvider(); services.AddSingleton(); services.AddGraphQL(builder => builder.AddSystemTextJson((options, sp) => diff --git a/src/OrchardCore.Modules/OrchardCore.AuditTrail/Startup.cs b/src/OrchardCore.Modules/OrchardCore.AuditTrail/Startup.cs index 684789e0ff1..12de1fbb853 100644 --- a/src/OrchardCore.Modules/OrchardCore.AuditTrail/Startup.cs +++ b/src/OrchardCore.Modules/OrchardCore.AuditTrail/Startup.cs @@ -44,8 +44,8 @@ public override void ConfigureServices(IServiceCollection services) services.AddSingleton(); services.AddScoped(); - services.AddScoped(); - services.AddScoped(); + services.AddNavigationProvider(); + services.AddNavigationProvider(); services.AddScoped, AuditTrailSettingsDisplayDriver>(); services.AddScoped, AuditTrailTrimmingSettingsDisplayDriver>(); diff --git a/src/OrchardCore.Modules/OrchardCore.BackgroundTasks/Startup.cs b/src/OrchardCore.Modules/OrchardCore.BackgroundTasks/Startup.cs index 65705a7a8ee..264108c50fe 100644 --- a/src/OrchardCore.Modules/OrchardCore.BackgroundTasks/Startup.cs +++ b/src/OrchardCore.Modules/OrchardCore.BackgroundTasks/Startup.cs @@ -13,7 +13,7 @@ public override void ConfigureServices(IServiceCollection services) services .AddScoped() .AddScoped() - .AddScoped() + .AddNavigationProvider() .AddScoped(); } } diff --git a/src/OrchardCore.Modules/OrchardCore.ContentLocalization/Startup.cs b/src/OrchardCore.Modules/OrchardCore.ContentLocalization/Startup.cs index 2d7c4ac6f7e..3fd7d8f0ff5 100644 --- a/src/OrchardCore.Modules/OrchardCore.ContentLocalization/Startup.cs +++ b/src/OrchardCore.Modules/OrchardCore.ContentLocalization/Startup.cs @@ -62,7 +62,7 @@ public override void ConfigureServices(IServiceCollection services) { services.AddScoped, ContentCulturePickerNavbarDisplayDriver>(); services.AddLiquidFilter("switch_culture_url"); - services.AddScoped(); + services.AddNavigationProvider(); services.AddScoped(); services.AddScoped, ContentCulturePickerSettingsDriver>(); services.AddScoped, ContentRequestCultureProviderSettingsDriver>(); diff --git a/src/OrchardCore.Modules/OrchardCore.ContentTypes/Startup.cs b/src/OrchardCore.Modules/OrchardCore.ContentTypes/Startup.cs index f56d7e70bbb..9b93a1da76b 100644 --- a/src/OrchardCore.Modules/OrchardCore.ContentTypes/Startup.cs +++ b/src/OrchardCore.Modules/OrchardCore.ContentTypes/Startup.cs @@ -20,7 +20,7 @@ public sealed class Startup : StartupBase public override void ConfigureServices(IServiceCollection services) { services.AddScoped(); - services.AddScoped(); + services.AddNavigationProvider(); services.AddScoped(); services.AddScoped(); services.AddScoped(); diff --git a/src/OrchardCore.Modules/OrchardCore.Contents/Deployment/ExportContentToDeploymentTarget/ExportContentToDeploymentTargetStartup.cs b/src/OrchardCore.Modules/OrchardCore.Contents/Deployment/ExportContentToDeploymentTarget/ExportContentToDeploymentTargetStartup.cs index 581c9a6bdb5..8bde5072390 100644 --- a/src/OrchardCore.Modules/OrchardCore.Contents/Deployment/ExportContentToDeploymentTarget/ExportContentToDeploymentTargetStartup.cs +++ b/src/OrchardCore.Modules/OrchardCore.Contents/Deployment/ExportContentToDeploymentTarget/ExportContentToDeploymentTargetStartup.cs @@ -16,7 +16,7 @@ public sealed class ExportContentToDeploymentTargetStartup : StartupBase { public override void ConfigureServices(IServiceCollection services) { - services.AddScoped(); + services.AddNavigationProvider(); services.AddScoped, ExportContentToDeploymentTargetSettingsDisplayDriver>(); diff --git a/src/OrchardCore.Modules/OrchardCore.Contents/Startup.cs b/src/OrchardCore.Modules/OrchardCore.Contents/Startup.cs index 2621bd74210..88d302b12bb 100644 --- a/src/OrchardCore.Modules/OrchardCore.Contents/Startup.cs +++ b/src/OrchardCore.Modules/OrchardCore.Contents/Startup.cs @@ -143,7 +143,7 @@ static async Task GetContentByHandleAsync(LiquidTemplateContext cont services.AddScoped(); services.AddScoped(); services.AddScoped(); - services.AddScoped(); + services.AddNavigationProvider(); services.AddScoped(); services.AddScoped(); services.AddRecipeExecutionStep(); diff --git a/src/OrchardCore.Modules/OrchardCore.Cors/Startup.cs b/src/OrchardCore.Modules/OrchardCore.Cors/Startup.cs index fa15e478948..4bfc86e5832 100644 --- a/src/OrchardCore.Modules/OrchardCore.Cors/Startup.cs +++ b/src/OrchardCore.Modules/OrchardCore.Cors/Startup.cs @@ -24,7 +24,7 @@ public override void Configure(IApplicationBuilder app, IEndpointRouteBuilder ro public override void ConfigureServices(IServiceCollection services) { - services.AddScoped(); + services.AddNavigationProvider(); services.AddScoped(); services.AddSingleton(); diff --git a/src/OrchardCore.Modules/OrchardCore.CustomSettings/Startup.cs b/src/OrchardCore.Modules/OrchardCore.CustomSettings/Startup.cs index 93a212611e9..b4befb7604e 100644 --- a/src/OrchardCore.Modules/OrchardCore.CustomSettings/Startup.cs +++ b/src/OrchardCore.Modules/OrchardCore.CustomSettings/Startup.cs @@ -20,7 +20,7 @@ public sealed class Startup : StartupBase { public override void ConfigureServices(IServiceCollection services) { - services.AddScoped(); + services.AddNavigationProvider(); services.AddScoped, CustomSettingsDisplayDriver>(); services.AddScoped(); services.AddScoped(); diff --git a/src/OrchardCore.Modules/OrchardCore.Demo/Startup.cs b/src/OrchardCore.Modules/OrchardCore.Demo/Startup.cs index 203aa0ec992..c9b9e65ae6f 100644 --- a/src/OrchardCore.Modules/OrchardCore.Demo/Startup.cs +++ b/src/OrchardCore.Modules/OrchardCore.Demo/Startup.cs @@ -86,7 +86,7 @@ public override void ConfigureServices(IServiceCollection services) services.AddSingleton(); services.AddScoped(); services.AddShapeAttributes(); - services.AddScoped(); + services.AddNavigationProvider(); services.AddScoped(); services.AddDataMigration(); services.AddScoped(); diff --git a/src/OrchardCore.Modules/OrchardCore.Deployment.Remote/Startup.cs b/src/OrchardCore.Modules/OrchardCore.Deployment.Remote/Startup.cs index 2627bd02ee9..9dec7b1a888 100644 --- a/src/OrchardCore.Modules/OrchardCore.Deployment.Remote/Startup.cs +++ b/src/OrchardCore.Modules/OrchardCore.Deployment.Remote/Startup.cs @@ -13,7 +13,7 @@ public override void ConfigureServices(IServiceCollection services) { services.AddHttpClient(); - services.AddScoped(); + services.AddNavigationProvider(); services.AddScoped(); services.AddScoped(); services.AddScoped(); diff --git a/src/OrchardCore.Modules/OrchardCore.Deployment/Startup.cs b/src/OrchardCore.Modules/OrchardCore.Deployment/Startup.cs index 41ea146766e..cf0555db9bc 100644 --- a/src/OrchardCore.Modules/OrchardCore.Deployment/Startup.cs +++ b/src/OrchardCore.Modules/OrchardCore.Deployment/Startup.cs @@ -19,7 +19,7 @@ public override void ConfigureServices(IServiceCollection services) { services.AddDeploymentServices(); - services.AddScoped(); + services.AddNavigationProvider(); services.AddScoped(); services.AddSingleton(); diff --git a/src/OrchardCore.Modules/OrchardCore.Email/Startup.cs b/src/OrchardCore.Modules/OrchardCore.Email/Startup.cs index 38c059baafb..ad37689cbd1 100644 --- a/src/OrchardCore.Modules/OrchardCore.Email/Startup.cs +++ b/src/OrchardCore.Modules/OrchardCore.Email/Startup.cs @@ -18,7 +18,7 @@ public override void ConfigureServices(IServiceCollection services) services.AddEmailServices() .AddScoped, EmailSettingsDisplayDriver>() .AddScoped() - .AddScoped(); + .AddNavigationProvider(); services.AddDataMigration(); } diff --git a/src/OrchardCore.Modules/OrchardCore.Facebook/Startup.cs b/src/OrchardCore.Modules/OrchardCore.Facebook/Startup.cs index e71bbee0ac0..b363480e1e3 100644 --- a/src/OrchardCore.Modules/OrchardCore.Facebook/Startup.cs +++ b/src/OrchardCore.Modules/OrchardCore.Facebook/Startup.cs @@ -28,7 +28,7 @@ public override void Configure(IApplicationBuilder builder, IEndpointRouteBuilde public override void ConfigureServices(IServiceCollection services) { services.AddScoped(); - services.AddScoped(); + services.AddNavigationProvider(); services.AddSingleton(); services.AddScoped, FacebookSettingsDisplayDriver>(); diff --git a/src/OrchardCore.Modules/OrchardCore.Facebook/StartupLogin.cs b/src/OrchardCore.Modules/OrchardCore.Facebook/StartupLogin.cs index b86b4f5fd1a..233fb672e9e 100644 --- a/src/OrchardCore.Modules/OrchardCore.Facebook/StartupLogin.cs +++ b/src/OrchardCore.Modules/OrchardCore.Facebook/StartupLogin.cs @@ -22,7 +22,7 @@ public sealed class StartupLogin : StartupBase { public override void ConfigureServices(IServiceCollection services) { - services.AddScoped(); + services.AddNavigationProvider(); services.AddSingleton(); services.AddScoped, FacebookLoginSettingsDisplayDriver>(); diff --git a/src/OrchardCore.Modules/OrchardCore.Facebook/StartupPixel.cs b/src/OrchardCore.Modules/OrchardCore.Facebook/StartupPixel.cs index 3ac45eb5945..56180bbd6d5 100644 --- a/src/OrchardCore.Modules/OrchardCore.Facebook/StartupPixel.cs +++ b/src/OrchardCore.Modules/OrchardCore.Facebook/StartupPixel.cs @@ -17,7 +17,7 @@ public override void ConfigureServices(IServiceCollection services) { services.AddScoped, FacebookPixelSettingsDisplayDriver>(); services.AddScoped(); - services.AddScoped(); + services.AddNavigationProvider(); services.Configure((options) => { diff --git a/src/OrchardCore.Modules/OrchardCore.Features/Startup.cs b/src/OrchardCore.Modules/OrchardCore.Features/Startup.cs index 13a04229a77..e94915e6e9d 100644 --- a/src/OrchardCore.Modules/OrchardCore.Features/Startup.cs +++ b/src/OrchardCore.Modules/OrchardCore.Features/Startup.cs @@ -20,7 +20,7 @@ public override void ConfigureServices(IServiceCollection services) services.AddRecipeExecutionStep(); services.AddScoped(); services.AddScoped(); - services.AddScoped(); + services.AddNavigationProvider(); services.AddDeployment(); } diff --git a/src/OrchardCore.Modules/OrchardCore.GitHub/Startup.cs b/src/OrchardCore.Modules/OrchardCore.GitHub/Startup.cs index 8b4e68cc01e..dd10923cd5a 100644 --- a/src/OrchardCore.Modules/OrchardCore.GitHub/Startup.cs +++ b/src/OrchardCore.Modules/OrchardCore.GitHub/Startup.cs @@ -31,7 +31,7 @@ public override void ConfigureServices(IServiceCollection services) { services.AddSingleton(); services.AddScoped, GitHubAuthenticationSettingsDisplayDriver>(); - services.AddScoped(); + services.AddNavigationProvider(); services.AddRecipeExecutionStep(); services.AddTransient, GitHubAuthenticationSettingsConfiguration>(); diff --git a/src/OrchardCore.Modules/OrchardCore.Google/GoogleAuthenticationStartup.cs b/src/OrchardCore.Modules/OrchardCore.Google/GoogleAuthenticationStartup.cs index 6a077e7da54..7333d1f81e5 100644 --- a/src/OrchardCore.Modules/OrchardCore.Google/GoogleAuthenticationStartup.cs +++ b/src/OrchardCore.Modules/OrchardCore.Google/GoogleAuthenticationStartup.cs @@ -33,7 +33,7 @@ public override void ConfigureServices(IServiceCollection services) services.AddScoped(); services.AddSingleton(); services.AddScoped, GoogleAuthenticationSettingsDisplayDriver>(); - services.AddScoped(); + services.AddNavigationProvider(); // Register the options initializers required by the Google Handler. services.TryAddEnumerable(new[] { @@ -57,7 +57,7 @@ public override void ConfigureServices(IServiceCollection services) services.AddSingleton(); services.AddScoped, GoogleAnalyticsSettingsDisplayDriver>(); - services.AddScoped(); + services.AddNavigationProvider(); services.Configure((options) => { options.Filters.Add(); @@ -74,7 +74,7 @@ public override void ConfigureServices(IServiceCollection services) services.AddSingleton(); services.AddScoped, GoogleTagManagerSettingsDisplayDriver>(); - services.AddScoped(); + services.AddNavigationProvider(); services.Configure((options) => { options.Filters.Add(); diff --git a/src/OrchardCore.Modules/OrchardCore.Https/Startup.cs b/src/OrchardCore.Modules/OrchardCore.Https/Startup.cs index 0f44f6a8ede..9ff7ac7de7a 100644 --- a/src/OrchardCore.Modules/OrchardCore.Https/Startup.cs +++ b/src/OrchardCore.Modules/OrchardCore.Https/Startup.cs @@ -34,7 +34,7 @@ public override async ValueTask ConfigureAsync(IApplicationBuilder app, IEndpoin public override void ConfigureServices(IServiceCollection services) { - services.AddScoped(); + services.AddNavigationProvider(); services.AddScoped, HttpsSettingsDisplayDriver>(); services.AddSingleton(); diff --git a/src/OrchardCore.Modules/OrchardCore.Layers/Startup.cs b/src/OrchardCore.Modules/OrchardCore.Layers/Startup.cs index 018ddce7002..ca1c5cd5896 100644 --- a/src/OrchardCore.Modules/OrchardCore.Layers/Startup.cs +++ b/src/OrchardCore.Modules/OrchardCore.Layers/Startup.cs @@ -42,7 +42,7 @@ public override void ConfigureServices(IServiceCollection services) services.AddScoped, LayerSiteSettingsDisplayDriver>(); services.AddContentPart(); services.AddScoped(); - services.AddScoped(); + services.AddNavigationProvider(); services.AddScoped(); services.AddScoped(); services.AddIndexProvider(); diff --git a/src/OrchardCore.Modules/OrchardCore.Localization/Startup.cs b/src/OrchardCore.Modules/OrchardCore.Localization/Startup.cs index f76da554bcd..24ceed323e3 100644 --- a/src/OrchardCore.Modules/OrchardCore.Localization/Startup.cs +++ b/src/OrchardCore.Modules/OrchardCore.Localization/Startup.cs @@ -29,7 +29,7 @@ public sealed class Startup : StartupBase public override void ConfigureServices(IServiceCollection services) { services.AddScoped, LocalizationSettingsDisplayDriver>(); - services.AddScoped(); + services.AddNavigationProvider(); services.AddScoped(); services.AddScoped(); diff --git a/src/OrchardCore.Modules/OrchardCore.Media.AmazonS3/Startup.cs b/src/OrchardCore.Modules/OrchardCore.Media.AmazonS3/Startup.cs index 550db224ae4..68f59a76e98 100644 --- a/src/OrchardCore.Modules/OrchardCore.Media.AmazonS3/Startup.cs +++ b/src/OrchardCore.Modules/OrchardCore.Media.AmazonS3/Startup.cs @@ -35,7 +35,7 @@ public Startup(IShellConfiguration configuration, public override void ConfigureServices(IServiceCollection services) { services.AddScoped(); - services.AddScoped(); + services.AddNavigationProvider(); services.AddTransient, AwsStorageOptionsConfiguration>(); var storeOptions = new AwsStorageOptions().BindConfiguration(AmazonS3Constants.ConfigSections.AmazonS3, _configuration, _logger); diff --git a/src/OrchardCore.Modules/OrchardCore.Media.Azure/Startup.cs b/src/OrchardCore.Modules/OrchardCore.Media.Azure/Startup.cs index cc87c52bca3..a5dc14dd15c 100644 --- a/src/OrchardCore.Modules/OrchardCore.Media.Azure/Startup.cs +++ b/src/OrchardCore.Modules/OrchardCore.Media.Azure/Startup.cs @@ -40,7 +40,7 @@ public override int Order public override void ConfigureServices(IServiceCollection services) { services.AddScoped(); - services.AddScoped(); + services.AddNavigationProvider(); services.AddTransient, MediaBlobStorageOptionsConfiguration>(); // Only replace default implementation if options are valid. diff --git a/src/OrchardCore.Modules/OrchardCore.Media/Startup.cs b/src/OrchardCore.Modules/OrchardCore.Media/Startup.cs index 1f15a23b5f0..e1783cb772d 100644 --- a/src/OrchardCore.Modules/OrchardCore.Media/Startup.cs +++ b/src/OrchardCore.Modules/OrchardCore.Media/Startup.cs @@ -137,7 +137,7 @@ public override void ConfigureServices(IServiceCollection services) services.AddScoped(); services.AddScoped(); - services.AddScoped(); + services.AddNavigationProvider(); // ImageSharp @@ -236,7 +236,7 @@ public sealed class MediaCacheStartup : StartupBase public override void ConfigureServices(IServiceCollection services) { services.AddScoped(); - services.AddScoped(); + services.AddNavigationProvider(); } } diff --git a/src/OrchardCore.Modules/OrchardCore.Menu/Startup.cs b/src/OrchardCore.Modules/OrchardCore.Menu/Startup.cs index f2aa2264d8e..dae33a84d92 100644 --- a/src/OrchardCore.Modules/OrchardCore.Menu/Startup.cs +++ b/src/OrchardCore.Modules/OrchardCore.Menu/Startup.cs @@ -24,7 +24,7 @@ public override void ConfigureServices(IServiceCollection services) services.AddDataMigration(); services.AddScoped(); services.AddScoped(); - services.AddScoped(); + services.AddNavigationProvider(); services.AddScoped(); diff --git a/src/OrchardCore.Modules/OrchardCore.Microsoft.Authentication/MicrosoftAccountStartup.cs b/src/OrchardCore.Modules/OrchardCore.Microsoft.Authentication/MicrosoftAccountStartup.cs index 826174b7dad..1d9fc978100 100644 --- a/src/OrchardCore.Modules/OrchardCore.Microsoft.Authentication/MicrosoftAccountStartup.cs +++ b/src/OrchardCore.Modules/OrchardCore.Microsoft.Authentication/MicrosoftAccountStartup.cs @@ -30,7 +30,7 @@ public override void ConfigureServices(IServiceCollection services) services.AddSingleton(); services.AddScoped, MicrosoftAccountSettingsDisplayDriver>(); - services.AddScoped(); + services.AddNavigationProvider(); services.AddRecipeExecutionStep(); services.AddTransient, MicrosoftAccountSettingsConfiguration>(); @@ -58,7 +58,7 @@ public override void ConfigureServices(IServiceCollection services) services.AddRecipeExecutionStep(); services.AddScoped, AzureADSettingsDisplayDriver>(); - services.AddScoped(); + services.AddNavigationProvider(); services.AddTransient, AzureADSettingsConfiguration>(); diff --git a/src/OrchardCore.Modules/OrchardCore.Placements/Startup.cs b/src/OrchardCore.Modules/OrchardCore.Placements/Startup.cs index 450a8552e11..7fc021f8c2b 100644 --- a/src/OrchardCore.Modules/OrchardCore.Placements/Startup.cs +++ b/src/OrchardCore.Modules/OrchardCore.Placements/Startup.cs @@ -19,7 +19,7 @@ public sealed class Startup : StartupBase public override void ConfigureServices(IServiceCollection services) { services.AddScoped(); - services.AddScoped(); + services.AddNavigationProvider(); services.TryAddScoped(); services.AddScoped(); diff --git a/src/OrchardCore.Modules/OrchardCore.Queries/Sql/Startup.cs b/src/OrchardCore.Modules/OrchardCore.Queries/Sql/Startup.cs index 98fb4e817d6..0150a61ab26 100644 --- a/src/OrchardCore.Modules/OrchardCore.Queries/Sql/Startup.cs +++ b/src/OrchardCore.Modules/OrchardCore.Queries/Sql/Startup.cs @@ -22,7 +22,7 @@ public override void ConfigureServices(IServiceCollection services) services.AddScoped, SqlQueryDisplayDriver>(); services.AddQuerySource(SqlQuerySource.SourceName); - services.AddScoped(); + services.AddNavigationProvider(); services.AddDataMigration(); services.AddScoped(); } diff --git a/src/OrchardCore.Modules/OrchardCore.Queries/Startup.cs b/src/OrchardCore.Modules/OrchardCore.Queries/Startup.cs index 83e1bb1d35d..a148c2f6fe1 100644 --- a/src/OrchardCore.Modules/OrchardCore.Queries/Startup.cs +++ b/src/OrchardCore.Modules/OrchardCore.Queries/Startup.cs @@ -24,7 +24,7 @@ public sealed class Startup : StartupBase { public override void ConfigureServices(IServiceCollection services) { - services.AddScoped(); + services.AddNavigationProvider(); services.AddScoped, QueryDisplayDriver>(); services.AddScoped(); } diff --git a/src/OrchardCore.Modules/OrchardCore.ReCaptcha/Startup.cs b/src/OrchardCore.Modules/OrchardCore.ReCaptcha/Startup.cs index 5d0b1ce96cd..91c54baf097 100644 --- a/src/OrchardCore.Modules/OrchardCore.ReCaptcha/Startup.cs +++ b/src/OrchardCore.Modules/OrchardCore.ReCaptcha/Startup.cs @@ -23,7 +23,7 @@ public override void ConfigureServices(IServiceCollection services) services.AddReCaptcha(); services.AddScoped, ReCaptchaSettingsDisplayDriver>(); - services.AddScoped(); + services.AddNavigationProvider(); services.AddScoped(); } } diff --git a/src/OrchardCore.Modules/OrchardCore.Recipes/Startup.cs b/src/OrchardCore.Modules/OrchardCore.Recipes/Startup.cs index 6342412b4f0..b44b250b4dd 100644 --- a/src/OrchardCore.Modules/OrchardCore.Recipes/Startup.cs +++ b/src/OrchardCore.Modules/OrchardCore.Recipes/Startup.cs @@ -14,7 +14,7 @@ public sealed class Startup : StartupBase { public override void ConfigureServices(IServiceCollection services) { - services.AddScoped(); + services.AddNavigationProvider(); services.AddRecipeExecutionStep(); services.AddRecipeExecutionStep(); diff --git a/src/OrchardCore.Modules/OrchardCore.ReverseProxy/Startup.cs b/src/OrchardCore.Modules/OrchardCore.ReverseProxy/Startup.cs index 7b97365bb91..cfc0e2dea69 100644 --- a/src/OrchardCore.Modules/OrchardCore.ReverseProxy/Startup.cs +++ b/src/OrchardCore.Modules/OrchardCore.ReverseProxy/Startup.cs @@ -27,7 +27,7 @@ public override void Configure(IApplicationBuilder app, IEndpointRouteBuilder ro public override void ConfigureServices(IServiceCollection services) { - services.AddScoped(); + services.AddNavigationProvider(); services.AddScoped(); services.AddScoped, ReverseProxySettingsDisplayDriver>(); diff --git a/src/OrchardCore.Modules/OrchardCore.Roles/Startup.cs b/src/OrchardCore.Modules/OrchardCore.Roles/Startup.cs index 38984dc3784..25460ba5ee7 100644 --- a/src/OrchardCore.Modules/OrchardCore.Roles/Startup.cs +++ b/src/OrchardCore.Modules/OrchardCore.Roles/Startup.cs @@ -27,7 +27,7 @@ public override void ConfigureServices(IServiceCollection services) services.AddRecipeExecutionStep(); services.AddScoped(); services.AddScoped(); - services.AddScoped(); + services.AddNavigationProvider(); } } diff --git a/src/OrchardCore.Modules/OrchardCore.Search.AzureAI/Startup.cs b/src/OrchardCore.Modules/OrchardCore.Search.AzureAI/Startup.cs index ed3a62b98ed..abd03c34fca 100644 --- a/src/OrchardCore.Modules/OrchardCore.Search.AzureAI/Startup.cs +++ b/src/OrchardCore.Modules/OrchardCore.Search.AzureAI/Startup.cs @@ -19,7 +19,7 @@ public sealed class Startup : StartupBase public override void ConfigureServices(IServiceCollection services) { services.AddAzureAISearchServices(); - services.AddScoped(); + services.AddNavigationProvider(); services.AddScoped, AzureAISearchDefaultSettingsDisplayDriver>(); } } diff --git a/src/OrchardCore.Modules/OrchardCore.Search.Elasticsearch/Startup.cs b/src/OrchardCore.Modules/OrchardCore.Search.Elasticsearch/Startup.cs index 093bbc6aa3d..23ee3663dd9 100644 --- a/src/OrchardCore.Modules/OrchardCore.Search.Elasticsearch/Startup.cs +++ b/src/OrchardCore.Modules/OrchardCore.Search.Elasticsearch/Startup.cs @@ -95,7 +95,7 @@ public override void ConfigureServices(IServiceCollection services) services.AddElasticServices(); services.AddScoped(); - services.AddScoped(); + services.AddNavigationProvider(); services.AddScoped, ElasticQueryDisplayDriver>(); services.AddDataMigration(); services.AddScoped(); diff --git a/src/OrchardCore.Modules/OrchardCore.Search.Lucene/Startup.cs b/src/OrchardCore.Modules/OrchardCore.Search.Lucene/Startup.cs index 4db6f1ee0d4..cb0b49274e9 100644 --- a/src/OrchardCore.Modules/OrchardCore.Search.Lucene/Startup.cs +++ b/src/OrchardCore.Modules/OrchardCore.Search.Lucene/Startup.cs @@ -41,7 +41,7 @@ public override void ConfigureServices(IServiceCollection services) services.AddScoped(); services.AddScoped(); services.AddScoped(); - services.AddScoped(); + services.AddNavigationProvider(); services.AddScoped(); services.Configure(o => diff --git a/src/OrchardCore.Modules/OrchardCore.Search/Startup.cs b/src/OrchardCore.Modules/OrchardCore.Search/Startup.cs index cd278c1676d..fe4f6e9c4ff 100644 --- a/src/OrchardCore.Modules/OrchardCore.Search/Startup.cs +++ b/src/OrchardCore.Modules/OrchardCore.Search/Startup.cs @@ -30,7 +30,7 @@ public sealed class Startup : StartupBase public override void ConfigureServices(IServiceCollection services) { services.AddTransient, SearchSettingsConfiguration>(); - services.AddScoped(); + services.AddNavigationProvider(); services.AddScoped(); services.AddScoped, SearchSettingsDisplayDriver>(); diff --git a/src/OrchardCore.Modules/OrchardCore.Security/Startup.cs b/src/OrchardCore.Modules/OrchardCore.Security/Startup.cs index f9dea13cdee..d1dbb31e517 100644 --- a/src/OrchardCore.Modules/OrchardCore.Security/Startup.cs +++ b/src/OrchardCore.Modules/OrchardCore.Security/Startup.cs @@ -22,7 +22,7 @@ public override void ConfigureServices(IServiceCollection services) { services.AddScoped(); services.AddScoped, SecuritySettingsDisplayDriver>(); - services.AddScoped(); + services.AddNavigationProvider(); services.AddSingleton(); diff --git a/src/OrchardCore.Modules/OrchardCore.Seo/Startup.cs b/src/OrchardCore.Modules/OrchardCore.Seo/Startup.cs index 4246f6da8e9..508b2e1c4a7 100644 --- a/src/OrchardCore.Modules/OrchardCore.Seo/Startup.cs +++ b/src/OrchardCore.Modules/OrchardCore.Seo/Startup.cs @@ -39,7 +39,7 @@ public override void ConfigureServices(IServiceCollection services) services.AddScoped(); services.AddScoped, RobotsSettingsDisplayDriver>(); - services.AddScoped(); + services.AddNavigationProvider(); services.AddTransient(); } diff --git a/src/OrchardCore.Modules/OrchardCore.Settings/Startup.cs b/src/OrchardCore.Modules/OrchardCore.Settings/Startup.cs index 3ca02e824af..c8e4770cb2d 100644 --- a/src/OrchardCore.Modules/OrchardCore.Settings/Startup.cs +++ b/src/OrchardCore.Modules/OrchardCore.Settings/Startup.cs @@ -73,7 +73,7 @@ public override void ConfigureServices(IServiceCollection services) // Site Settings editor services.AddScoped, DefaultSiteSettingsDisplayDriver>(); services.AddScoped, ButtonsSettingsDisplayDriver>(); - services.AddScoped(); + services.AddNavigationProvider(); services.AddScoped(); diff --git a/src/OrchardCore.Modules/OrchardCore.Shortcodes/Startup.cs b/src/OrchardCore.Modules/OrchardCore.Shortcodes/Startup.cs index 8c9b473fd0b..fcf73ac8b8c 100644 --- a/src/OrchardCore.Modules/OrchardCore.Shortcodes/Startup.cs +++ b/src/OrchardCore.Modules/OrchardCore.Shortcodes/Startup.cs @@ -63,7 +63,7 @@ public override void ConfigureServices(IServiceCollection services) { services.AddScoped(); services.AddScoped(); - services.AddScoped(); + services.AddNavigationProvider(); services.AddRecipeExecutionStep(); diff --git a/src/OrchardCore.Modules/OrchardCore.Sitemaps/Startup.cs b/src/OrchardCore.Modules/OrchardCore.Sitemaps/Startup.cs index b8062490079..0ee1914917e 100644 --- a/src/OrchardCore.Modules/OrchardCore.Sitemaps/Startup.cs +++ b/src/OrchardCore.Modules/OrchardCore.Sitemaps/Startup.cs @@ -32,7 +32,7 @@ public sealed class Startup : StartupBase public override void ConfigureServices(IServiceCollection services) { services.AddDataMigration(); - services.AddScoped(); + services.AddNavigationProvider(); services.AddScoped(); services.Configure(options => diff --git a/src/OrchardCore.Modules/OrchardCore.Sms/Startup.cs b/src/OrchardCore.Modules/OrchardCore.Sms/Startup.cs index 1e9cb2f1d86..e42adcd6cfb 100644 --- a/src/OrchardCore.Modules/OrchardCore.Sms/Startup.cs +++ b/src/OrchardCore.Modules/OrchardCore.Sms/Startup.cs @@ -36,7 +36,7 @@ public override void ConfigureServices(IServiceCollection services) .AddScoped, TwilioSettingsDisplayDriver>(); services.AddScoped(); - services.AddScoped(); + services.AddNavigationProvider(); services.AddScoped, SmsSettingsDisplayDriver>(); } } diff --git a/src/OrchardCore.Modules/OrchardCore.Taxonomies/Startup.cs b/src/OrchardCore.Modules/OrchardCore.Taxonomies/Startup.cs index 5f70871c8c3..3108d9b1663 100644 --- a/src/OrchardCore.Modules/OrchardCore.Taxonomies/Startup.cs +++ b/src/OrchardCore.Modules/OrchardCore.Taxonomies/Startup.cs @@ -86,7 +86,7 @@ public override void ConfigureServices(IServiceCollection services) services.AddScoped(); services.AddScoped, TaxonomyContentsAdminListDisplayDriver>(); - services.AddScoped(); + services.AddNavigationProvider(); services.AddScoped, TaxonomyContentsAdminListSettingsDisplayDriver>(); } } diff --git a/src/OrchardCore.Modules/OrchardCore.Templates/Startup.cs b/src/OrchardCore.Modules/OrchardCore.Templates/Startup.cs index c90363e57d7..103ffdefe12 100644 --- a/src/OrchardCore.Modules/OrchardCore.Templates/Startup.cs +++ b/src/OrchardCore.Modules/OrchardCore.Templates/Startup.cs @@ -25,7 +25,7 @@ public override void ConfigureServices(IServiceCollection services) services.AddScoped(); services.AddScoped(); services.AddScoped(); - services.AddScoped(); + services.AddNavigationProvider(); services.AddRecipeExecutionStep(); // Template shortcuts in settings @@ -47,7 +47,7 @@ public override void ConfigureServices(IServiceCollection services) { services.AddScoped(); services.AddScoped(); - services.AddScoped(); + services.AddNavigationProvider(); services.AddRecipeExecutionStep(); services.AddDeployment(); } diff --git a/src/OrchardCore.Modules/OrchardCore.Tenants/Startup.cs b/src/OrchardCore.Modules/OrchardCore.Tenants/Startup.cs index 783c15265e7..0045a191803 100644 --- a/src/OrchardCore.Modules/OrchardCore.Tenants/Startup.cs +++ b/src/OrchardCore.Modules/OrchardCore.Tenants/Startup.cs @@ -31,7 +31,7 @@ public Startup(IShellConfiguration shellConfiguration) public override void ConfigureServices(IServiceCollection services) { - services.AddScoped(); + services.AddNavigationProvider(); services.AddScoped(); services.AddScoped(); services.AddScoped(); @@ -110,7 +110,7 @@ public sealed class FeatureProfilesStartup : StartupBase { public override void ConfigureServices(IServiceCollection services) { - services.AddScoped(); + services.AddNavigationProvider(); services.AddScoped(); services.AddScoped(); services.AddScoped(); diff --git a/src/OrchardCore.Modules/OrchardCore.Themes/Startup.cs b/src/OrchardCore.Modules/OrchardCore.Themes/Startup.cs index 43261d2422c..07333f92bd4 100644 --- a/src/OrchardCore.Modules/OrchardCore.Themes/Startup.cs +++ b/src/OrchardCore.Modules/OrchardCore.Themes/Startup.cs @@ -29,7 +29,7 @@ public override void ConfigureServices(IServiceCollection services) services.AddScoped(); services.AddScoped(); services.AddScoped(); - services.AddScoped(); + services.AddNavigationProvider(); services.AddScoped(); services.AddScoped(); services.AddDeployment(); diff --git a/src/OrchardCore.Modules/OrchardCore.Twitter/Startup.cs b/src/OrchardCore.Modules/OrchardCore.Twitter/Startup.cs index 8c0fcfb076e..1a27fac1bb5 100644 --- a/src/OrchardCore.Modules/OrchardCore.Twitter/Startup.cs +++ b/src/OrchardCore.Modules/OrchardCore.Twitter/Startup.cs @@ -35,7 +35,7 @@ public sealed class TwitterStartup : StartupBase public override void ConfigureServices(IServiceCollection services) { services.AddScoped, TwitterSettingsDisplayDriver>(); - services.AddScoped(); + services.AddNavigationProvider(); services.AddSingleton(); services.AddRecipeExecutionStep(); @@ -66,7 +66,7 @@ public sealed class TwitterSigninStartup : StartupBase { public override void ConfigureServices(IServiceCollection services) { - services.AddScoped(); + services.AddNavigationProvider(); services.AddSingleton(); services.AddScoped, TwitterSigninSettingsDisplayDriver>(); // Register the options initializers required by the Twitter Handler. diff --git a/src/OrchardCore.Modules/OrchardCore.Users/Startup.cs b/src/OrchardCore.Modules/OrchardCore.Users/Startup.cs index 05794b189fc..8271a08c7af 100644 --- a/src/OrchardCore.Modules/OrchardCore.Users/Startup.cs +++ b/src/OrchardCore.Modules/OrchardCore.Users/Startup.cs @@ -204,7 +204,7 @@ public override void ConfigureServices(IServiceCollection services) services.AddScoped(); services.AddScoped(); - services.AddScoped(); + services.AddNavigationProvider(); services.AddScoped, LoginSettingsDisplayDriver>(); @@ -367,7 +367,7 @@ public override void ConfigureServices(IServiceCollection services) o.MemberAccessStrategy.Register(); }); - services.AddScoped(); + services.AddNavigationProvider(); services.AddScoped, ChangeEmailSettingsDisplayDriver>(); services.AddScoped, ChangeEmailUserMenuDisplayDriver>(); } @@ -434,7 +434,7 @@ public override void ConfigureServices(IServiceCollection services) o.MemberAccessStrategy.Register(); }); - services.AddScoped(); + services.AddNavigationProvider(); services.AddScoped, RegistrationSettingsDisplayDriver>(); services.AddScoped, RegisterUserLoginFormDisplayDriver>(); services.AddScoped, RegisterUserFormDisplayDriver>(); @@ -515,7 +515,7 @@ public override void ConfigureServices(IServiceCollection services) o.MemberAccessStrategy.Register(); }); - services.AddScoped(); + services.AddNavigationProvider(); services.AddScoped, ResetPasswordSettingsDisplayDriver>(); services.AddScoped, ResetPasswordFormDisplayDriver>(); diff --git a/src/OrchardCore.Modules/OrchardCore.Workflows/Startup.cs b/src/OrchardCore.Modules/OrchardCore.Workflows/Startup.cs index 766e3574bf0..00a50e2851f 100644 --- a/src/OrchardCore.Modules/OrchardCore.Workflows/Startup.cs +++ b/src/OrchardCore.Modules/OrchardCore.Workflows/Startup.cs @@ -59,7 +59,7 @@ public override void ConfigureServices(IServiceCollection services) services.AddScoped(); services.AddScoped(); services.AddDataMigration(); - services.AddScoped(); + services.AddNavigationProvider(); services.AddScoped(); services.AddScoped, MissingActivityDisplayDriver>(); services.AddIndexProvider(); diff --git a/src/OrchardCore.Modules/OrchardCore.Workflows/Trimming/Extensions/ServiceCollectionExtensions.cs b/src/OrchardCore.Modules/OrchardCore.Workflows/Trimming/Extensions/ServiceCollectionExtensions.cs index f927e318a79..b3361f6d5a9 100644 --- a/src/OrchardCore.Modules/OrchardCore.Workflows/Trimming/Extensions/ServiceCollectionExtensions.cs +++ b/src/OrchardCore.Modules/OrchardCore.Workflows/Trimming/Extensions/ServiceCollectionExtensions.cs @@ -16,7 +16,7 @@ public static IServiceCollection AddTrimmingServices(this IServiceCollection ser services.AddScoped(); services.AddSingleton(); services.AddScoped, WorkflowTrimmingDisplayDriver>(); - services.AddScoped(); + services.AddNavigationProvider(); services.Configure(shellConfiguration.GetSection("OrchardCore_Workflows:Trimming")); return services; diff --git a/src/OrchardCore/OrchardCore.Navigation.Core/ServiceCollectionExtensions.cs b/src/OrchardCore/OrchardCore.Navigation.Core/ServiceCollectionExtensions.cs index 202decafcfb..89d37e2caad 100644 --- a/src/OrchardCore/OrchardCore.Navigation.Core/ServiceCollectionExtensions.cs +++ b/src/OrchardCore/OrchardCore.Navigation.Core/ServiceCollectionExtensions.cs @@ -16,4 +16,14 @@ public static IServiceCollection AddNavigation(this IServiceCollection services) return services; } + + /// + /// Registers a navigation provider. + /// + /// + public static IServiceCollection AddNavigationProvider(this IServiceCollection services) + where TProvider : class, INavigationProvider + { + return services.AddScoped(); + } } diff --git a/src/docs/releases/2.0.0.md b/src/docs/releases/2.0.0.md index 7bc02ae540c..d2a291be9a8 100644 --- a/src/docs/releases/2.0.0.md +++ b/src/docs/releases/2.0.0.md @@ -523,6 +523,8 @@ public sealed class AdminMenu : INavigationProvider } ``` +A new extension has been introduced to simplify the registration of navigation providers. Instead of using `services.AddScoped()`, you can now register it with the more streamlined `services.AddNavigationProvider();`. + ### Admin Routes The `[Admin]` attribute now has optional parameters for a custom route template and route name. It works just like the `[Route(template, name)]` attribute, except it prepends the configured admin prefix. You can apply it to the controller or the action; if both are specified then the action's template takes precedence. The route name can contain `{area}`, `{controller}`, and `{action}`, which are substituted during mapping so the names can be unique for each action. This means you don't have to define these admin routes in your module's `Startup` class anymore, but that option is still available and supported. Take a look at this example: