HuanMengAdmin/admin-server/MiaoYu.Api.Admin/ApiAdminStartup.cs
2024-07-22 16:03:12 +08:00

92 lines
2.7 KiB
C#

using MiaoYu.Core.Cos;
namespace MiaoYu.Api.Admin;
/// <summary>
/// 程序启动器
/// </summary>
[ImportStartupModule<
CoreQuartzStartup,
CoreRazorStartup,
CoreRedisStartup,
CoreIdentityStartup,
AdminRepositoryStartup,
ChatAdminRepositoryStartup,
CoreSwaggerJwtStartup,
SharedAdminStartup,
CoreCosStartup>]
public class ApiAdminStartup : AppStartupBase<ApiAdminStartup>
{
/// <summary>
///
/// </summary>
/// <param name="webApplicationBuilder"></param>
public override void ConfigureServices(WebApplicationBuilder webApplicationBuilder)
{
base.ConfigureServices(webApplicationBuilder);
var services = webApplicationBuilder.Services;
var configuration = webApplicationBuilder.Configuration;
var appConfiguration = new AppConfiguration(configuration);
services.AddControllers(options =>
{
options.Filters.Add<ApiAuthorizationFilter>();
options.Filters.Add<ApiPermissionFilter>();
})
.AddDynamicApiController(options => options.IsLower = false)
.AddControllersAsServices()
;
// 代码生成器需要开启 razor page 引擎
webApplicationBuilder.Services.AddRazorPages();
// razor 解决中文被编码
webApplicationBuilder.Services.AddSingleton(HtmlEncoder.Create(UnicodeRanges.All));
//SignalR
services.AddSignalR();
#region Api [ApiController]
services.Configure<ApiBehaviorOptions>(options => { options.SuppressModelStateInvalidFilter = true; });
#endregion
// 注册源生成器的 代码
//webApplicationBuilder.Services.AddDependencyInjectionGenerator();
}
/// <summary>
///
/// </summary>
/// <param name="webApplication"></param>
public override void Configure(WebApplication webApplication)
{
base.Configure(webApplication);
// 跳转客户端
// webApplication.MapGet("/", [AllowAnonymous] () => Results.Redirect("/client/index.html"));
webApplication.MapGet("/", [AllowAnonymous] () => "请求成功");
// 跳转离线文档
webApplication.MapGet("/docs", [AllowAnonymous] () => Results.Redirect("/docs/index.html"));
//SignalR
webApplication.UseSignalRHubs();
}
/// <summary>
/// 程序启动
/// </summary>
/// <param name="webApplication"></param>
public override void ApplicationStarted(WebApplication webApplication)
{
// 启动定时任务
if (webApplication.Configuration.GetSection("IsRunQuartzTask").Get<bool>())
{
webApplication.UseQuartzStartup();
}
}
}