admin/src/SimpleAdmin.Api/SimpleAdminApiBootstrap.cs
zzh 89233bc3da feat: add customer marketing module (M1-M6 backend)
Implement referral, points, coupons, commission, member levels, and order integration with migration SQL and background jobs.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-23 16:42:08 +08:00

56 lines
2.0 KiB
C#

using Serilog;
namespace SimpleAdmin.Api;
/// <summary>
/// 为正式启动与集成测试提供统一的应用构建入口。
/// </summary>
public static class SimpleAdminApiBootstrap
{
/// <summary>
/// 创建并配置 API 应用构建器。
/// </summary>
/// <param name="args">启动参数。</param>
/// <param name="configureBuilder">附加构建配置,主要供测试环境注入本地配置和测试服务器使用。</param>
/// <param name="environmentName">可选环境名,覆盖 ASPNETCORE_ENVIRONMENT。</param>
public static WebApplicationBuilder CreateBuilder(
string[] args,
Action<WebApplicationBuilder>? configureBuilder = null,
string? environmentName = null)
{
var builder = WebApplication.CreateSlimBuilder(new WebApplicationOptions
{
Args = args,
EnvironmentName = environmentName,
ApplicationName = typeof(SimpleAdminApiModule).Assembly.GetName().Name
});
configureBuilder?.Invoke(builder);
if (!builder.Configuration.GetValue<bool>("UseLocalConfigs"))
{
builder.Configuration.AddConsul("idwms/common", source => source.ReloadOnChange = true);
builder.Configuration.AddConsul("idwms/admin", source => source.ReloadOnChange = true);
}
Log.Logger = new LoggerConfiguration()
.ReadFrom.Configuration(builder.Configuration)
.CreateLogger();
builder.WebHost.UseUrls(builder.Configuration.GetSection("App:Urls").Get<string[]>() ?? []);
builder.Host.UseAutofac().UseSerilog();
builder.Services.AddApplication<SimpleAdminApiModule>();
return builder;
}
/// <summary>
/// 根据构建器生成并初始化 WebApplication。
/// </summary>
public static WebApplication BuildApplication(WebApplicationBuilder builder)
{
var app = builder.Build();
app.InitializeApplication();
return app;
}
}