0
0

Program.cs 1.9 KB

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