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(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(); // //操作日志中间件 // app.UseMiddleware(); app.UseObjectMapping(); // 先开启认证 app.UseAuthentication(); // 然后是授权中间件 app.UseAuthorization(); app.UseEndpoints(endpoints => { endpoints.MapControllers(); }); //await ServiceLocator.Instance.GetService().LoadCommonCache(); //app.UseHangfireServer(); //JobMiddleware.RegisterJob(j => j.GeneratReportAsync(), Cron.Daily(23, 59)); app.Run();