2021-11-22 14:29:22 +01:00
|
|
|
using Microsoft.AspNetCore.Builder;
|
|
|
|
|
|
|
|
|
|
namespace zero;
|
|
|
|
|
|
|
|
|
|
public class ZeroApplicationBuilder : IZeroApplicationBuilder
|
|
|
|
|
{
|
|
|
|
|
protected IApplicationBuilder App { get; private set; }
|
|
|
|
|
|
|
|
|
|
protected IZeroOptions Options { get; private set; }
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
internal ZeroApplicationBuilder(IApplicationBuilder app)
|
|
|
|
|
{
|
|
|
|
|
App = app;
|
|
|
|
|
App.UseStaticFiles();
|
2021-12-01 13:03:06 +01:00
|
|
|
//App.UseExceptionHandler("/zero/api/error");
|
2021-12-13 13:40:04 +01:00
|
|
|
App.UseMiddleware<ZeroContextMiddleware>();
|
2022-01-07 12:47:37 +01:00
|
|
|
App.UseRouting();
|
2021-11-22 14:29:22 +01:00
|
|
|
App.UseAuthentication();
|
|
|
|
|
App.UseAuthorization();
|
2021-11-23 22:56:22 +01:00
|
|
|
|
2022-01-08 00:24:04 +01:00
|
|
|
ZeroBuilder.Modules.Configure(app, null, app.ApplicationServices);
|
|
|
|
|
|
|
|
|
|
foreach (IZeroPlugin plugin in ZeroBuilder.Plugins)
|
|
|
|
|
{
|
|
|
|
|
plugin.Configure(app, null, app.ApplicationServices);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
2021-11-26 12:31:33 +01:00
|
|
|
//ZeroModuleInitializer.ConfigureAll(app.ApplicationServices.GetRequiredService<IZeroOptions>());
|
2021-11-22 14:29:22 +01:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
public void WithEndpoints(Action<IZeroEndpointRouteBuilder> configure)
|
|
|
|
|
{
|
|
|
|
|
App.UseEndpoints(e =>
|
|
|
|
|
{
|
|
|
|
|
ZeroEndpointRouteBuilder builder = new(e);
|
|
|
|
|
configure(builder);
|
|
|
|
|
});
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
public IZeroApplicationBuilder WithMiddleware(Action<IApplicationBuilder> configure)
|
|
|
|
|
{
|
|
|
|
|
configure(App);
|
|
|
|
|
return this;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
public interface IZeroApplicationBuilder
|
|
|
|
|
{
|
|
|
|
|
void WithEndpoints(Action<IZeroEndpointRouteBuilder> endpoints);
|
|
|
|
|
|
|
|
|
|
IZeroApplicationBuilder WithMiddleware(Action<IApplicationBuilder> configure);
|
2021-12-12 15:41:51 +01:00
|
|
|
}
|