Program.cs 1.9 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667
  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. //context.Services.AddTiDb(context);
  17. //添加任务调度
  18. context.Services.AddTaskScheduler(DbKeys.AppDb, options =>
  19. {
  20. options.ConfigureFreeSql = freeSql =>
  21. {
  22. freeSql.CodeFirst
  23. //配置任务表
  24. .ConfigEntity<TaskInfo>(a =>
  25. {
  26. a.Name("app_task");
  27. })
  28. //配置任务日志表
  29. .ConfigEntity<TaskLog>(a =>
  30. {
  31. a.Name("app_task_log");
  32. });
  33. };
  34. //模块任务处理器
  35. options.TaskHandler = new TaskHandler(options.FreeSql);
  36. });
  37. },
  38. //配置后置中间件
  39. ConfigurePostMiddleware = context =>
  40. {
  41. var app = context.App;
  42. var env = app.Environment;
  43. var appConfig = app.Services.GetService<AppConfig>();
  44. #region 新版Api文档
  45. if (env.IsDevelopment() || appConfig.ApiUI.Enable)
  46. {
  47. app.UseApiUI(options =>
  48. {
  49. options.RoutePrefix = appConfig.ApiUI.RoutePrefix;
  50. var routePath = options.RoutePrefix.NotNull() ? $"{options.RoutePrefix}/" : "";
  51. appConfig.Swagger.Projects?.ForEach(project =>
  52. {
  53. options.SwaggerEndpoint($"/{routePath}swagger/{project.Code.ToLower()}/swagger.json", project.Name);
  54. });
  55. });
  56. }
  57. #endregion
  58. }
  59. }).Run(args);
  60. #if DEBUG
  61. public partial class Program { }
  62. #endif