Program.cs 2.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990
  1. using FreeScheduler;
  2. using Microsoft.Extensions.DependencyInjection;
  3. using Microsoft.Extensions.Hosting;
  4. using ZhonTai;
  5. using ZhonTai.Admin.Core;
  6. using ZhonTai.Admin.Core.Configs;
  7. using ZhonTai.Admin.Core.Consts;
  8. using ZhonTai.Admin.Core.Startup;
  9. using ZhonTai.Admin.Tools.TaskScheduler;
  10. using ZhonTai.ApiUI;
  11. new HostApp(new HostAppOptions
  12. {
  13. //配置后置服务
  14. ConfigurePostServices = context =>
  15. {
  16. //var appConfig = ConfigHelper.Get<AppConfig>("appconfig", context.Environment.EnvironmentName);
  17. //Assembly[] assemblies = DependencyContext.Default.RuntimeLibraries
  18. // .Where(a => appConfig.AssemblyNames.Contains(a.Name))
  19. // .Select(o => Assembly.Load(new AssemblyName(o.Name))).ToArray();
  20. //context.Services.AddCap(config =>
  21. //{
  22. // config.UseInMemoryStorage();
  23. // config.UseInMemoryMessageQueue();
  24. // config.UseDashboard();
  25. //}).AddSubscriberAssembly(assemblies);
  26. //context.Services.AddTiDb(context);
  27. //添加任务调度
  28. context.Services.AddTaskScheduler(DbKeys.AppDb, options =>
  29. {
  30. options.ConfigureFreeSql = freeSql =>
  31. {
  32. freeSql.CodeFirst
  33. //配置任务表
  34. .ConfigEntity<TaskInfo>(a =>
  35. {
  36. a.Name("app_task");
  37. })
  38. //配置任务日志表
  39. .ConfigEntity<TaskLog>(a =>
  40. {
  41. a.Name("app_task_log");
  42. });
  43. };
  44. //模块任务处理器
  45. options.TaskHandler = new TaskHandler(options.FreeSql);
  46. });
  47. },
  48. //配置Autofac容器
  49. ConfigureAutofacContainer = (builder, context) =>
  50. {
  51. },
  52. //配置Mvc
  53. ConfigureMvcBuilder = (builder, context) =>
  54. {
  55. },
  56. //配置后置中间件
  57. ConfigurePostMiddleware = context =>
  58. {
  59. var app = context.App;
  60. var env = app.Environment;
  61. var appConfig = app.Services.GetService<AppConfig>();
  62. #region 新版Api文档
  63. if (env.IsDevelopment() || appConfig.ApiUI.Enable)
  64. {
  65. app.UseApiUI(options =>
  66. {
  67. options.RoutePrefix = appConfig.ApiUI.RoutePrefix;
  68. var routePath = options.RoutePrefix.NotNull() ? $"{options.RoutePrefix}/" : "";
  69. appConfig.Swagger.Projects?.ForEach(project =>
  70. {
  71. options.SwaggerEndpoint($"/{routePath}swagger/{project.Code.ToLower()}/swagger.json", project.Name);
  72. });
  73. });
  74. }
  75. #endregion
  76. }
  77. }).Run(args);
  78. #if DEBUG
  79. public partial class Program { }
  80. #endif