techgarage-ir.MTWireGuard/UI/Program.cs

94 lines
2.7 KiB
C#
Raw Normal View History

2023-03-03 23:24:18 +03:30
using Microsoft.AspNetCore.Authentication.Cookies;
using MTWireGuard.Middlewares;
2023-06-02 15:26:29 +03:30
using MTWireGuard.Application;
using Microsoft.Extensions.Caching.Memory;
using MTWireGuard.Application.MinimalAPI;
using Serilog;
using Serilog.Exceptions.Core;
using Serilog.Exceptions;
using System.Configuration;
using Serilog.Ui.Web;
using Serilog.Ui.Web.Authorization;
internal class Program
{
public static bool isValid { get; private set; }
public static string validationMessage { get; private set; }
2023-03-03 23:24:18 +03:30
private static async Task Main(string[] args)
{
var builder = WebApplication.CreateBuilder(args);
builder.Services.AddControllersWithViews();
builder.Services.AddExceptionHandler<ExceptionHandler>();
builder.Services.AddProblemDetails();
builder.Services.AddApplicationServices();
2023-03-03 23:24:18 +03:30
builder.Host.UseSerilog(Helper.LoggerConfiguration());
2023-03-03 23:24:18 +03:30
var app = builder.Build();
2023-03-03 23:24:18 +03:30
app.UseHttpsRedirection();
2023-03-03 23:24:18 +03:30
var serviceScope = app.Services.CreateScope().ServiceProvider;
// Validate Prerequisite
var validator = new SetupValidator(serviceScope);
isValid = await validator.Validate();
2023-06-02 15:26:29 +03:30
if (!app.Environment.IsDevelopment())
2023-03-03 23:24:18 +03:30
{
app.UseStaticFiles();
app.UseHsts();
2023-03-03 23:24:18 +03:30
}
else
app.UseStaticFiles(new StaticFileOptions()
{
OnPrepareResponse = context =>
{
context.Context.Response.Headers.Append("Cache-Control", "no-cache, no-store");
context.Context.Response.Headers.Append("Expires", "-1");
}
});
2023-03-03 23:24:18 +03:30
app.UseExceptionHandler();
app.UseClientReporting();
//app.UseAntiForgery();
app.UseRouting();
2023-03-03 23:24:18 +03:30
app.UseAuthentication();
app.UseAuthorization();
2023-03-03 23:24:18 +03:30
app.UseSession();
2023-03-03 23:24:18 +03:30
app.MapRazorPages();
app.
MapGroup("/api/").
MapGeneralApi();
2023-03-03 23:24:18 +03:30
app.UseCors(options =>
{
options.AllowAnyHeader();
options.AllowAnyMethod();
options.AllowAnyOrigin();
});
app.UseSerilogRequestLogging();
app.UseSerilogUi(options =>
{
options.RoutePrefix = "Debug";
options.InjectStylesheet("/assets/lib/boxicons/css/boxicons.min.css");
options.InjectStylesheet("/assets/css/serilogui.css");
options.InjectJavascript("/assets/js/serilogui.js");
options.Authorization.AuthenticationType = AuthenticationType.Jwt;
options.Authorization.Filters =
[
new SerilogUiAuthorizeFilter()
];
});
app.Run();
}
}