Implement referral, points, coupons, commission, member levels, and order integration with migration SQL and background jobs. Co-authored-by: Cursor <cursoragent@cursor.com>
56 lines
2.0 KiB
C#
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;
|
|
}
|
|
}
|