You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
115 lines
3.7 KiB
C#
115 lines
3.7 KiB
C#
using Autofac;
|
|
using Autofac.Extensions.DependencyInjection;
|
|
using DS.Module.AutofacModule;
|
|
using DS.Module.Core;
|
|
using DS.Module.Core.Extensions;
|
|
using DS.Module.Core.ServiceExtensions;
|
|
using DS.Module.DjyRulesEngine;
|
|
using DS.Module.Jwt;
|
|
using DS.Module.MQ;
|
|
using DS.Module.MultiLanguage;
|
|
using DS.Module.PrintModule;
|
|
using DS.Module.RedisModule;
|
|
using DS.Module.SqlSugar;
|
|
using DS.Module.Swagger;
|
|
using DS.Module.UserModule;
|
|
using DS.WMS.Core;
|
|
using NLog.Web;
|
|
using Swashbuckle.AspNetCore.SwaggerUI;
|
|
using DS.Module.QuartzModuleInstall;
|
|
using DS.WMS.Core.Op.Dtos.Mapper;
|
|
|
|
var builder = WebApplication.CreateBuilder(args);
|
|
var environment = builder.Environment.EnvironmentName;
|
|
Console.WriteLine("当前环境:" + environment);
|
|
//注册配置
|
|
builder.Configuration
|
|
// .SetBasePath(builder.Environment.ContentRootPath)
|
|
.AddJsonFile(path: "appsettings.json", optional: false, reloadOnChange: true)
|
|
// .AddJsonFile(path: $"appsettings.{environment}.json", optional: true, reloadOnChange: true)
|
|
.Build();
|
|
builder.Configuration.AddEnvironmentVariables();
|
|
builder.Logging.AddNLog("nlog.config");
|
|
// Add services to the container.
|
|
//Autofac注入
|
|
builder.Host
|
|
.UseServiceProviderFactory(new AutofacServiceProviderFactory())
|
|
.ConfigureContainer<ContainerBuilder>(builder => { builder.RegisterModule(new AutofacModuleRegister()); });
|
|
|
|
builder.Services.AddAppWebInstal();
|
|
builder.Services.AddCorsInstall();
|
|
builder.Services.AddUserModuleInstall(); //用户服务
|
|
builder.Services.AddRedisModuleInstall();//redis
|
|
builder.Services.AddSqlSugarInstall();
|
|
builder.Services.AddSwaggerInstall();
|
|
builder.Services.AddJwtInstall();
|
|
builder.Services.AddSaasDbInstall();//分库服务
|
|
builder.Services.AddMultiLanguageInstall();//多语言服务
|
|
builder.Services.AddDjyModuleInstall();//Djy服务
|
|
builder.Services.AddRuleEngineModuleInstall();//Djy规则引擎校验服务
|
|
builder.Services.AddOpPlatMapsterSetup(); // 全局的Mapster自定义映射规则
|
|
//builder.Services.AddHangfireModuleInstall();//Hangfire服务
|
|
//builder.Services.AddHangfireOPInstall();//Hangfire服务
|
|
builder.Services.AddMQModuleInstall();//MQ
|
|
|
|
// builder.Services.AddEndpointsApiExplorer();
|
|
// builder.Services.AddSwaggerGen();
|
|
|
|
//builder.Services.AddCrawlerModuleInstall();//运踪服务
|
|
|
|
//添加 Quartz 服务
|
|
builder.Services.AddOpQuartzModuleInstall(builder.Configuration);
|
|
|
|
|
|
var app = builder.Build();
|
|
|
|
|
|
// Configure the HTTP request pipeline.
|
|
// if (app.Environment.IsDevelopment())
|
|
// {
|
|
// app.UseSwagger();
|
|
// app.UseSwaggerUI();
|
|
// }
|
|
//swagger
|
|
// app.UseSwagger();
|
|
var documentName = AppSetting.app(new string[] { "SwaggerDoc", "ContactName" });
|
|
app
|
|
.UseSwagger(c => { c.RouteTemplate = "{documentName}/swagger.json"; })
|
|
.UseSwaggerUI(c =>
|
|
{
|
|
c.SwaggerEndpoint("/" + documentName + "/swagger.json",
|
|
AppSetting.app(new string[] { "SwaggerDoc", "ContactName" }));
|
|
c.DocExpansion(DocExpansion.None);//DocExpansion设置为None可折叠所有方法
|
|
c.DefaultModelExpandDepth(-1);//-1 可不显示Models
|
|
});
|
|
//跨域
|
|
var policyName = AppSetting.app(new string[] { "Cors", "PolicyName" });
|
|
if (!policyName.IsNullOrEmpty())
|
|
{
|
|
app.UseCors(policyName); //添加跨域中间件
|
|
}
|
|
|
|
//app.UseHangfireMiddleware();
|
|
|
|
app.UseRouting();
|
|
|
|
app.UseStaticFiles();
|
|
//多语言中间件
|
|
app.UseMiddleware<MultiLanguageMiddleware>();
|
|
// //操作日志中间件
|
|
// app.UseMiddleware<OperationLogMiddleware>();
|
|
|
|
app.UseObjectMapping();
|
|
|
|
// 先开启认证
|
|
app.UseAuthentication();
|
|
// 然后是授权中间件
|
|
app.UseAuthorization();
|
|
app.UseEndpoints(endpoints => { endpoints.MapControllers(); });
|
|
|
|
//await ServiceLocator.Instance.GetService<ISysCommonCacheService>().LoadCommonCache();
|
|
|
|
//app.UseHangfireServer();
|
|
//JobMiddleware.RegisterJob<IWSLReportJobService>(j => j.GeneratReportAsync(), Cron.Daily(23, 59));
|
|
|
|
app.Run(); |