101 lines
2.6 KiB
C#
101 lines
2.6 KiB
C#
|
using System.Reflection;
|
|||
|
using System.Text.Json;
|
|||
|
|
|||
|
using APP_LOGGING.Accessories.LoggingAccessories;
|
|||
|
|
|||
|
using APP_UTILITIES.Middleware;
|
|||
|
|
|||
|
using Microsoft.AspNetCore.Mvc;
|
|||
|
using Microsoft.OpenApi.Models;
|
|||
|
|
|||
|
var builder = WebApplication.CreateBuilder(args);
|
|||
|
|
|||
|
builder.Configuration.SetBasePath(Directory.GetCurrentDirectory())
|
|||
|
.AddJsonFile($"{LoggingExtensions.AppDir}/app_configuration.json");
|
|||
|
|
|||
|
builder.WebHost.UseUrls($"https://{builder.Configuration["appSettings:appHost"]}");
|
|||
|
|
|||
|
builder.Services.AddControllersWithViews();
|
|||
|
|
|||
|
#region <EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
|||
|
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
// builder.Services.AddSingleton<ICashService, CashService>();
|
|||
|
|
|||
|
#endregion
|
|||
|
|
|||
|
builder.Services.Configure<JsonOptions>(options =>
|
|||
|
{
|
|||
|
options.JsonSerializerOptions.WriteIndented = true; //<2F><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
options.JsonSerializerOptions.PropertyNamingPolicy = JsonNamingPolicy.CamelCase;
|
|||
|
});
|
|||
|
|
|||
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
builder.Services.AddAntiforgery(options =>
|
|||
|
{
|
|||
|
options.HeaderName = "X-CSRF-TOKEN";
|
|||
|
});
|
|||
|
|
|||
|
builder.Services.AddSwaggerGen(options =>
|
|||
|
{
|
|||
|
options.SwaggerDoc("v1", new OpenApiInfo
|
|||
|
{
|
|||
|
Title = "App API",
|
|||
|
Version = "1.0.0",
|
|||
|
Description = "<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> API",
|
|||
|
Contact = new OpenApiContact
|
|||
|
{
|
|||
|
Name = "Dvurechensky"
|
|||
|
}
|
|||
|
});
|
|||
|
var xmlFile = $"{Assembly.GetExecutingAssembly().GetName().Name}.xml";
|
|||
|
var xmlPath = Path.Combine(AppContext.BaseDirectory, xmlFile);
|
|||
|
options.IncludeXmlComments(xmlPath);
|
|||
|
});
|
|||
|
|
|||
|
var app = builder.Build();
|
|||
|
|
|||
|
var appLifetime = app.Services.GetRequiredService<IHostApplicationLifetime>();
|
|||
|
|
|||
|
appLifetime.ApplicationStarted.Register(async () =>
|
|||
|
{ //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
LoggingExtensions.Logging.InitializeLogging("API Reagent Project Control");
|
|||
|
});
|
|||
|
|
|||
|
appLifetime.ApplicationStopping.Register(() =>
|
|||
|
{
|
|||
|
LoggingExtensions.Logging.DeinitializeLogging(); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
});
|
|||
|
|
|||
|
if (!app.Environment.IsDevelopment())
|
|||
|
{
|
|||
|
app.UseExceptionHandler("/Home/Error");
|
|||
|
app.UseHsts();
|
|||
|
}
|
|||
|
else
|
|||
|
{
|
|||
|
app.UseSwagger();
|
|||
|
app.UseSwaggerUI(c =>
|
|||
|
{
|
|||
|
c.SwaggerEndpoint("/swagger/v1/swagger.json", "<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
|
|||
|
c.RoutePrefix = "docs";
|
|||
|
});
|
|||
|
app.UseDeveloperExceptionPage(); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
}
|
|||
|
|
|||
|
app.UseCookiePolicy(); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
|||
|
|
|||
|
// app.UseHttpsRedirection();
|
|||
|
|
|||
|
app.UseStaticFiles();
|
|||
|
app.UseRouting();
|
|||
|
|
|||
|
app.UseMiddleware<AntiforgeryMiddleware>(); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
app.UseAuthorization();
|
|||
|
|
|||
|
app.MapControllerRoute(
|
|||
|
name: "default",
|
|||
|
pattern: "{controller=Home}/{action=Index}/{id?}");
|
|||
|
|
|||
|
app.Run();
|