79 lines
2.4 KiB
C#
79 lines
2.4 KiB
C#
using AutoDispathingWork.Utils;
|
|
using LiteDB;
|
|
using Microsoft.EntityFrameworkCore;
|
|
using Microsoft.EntityFrameworkCore.Diagnostics;
|
|
using Microsoft.Extensions.FileProviders;
|
|
using Microsoft.OpenApi.Models;
|
|
using Npgsql;
|
|
using WorkerService1;
|
|
using WorkerService1.Dto.Configuration;
|
|
using WorkerService1.Services;
|
|
|
|
|
|
var builder = WebApplication.CreateBuilder(args);
|
|
|
|
builder.Services
|
|
.AddControllers();
|
|
builder.Services
|
|
.AddEndpointsApiExplorer();
|
|
var config = new ConfigurationManager()
|
|
.AddJsonFile("appsettings.json", false, true)
|
|
.Build();
|
|
builder.Services.AddCors(x =>
|
|
{
|
|
x.AddPolicy("AllowAllOrigin", builder =>
|
|
{
|
|
builder
|
|
.SetIsOriginAllowed(_ => true)
|
|
.AllowAnyMethod()
|
|
.AllowAnyHeader();
|
|
});
|
|
});
|
|
var connectionString = builder.Configuration.GetConnectionString("DefaultConnection");
|
|
builder.Services.AddDbContextPool<ApplicationDbContext>(x =>
|
|
{
|
|
var dataSourceBuilder = new NpgsqlDataSourceBuilder(connectionString);
|
|
// 启用动态 JSON 序列化
|
|
dataSourceBuilder.EnableDynamicJson();
|
|
var dataSource = dataSourceBuilder.Build();
|
|
x.UseNpgsql(dataSource)
|
|
.UseLoggerFactory(new LoggerFactory())
|
|
.LogTo(Console.WriteLine, LogLevel.Information);
|
|
x.ConfigureWarnings(warnings => warnings.Ignore(CoreEventId.ManyServiceProvidersCreatedWarning));
|
|
}
|
|
);
|
|
builder.Services.AddSwaggerGen();
|
|
|
|
builder.Services.AddSingleton<LiteDatabase>(x => new LiteDatabase(builder.Configuration["Database:ConnectionString"]));
|
|
builder.Services.AddSingleton<IConfiguration>(config);
|
|
builder.Services.Configure<ClientOptions>(config.GetSection("ClientOptions"));
|
|
builder.Services.AddHttpClient();
|
|
builder.Services.AddMemoryCache();
|
|
builder.Services.AddLogging();
|
|
// builder.Services.AddMvcCore();
|
|
builder.Services.AddSingleton<SpiderServices>();
|
|
builder.Services.AddSingleton<SettingServices>();
|
|
builder.Services.AddSingleton<WechatRobot>();
|
|
// #if !DEBUG
|
|
builder.Services.AddHostedService<Worker>();
|
|
builder.Services.AddHostedService<CloseWorker>();
|
|
// #endif
|
|
|
|
|
|
var app = builder.Build();
|
|
|
|
StaticServiceProvider.SetServiceProvider(app.Services);
|
|
app.UseCors("AllowAllOrigin");
|
|
#if DEBUG
|
|
app.UseSwagger();
|
|
app.UseSwaggerUI();
|
|
var wechatRobot = app.Services.GetService<WechatRobot>();
|
|
wechatRobot.SetKey("e68b3791-e040-4c9b-9ac0-6f424e662185");
|
|
|
|
#endif
|
|
|
|
app.UseDefaultFiles();
|
|
app.UseStaticFiles();
|
|
app.MapControllers();
|
|
app.Urls.Add("http://*:8080");
|
|
app.Run(); |