|
- using Altob.NtuInvoiceGateway.Middleware;
- using Altob.NtuInvoiceGateway.Models;
- using Serilog;
-
- var builder = WebApplication.CreateBuilder(args);
-
- builder.Host.UseSerilog((context, services, configuration) =>
- {
- configuration
- .ReadFrom.Configuration(context.Configuration)
- .Enrich.FromLogContext()
- .Enrich.WithProperty("ServiceName", "NtuInvoiceGateway");
- });
-
- // Add services to the container.
- builder.Services.AddRazorPages();
- builder.Services.AddHttpClient();
-
- // Configure company info
- builder.Services.Configure<Altob.NtuInvoiceGateway.Models.CompanyInfo>(
- builder.Configuration.GetSection("CompanyInfo"));
- builder.Services.Configure<Altob.NtuInvoiceGateway.Models.InvoiceApiOptions>(
- builder.Configuration.GetSection("InvoiceApi"));
- builder.Services.Configure<IpWhitelistOptions>(
- builder.Configuration.GetSection("IpWhitelist"));
-
- var app = builder.Build();
-
- try
- {
- // Configure the HTTP request pipeline.
- if (!app.Environment.IsDevelopment())
- {
- app.UseExceptionHandler("/Error");
- // The default HSTS value is 30 days. You may want to change this for production scenarios, see https://aka.ms/aspnetcore-hsts.
- app.UseHsts();
- }
-
- app.UseHttpsRedirection();
-
- app.UseRouting();
-
- app.UseMiddleware<IpWhitelistMiddleware>();
-
- app.UseAuthorization();
-
- app.MapStaticAssets();
- app.MapRazorPages()
- .WithStaticAssets();
-
- app.Run();
- }
- finally
- {
- Log.CloseAndFlush();
- }
|