csharp-abp-study/Skcks.Study.AbpProject/test/Skcks.Study.AbpProject.Web.Tests/AbpProjectWebTestModule.cs
2024-11-22 22:33:59 +08:00

70 lines
2.4 KiB
C#

using System.Collections.Generic;
using System.Globalization;
using Microsoft.AspNetCore.Builder;
using Microsoft.AspNetCore.Localization;
using Microsoft.AspNetCore.Mvc.ApplicationParts;
using Microsoft.Extensions.Configuration;
using Microsoft.Extensions.DependencyInjection;
using Skcks.Study.AbpProject.EntityFrameworkCore;
using Skcks.Study.AbpProject.Web;
using Skcks.Study.AbpProject.Web.Menus;
using Volo.Abp.AspNetCore.TestBase;
using Volo.Abp.Modularity;
using Volo.Abp.OpenIddict;
using Volo.Abp.UI.Navigation;
namespace Skcks.Study.AbpProject;
[DependsOn(
typeof(AbpAspNetCoreTestBaseModule),
typeof(AbpProjectWebModule),
typeof(AbpProjectApplicationTestModule),
typeof(AbpProjectEntityFrameworkCoreTestModule)
)]
public class AbpProjectWebTestModule : AbpModule
{
public override void PreConfigureServices(ServiceConfigurationContext context)
{
var builder = new ConfigurationBuilder();
builder.AddJsonFile("appsettings.json", false);
builder.AddJsonFile("appsettings.secrets.json", true);
context.Services.ReplaceConfiguration(builder.Build());
context.Services.PreConfigure<IMvcBuilder>(builder =>
{
builder.PartManager.ApplicationParts.Add(new CompiledRazorAssemblyPart(typeof(AbpProjectWebModule).Assembly));
});
context.Services.GetPreConfigureActions<OpenIddictServerBuilder>().Clear();
PreConfigure<AbpOpenIddictAspNetCoreOptions>(options =>
{
options.AddDevelopmentEncryptionAndSigningCertificate = true;
});
}
public override void ConfigureServices(ServiceConfigurationContext context)
{
ConfigureLocalizationServices(context.Services);
ConfigureNavigationServices(context.Services);
}
private static void ConfigureLocalizationServices(IServiceCollection services)
{
var cultures = new List<CultureInfo> { new CultureInfo("en"), new CultureInfo("tr") };
services.Configure<RequestLocalizationOptions>(options =>
{
options.DefaultRequestCulture = new RequestCulture("en");
options.SupportedCultures = cultures;
options.SupportedUICultures = cultures;
});
}
private static void ConfigureNavigationServices(IServiceCollection services)
{
services.Configure<AbpNavigationOptions>(options =>
{
options.MenuContributors.Add(new AbpProjectMenuContributor());
});
}
}