2023-09-03 15:30:53 +02:00
|
|
|
using System;
|
|
|
|
using System.IO;
|
2023-09-03 00:13:02 +02:00
|
|
|
using Microsoft.AspNetCore.Builder;
|
|
|
|
using Microsoft.Extensions.DependencyInjection;
|
|
|
|
using Microsoft.Extensions.Hosting;
|
2023-09-21 20:51:16 +02:00
|
|
|
using Microsoft.OpenApi.Models;
|
2023-09-03 15:30:53 +02:00
|
|
|
using Serilog;
|
|
|
|
using Serilog.Formatting.Compact;
|
2023-09-06 21:06:13 +02:00
|
|
|
using SharpRSS.API.Data;
|
2023-09-21 20:51:16 +02:00
|
|
|
using SharpRSS.API.Net;
|
2023-09-03 15:30:53 +02:00
|
|
|
using ToolQit;
|
|
|
|
using ToolQit.Logging.Serilog;
|
2023-09-03 00:13:02 +02:00
|
|
|
|
2023-09-10 21:32:25 +02:00
|
|
|
|
2023-09-03 15:30:53 +02:00
|
|
|
SetupSerilog();
|
2023-09-03 00:13:02 +02:00
|
|
|
var builder = WebApplication.CreateBuilder(args);
|
2023-09-03 15:30:53 +02:00
|
|
|
builder.Logging.AddSerilog();
|
2023-09-03 00:13:02 +02:00
|
|
|
// Add services to the container.
|
|
|
|
|
|
|
|
builder.Services.AddControllers();
|
|
|
|
// Learn more about configuring Swagger/OpenAPI at https://aka.ms/aspnetcore/swashbuckle
|
|
|
|
builder.Services.AddEndpointsApiExplorer();
|
2023-09-21 20:51:16 +02:00
|
|
|
builder.Services.AddSwaggerGen(con =>
|
|
|
|
{
|
|
|
|
con.SwaggerDoc("v1", new OpenApiInfo() { Title = "SharRSS API", Version = "v1"});
|
|
|
|
con.OperationFilter<SwaggerSessionHeader>();
|
|
|
|
});
|
2023-09-10 21:32:25 +02:00
|
|
|
builder.Services.AddScoped<AuthService>();
|
2023-09-06 21:06:13 +02:00
|
|
|
builder.Services.AddScoped<SharpRssService>();
|
2023-09-03 00:13:02 +02:00
|
|
|
|
|
|
|
var app = builder.Build();
|
|
|
|
|
|
|
|
// Configure the HTTP request pipeline.
|
|
|
|
if (app.Environment.IsDevelopment())
|
|
|
|
{
|
|
|
|
app.UseSwagger();
|
|
|
|
app.UseSwaggerUI();
|
|
|
|
}
|
|
|
|
|
|
|
|
app.UseHttpsRedirection();
|
|
|
|
|
|
|
|
app.UseAuthorization();
|
|
|
|
|
|
|
|
app.MapControllers();
|
|
|
|
|
2023-09-03 15:30:53 +02:00
|
|
|
app.Run();
|
|
|
|
|
|
|
|
|
|
|
|
void SetupSerilog()
|
|
|
|
{
|
|
|
|
LoggerConfiguration _logConfig = new LoggerConfiguration()
|
|
|
|
.Enrich.With(new LogEnricher())
|
|
|
|
.WriteTo.Console(outputTemplate: "[{Timestamp:HH:mm:ss} - {Sender} | {Level:u3}] {Message:lj}{NewLine}{Exception}")
|
|
|
|
.WriteTo.File(new CompactJsonFormatter(), Path.Combine(Environment.CurrentDirectory, "logs", "log_.json"),
|
|
|
|
rollingInterval: RollingInterval.Day);
|
|
|
|
Log.Logger = _logConfig.CreateLogger();
|
|
|
|
LogManager.RegisterAdapter(new SerilogAdapter(Log.Logger));
|
|
|
|
}
|