Browse Source

feat: 升级abp10

main-10.0.0
wangjunzzz 3 months ago
parent
commit
2ac31c1243
  1. 30
      aspnet-core/Directory.Build.Microsoft.targets
  2. 190
      aspnet-core/Directory.Build.Volo.targets
  3. 48
      aspnet-core/Directory.Build.targets
  4. 13
      aspnet-core/frameworks/src/Lion.AbpPro.AspNetCore/Lion.AbpPro.AspNetCore.csproj
  5. 2
      aspnet-core/frameworks/src/Lion.AbpPro.AspNetCore/Lion/AbpPro/AspNetCore/AbpProAspNetCoreModule.cs
  6. 8
      aspnet-core/frameworks/src/Lion.AbpPro.AspNetCore/Microsoft/Extensions/DependencyInjection/ServiceCollectionExtensions.cs
  7. 52
      aspnet-core/frameworks/src/Lion.AbpPro.AspNetCore/Swagger/CachingSwaggerProvider.cs
  8. 42
      aspnet-core/frameworks/src/Lion.AbpPro.AspNetCore/Swagger/EnumSchemaFilter.cs
  9. 96
      aspnet-core/frameworks/src/Lion.AbpPro.AspNetCore/Swagger/HiddenAbpDefaultApiFilter.cs
  10. 2
      aspnet-core/frameworks/src/Lion.AbpPro.CAP.EntityFrameworkCore/Lion.AbpPro.CAP.EntityFrameworkCore.csproj
  11. 2
      aspnet-core/frameworks/src/Lion.AbpPro.CAP/Lion.AbpPro.CAP.csproj
  12. 2
      aspnet-core/frameworks/src/Lion.AbpPro.Cli.Core/Lion.AbpPro.Cli.Core.csproj
  13. 2
      aspnet-core/frameworks/src/Lion.AbpPro.Cli/Lion.AbpPro.Cli.csproj
  14. 3
      aspnet-core/frameworks/src/Lion.AbpPro.Core/Lion.AbpPro.Core.csproj
  15. 2
      aspnet-core/frameworks/src/Lion.AbpPro.ElasticSearch/Lion.AbpPro.ElasticSearch.csproj
  16. 2
      aspnet-core/frameworks/src/Lion.AbpPro.EntityFrameworkCore.Mysql/Lion.AbpPro.EntityFrameworkCore.Mysql.csproj
  17. 2
      aspnet-core/frameworks/src/Lion.AbpPro.EntityFrameworkCore/Lion.AbpPro.EntityFrameworkCore.csproj
  18. 2
      aspnet-core/frameworks/src/Lion.AbpPro.Hangfire/Lion.AbpPro.Hangfire.csproj
  19. 2
      aspnet-core/frameworks/src/Lion.AbpPro.HttpClient/Lion.AbpPro.HttpClient.csproj
  20. 2
      aspnet-core/frameworks/src/Lion.AbpPro.Localization/Lion.AbpPro.Localization.csproj
  21. 2
      aspnet-core/frameworks/src/Lion.AbpPro.SignalR/Lion.AbpPro.SignalR.csproj
  22. 2
      aspnet-core/frameworks/src/Lion.AbpPro.Starter/Lion.AbpPro.Starter.csproj
  23. 2
      aspnet-core/frameworks/test/Lion.AbpPro.Core.Cli.Tests/Lion.AbpPro.Core.Cli.Tests.csproj
  24. 2
      aspnet-core/frameworks/test/Lion.AbpPro.Core.Tests/Lion.AbpPro.Core.Tests.csproj
  25. 2
      aspnet-core/frameworks/test/Lion.AbpPro.ElasticSearch.Tests/Lion.AbpPro.ElasticSearch.Tests.csproj
  26. 2
      aspnet-core/frameworks/test/Lion.AbpPro.EntityFrameworkCore.Mysql.Tests/Lion.AbpPro.EntityFrameworkCore.Tests.csproj
  27. 2
      aspnet-core/frameworks/test/Lion.AbpPro.Localization.Tests/Lion.AbpPro.Localization.Tests.csproj
  28. 2
      aspnet-core/gateways/Lion.AbpPro.WebGateway/Lion.AbpPro.WebGateway.csproj
  29. 7
      aspnet-core/global.json
  30. 205
      aspnet-core/modules/BasicManagement/host/Lion.AbpPro.BasicManagement.HttpApi.Host/BasicManagementHttpApiHostModule.cs
  31. 3
      aspnet-core/modules/BasicManagement/host/Lion.AbpPro.BasicManagement.HttpApi.Host/Controllers/HomeController.cs
  32. 1
      aspnet-core/modules/BasicManagement/host/Lion.AbpPro.BasicManagement.HttpApi.Host/EntityFrameworkCore/BasicManagementHttpApiHostMigrationsDbContext.cs
  33. 24
      aspnet-core/modules/BasicManagement/host/Lion.AbpPro.BasicManagement.HttpApi.Host/GlobalUsings.cs
  34. 3
      aspnet-core/modules/BasicManagement/host/Lion.AbpPro.BasicManagement.HttpApi.Host/Lion.AbpPro.BasicManagement.HttpApi.Host.csproj
  35. 3
      aspnet-core/modules/BasicManagement/src/Lion.AbpPro.BasicManagement.Application.Contracts/Lion.AbpPro.BasicManagement.Application.Contracts.csproj
  36. 1
      aspnet-core/modules/BasicManagement/src/Lion.AbpPro.BasicManagement.Application/ApplicationConfigurations/AbpProApplicationConfigurationAppService.cs
  37. 4
      aspnet-core/modules/BasicManagement/src/Lion.AbpPro.BasicManagement.Application/AuditLogs/AuditLogAppService.cs
  38. 41
      aspnet-core/modules/BasicManagement/src/Lion.AbpPro.BasicManagement.Application/BasicManagementApplicationAutoMapperProfile.cs
  39. 8
      aspnet-core/modules/BasicManagement/src/Lion.AbpPro.BasicManagement.Application/BasicManagementApplicationModule.cs
  40. 6
      aspnet-core/modules/BasicManagement/src/Lion.AbpPro.BasicManagement.Application/IdentitySecurityLogs/IdentitySecurityLogAppService.cs
  41. 4
      aspnet-core/modules/BasicManagement/src/Lion.AbpPro.BasicManagement.Application/Lion.AbpPro.BasicManagement.Application.csproj
  42. 14
      aspnet-core/modules/BasicManagement/src/Lion.AbpPro.BasicManagement.Application/OrganizationUnits/OrganizationUnitAppService.cs
  43. 7
      aspnet-core/modules/BasicManagement/src/Lion.AbpPro.BasicManagement.Application/Roles/RoleAppService.cs
  44. 3
      aspnet-core/modules/BasicManagement/src/Lion.AbpPro.BasicManagement.Application/Tenants/VoloTenantAppService.cs
  45. 5
      aspnet-core/modules/BasicManagement/src/Lion.AbpPro.BasicManagement.Application/Users/AccountAppService.cs
  46. 17
      aspnet-core/modules/BasicManagement/src/Lion.AbpPro.BasicManagement.Application/Users/UserAppService.cs
  47. 2
      aspnet-core/modules/BasicManagement/src/Lion.AbpPro.BasicManagement.Domain.Shared/Lion.AbpPro.BasicManagement.Domain.Shared.csproj
  48. 7
      aspnet-core/modules/BasicManagement/src/Lion.AbpPro.BasicManagement.Domain/BasicManagementDomainModule.cs
  49. 1
      aspnet-core/modules/BasicManagement/src/Lion.AbpPro.BasicManagement.Domain/GlobalUsings.cs
  50. 2
      aspnet-core/modules/BasicManagement/src/Lion.AbpPro.BasicManagement.Domain/Lion.AbpPro.BasicManagement.Domain.csproj
  51. 2
      aspnet-core/modules/BasicManagement/src/Lion.AbpPro.BasicManagement.EntityFrameworkCore/Lion.AbpPro.BasicManagement.EntityFrameworkCore.csproj
  52. 2
      aspnet-core/modules/BasicManagement/src/Lion.AbpPro.BasicManagement.HttpApi.Client/Lion.AbpPro.BasicManagement.HttpApi.Client.csproj
  53. 2
      aspnet-core/modules/BasicManagement/src/Lion.AbpPro.BasicManagement.HttpApi/Lion.AbpPro.BasicManagement.HttpApi.csproj
  54. 2
      aspnet-core/modules/BasicManagement/test/Lion.AbpPro.BasicManagement.Application.Tests/Lion.AbpPro.BasicManagement.Application.Tests.csproj
  55. 2
      aspnet-core/modules/BasicManagement/test/Lion.AbpPro.BasicManagement.Domain.Tests/Lion.AbpPro.BasicManagement.Domain.Tests.csproj
  56. 2
      aspnet-core/modules/BasicManagement/test/Lion.AbpPro.BasicManagement.EntityFrameworkCore.Tests/Lion.AbpPro.BasicManagement.EntityFrameworkCore.Tests.csproj
  57. 2
      aspnet-core/modules/BasicManagement/test/Lion.AbpPro.BasicManagement.TestBase/Lion.AbpPro.BasicManagement.TestBase.csproj
  58. 176
      aspnet-core/modules/DataDictionaryManagement/host/Lion.AbpPro.DataDictionaryManagement.HttpApi.Host/DataDictionaryManagementHttpApiHostModule.cs
  59. 1
      aspnet-core/modules/DataDictionaryManagement/host/Lion.AbpPro.DataDictionaryManagement.HttpApi.Host/GlobalUsings.cs
  60. 2
      aspnet-core/modules/DataDictionaryManagement/host/Lion.AbpPro.DataDictionaryManagement.HttpApi.Host/Lion.AbpPro.DataDictionaryManagement.HttpApi.Host.csproj
  61. 2
      aspnet-core/modules/DataDictionaryManagement/src/Lion.AbpPro.DataDictionaryManagement.Application.Contracts/Lion.AbpPro.DataDictionaryManagement.Application.Contracts.csproj
  62. 6
      aspnet-core/modules/DataDictionaryManagement/src/Lion.AbpPro.DataDictionaryManagement.Application/DataDictionaries/DataDictionaryAppService.cs
  63. 14
      aspnet-core/modules/DataDictionaryManagement/src/Lion.AbpPro.DataDictionaryManagement.Application/DataDictionaryManagementApplicationAutoMapperProfile.cs
  64. 11
      aspnet-core/modules/DataDictionaryManagement/src/Lion.AbpPro.DataDictionaryManagement.Application/DataDictionaryManagementApplicationModule.cs
  65. 2
      aspnet-core/modules/DataDictionaryManagement/src/Lion.AbpPro.DataDictionaryManagement.Application/GlobalUsings.cs
  66. 3
      aspnet-core/modules/DataDictionaryManagement/src/Lion.AbpPro.DataDictionaryManagement.Application/Lion.AbpPro.DataDictionaryManagement.Application.csproj
  67. 2
      aspnet-core/modules/DataDictionaryManagement/src/Lion.AbpPro.DataDictionaryManagement.Domain.Shared/Lion.AbpPro.DataDictionaryManagement.Domain.Shared.csproj
  68. 6
      aspnet-core/modules/DataDictionaryManagement/src/Lion.AbpPro.DataDictionaryManagement.Domain/DataDictionaries/DataDictionaryManager.cs
  69. 11
      aspnet-core/modules/DataDictionaryManagement/src/Lion.AbpPro.DataDictionaryManagement.Domain/DataDictionaryDomainAutoMapperProfile.cs
  70. 9
      aspnet-core/modules/DataDictionaryManagement/src/Lion.AbpPro.DataDictionaryManagement.Domain/DataDictionaryDomainService.cs
  71. 13
      aspnet-core/modules/DataDictionaryManagement/src/Lion.AbpPro.DataDictionaryManagement.Domain/DataDictionaryManagementDomainModule.cs
  72. 1
      aspnet-core/modules/DataDictionaryManagement/src/Lion.AbpPro.DataDictionaryManagement.Domain/GlobalUsings.cs
  73. 3
      aspnet-core/modules/DataDictionaryManagement/src/Lion.AbpPro.DataDictionaryManagement.Domain/Lion.AbpPro.DataDictionaryManagement.Domain.csproj
  74. 2
      aspnet-core/modules/DataDictionaryManagement/src/Lion.AbpPro.DataDictionaryManagement.EntityFrameworkCore/Lion.AbpPro.DataDictionaryManagement.EntityFrameworkCore.csproj
  75. 2
      aspnet-core/modules/DataDictionaryManagement/src/Lion.AbpPro.DataDictionaryManagement.HttpApi.Client/Lion.AbpPro.DataDictionaryManagement.HttpApi.Client.csproj
  76. 6
      aspnet-core/modules/DataDictionaryManagement/src/Lion.AbpPro.DataDictionaryManagement.HttpApi/DataDictionaries/DataDictionaryController.cs
  77. 3
      aspnet-core/modules/DataDictionaryManagement/src/Lion.AbpPro.DataDictionaryManagement.HttpApi/GlobalUsings.cs
  78. 2
      aspnet-core/modules/DataDictionaryManagement/src/Lion.AbpPro.DataDictionaryManagement.HttpApi/Lion.AbpPro.DataDictionaryManagement.HttpApi.csproj
  79. 2
      aspnet-core/modules/DataDictionaryManagement/test/Lion.AbpPro.DataDictionaryManagement.Application.Tests/Lion.AbpPro.DataDictionaryManagement.Application.Tests.csproj
  80. 7
      aspnet-core/modules/DataDictionaryManagement/test/Lion.AbpPro.DataDictionaryManagement.Domain.Tests/DataDictionaryManagementDomainTestModule.cs
  81. 1
      aspnet-core/modules/DataDictionaryManagement/test/Lion.AbpPro.DataDictionaryManagement.Domain.Tests/GlobalUsings.cs
  82. 2
      aspnet-core/modules/DataDictionaryManagement/test/Lion.AbpPro.DataDictionaryManagement.Domain.Tests/Lion.AbpPro.DataDictionaryManagement.Domain.Tests.csproj
  83. 2
      aspnet-core/modules/DataDictionaryManagement/test/Lion.AbpPro.DataDictionaryManagement.EntityFrameworkCore.Tests/Lion.AbpPro.DataDictionaryManagement.EntityFrameworkCore.Tests.csproj
  84. 2
      aspnet-core/modules/DataDictionaryManagement/test/Lion.AbpPro.DataDictionaryManagement.TestBase/Lion.AbpPro.DataDictionaryManagement.TestBase.csproj
  85. 167
      aspnet-core/modules/FileManagement/host/Lion.AbpPro.FileManagement.HttpApi.Host/FileManagementHttpApiHostModule.cs
  86. 1
      aspnet-core/modules/FileManagement/host/Lion.AbpPro.FileManagement.HttpApi.Host/GlobalUsings.cs
  87. 3
      aspnet-core/modules/FileManagement/host/Lion.AbpPro.FileManagement.HttpApi.Host/Lion.AbpPro.FileManagement.HttpApi.Host.csproj
  88. 3
      aspnet-core/modules/FileManagement/src/Lion.AbpPro.FileManagement.Application.Contracts/Lion.AbpPro.FileManagement.Application.Contracts.csproj
  89. 11
      aspnet-core/modules/FileManagement/src/Lion.AbpPro.FileManagement.Application/FileManagementApplicationAutoMapperProfile.cs
  90. 8
      aspnet-core/modules/FileManagement/src/Lion.AbpPro.FileManagement.Application/FileManagementApplicationModule.cs
  91. 4
      aspnet-core/modules/FileManagement/src/Lion.AbpPro.FileManagement.Application/Files/FileAppService.cs
  92. 2
      aspnet-core/modules/FileManagement/src/Lion.AbpPro.FileManagement.Application/GlobalUsings.cs
  93. 4
      aspnet-core/modules/FileManagement/src/Lion.AbpPro.FileManagement.Application/Lion.AbpPro.FileManagement.Application.csproj
  94. 2
      aspnet-core/modules/FileManagement/src/Lion.AbpPro.FileManagement.Domain.Shared/Lion.AbpPro.FileManagement.Domain.Shared.csproj
  95. 13
      aspnet-core/modules/FileManagement/src/Lion.AbpPro.FileManagement.Domain/FileManagementDomainAutoMapperProfile.cs
  96. 7
      aspnet-core/modules/FileManagement/src/Lion.AbpPro.FileManagement.Domain/FileManagementDomainModule.cs
  97. 13
      aspnet-core/modules/FileManagement/src/Lion.AbpPro.FileManagement.Domain/Files/FileObjectManager.cs
  98. 3
      aspnet-core/modules/FileManagement/src/Lion.AbpPro.FileManagement.Domain/Lion.AbpPro.FileManagement.Domain.csproj
  99. 2
      aspnet-core/modules/FileManagement/src/Lion.AbpPro.FileManagement.EntityFrameworkCore/Lion.AbpPro.FileManagement.EntityFrameworkCore.csproj
  100. 3
      aspnet-core/modules/FileManagement/src/Lion.AbpPro.FileManagement.HttpApi.Client/Lion.AbpPro.FileManagement.HttpApi.Client.csproj

30
aspnet-core/Directory.Build.Microsoft.targets

@ -1,21 +1,21 @@
<Project> <Project>
<ItemGroup> <ItemGroup>
<PackageReference Update="Microsoft.Extensions.DependencyModel" Version="9.0.5"/> <PackageReference Update="Microsoft.Extensions.DependencyModel" Version="10.0.0"/>
<PackageReference Update="Microsoft.Extensions.Diagnostics.HealthChecks" Version="9.0.5"/> <PackageReference Update="Microsoft.Extensions.Diagnostics.HealthChecks" Version="10.0.0"/>
<PackageReference Update="Microsoft.AspNetCore.Authentication.JwtBearer" Version="9.0.5"/> <PackageReference Update="Microsoft.AspNetCore.Authentication.JwtBearer" Version="10.0.0"/>
<PackageReference Update="Microsoft.EntityFrameworkCore.Tools" Version="9.0.5"/> <PackageReference Update="Microsoft.EntityFrameworkCore.Tools" Version="10.0.0"/>
<PackageReference Update="Microsoft.EntityFrameworkCore.Relational" Version="9.0.5" /> <PackageReference Update="Microsoft.EntityFrameworkCore.Relational" Version="10.0.0" />
<PackageReference Update="Microsoft.AspNetCore.DataProtection.StackExchangeRedis" Version="9.0.5"/> <PackageReference Update="Microsoft.AspNetCore.DataProtection.StackExchangeRedis" Version="10.0.0"/>
<PackageReference Update="Microsoft.EntityFrameworkCore.Proxies" Version="9.0.5"/> <PackageReference Update="Microsoft.EntityFrameworkCore.Proxies" Version="10.0.0"/>
<PackageReference Update="Microsoft.AspNetCore.SignalR.StackExchangeRedis" Version="9.0.5"/> <PackageReference Update="Microsoft.AspNetCore.SignalR.StackExchangeRedis" Version="10.0.0"/>
<PackageReference Update="Microsoft.Extensions.Caching.StackExchangeRedis" Version="9.0.5"/> <PackageReference Update="Microsoft.Extensions.Caching.StackExchangeRedis" Version="10.0.0"/>
<PackageReference Update="Microsoft.Extensions.Http.Polly" Version="9.0.5"/> <PackageReference Update="Microsoft.Extensions.Http.Polly" Version="10.0.0"/>
<PackageReference Update="Microsoft.EntityFrameworkCore.Abstractions" Version="9.0.5"/> <PackageReference Update="Microsoft.EntityFrameworkCore.Abstractions" Version="10.0.0"/>
<PackageReference Update="Microsoft.Extensions.FileProviders.Embedded" Version="9.0.5"/> <PackageReference Update="Microsoft.Extensions.FileProviders.Embedded" Version="10.0.0"/>
<PackageReference Update="Microsoft.Extensions.Hosting" Version="9.0.5" /> <PackageReference Update="Microsoft.Extensions.Hosting" Version="10.0.0" />
<PackageReference Update="Microsoft.Extensions.DependencyInjection" Version="9.0.5" /> <PackageReference Update="Microsoft.Extensions.DependencyInjection" Version="10.0.0" />
<PackageReference Update="Microsoft.Extensions.Http" Version="9.0.5"/> <PackageReference Update="Microsoft.Extensions.Http" Version="10.0.0"/>
<PackageReference Update="Microsoft.AspNetCore.Mvc.Core" Version="2.2.0"/> <PackageReference Update="Microsoft.AspNetCore.Mvc.Core" Version="2.2.0"/>
<PackageReference Update="Microsoft.AspNetCore.Http.Abstractions" Version="2.2.0"/> <PackageReference Update="Microsoft.AspNetCore.Http.Abstractions" Version="2.2.0"/>

190
aspnet-core/Directory.Build.Volo.targets

@ -1,99 +1,99 @@
<Project> <Project>
<ItemGroup> <ItemGroup>
<PackageReference Update="Volo.Abp.Autofac" Version="9.3.4"/> <PackageReference Update="Volo.Abp.Autofac" Version="10.0.1"/>
<PackageReference Update="Lion.AbpPro.Localization" Version="9.3.4"/> <PackageReference Update="Lion.AbpPro.Localization" Version="10.0.1"/>
<PackageReference Update="Volo.Abp.Threading" Version="9.3.4"/> <PackageReference Update="Volo.Abp.Threading" Version="10.0.1"/>
<PackageReference Update="Volo.Abp.Json" Version="9.3.4"/> <PackageReference Update="Volo.Abp.Json" Version="10.0.1"/>
<PackageReference Update="Volo.Abp.Json.Abstractions" Version="9.3.4"/> <PackageReference Update="Volo.Abp.Json.Abstractions" Version="10.0.1"/>
<PackageReference Update="Volo.Abp.Validation" Version="9.3.4"/> <PackageReference Update="Volo.Abp.Validation" Version="10.0.1"/>
<PackageReference Update="Volo.Abp.Ddd.Domain" Version="9.3.4"/> <PackageReference Update="Volo.Abp.Ddd.Domain" Version="10.0.1"/>
<PackageReference Update="Volo.Abp.AutoMapper" Version="9.3.4"/> <PackageReference Update="Volo.Abp.Settings" Version="10.0.1"/>
<PackageReference Update="Volo.Abp.Settings" Version="9.3.4"/> <PackageReference Update="Volo.Abp.ObjectMapping" Version="10.0.1"/>
<PackageReference Update="Volo.Abp.ObjectMapping" Version="9.3.4"/> <PackageReference Update="Volo.Abp.Identity.AspNetCore" Version="10.0.1"/>
<PackageReference Update="Volo.Abp.Identity.AspNetCore" Version="9.3.4"/> <PackageReference Update="Volo.Abp.Caching" Version="10.0.1"/>
<PackageReference Update="Volo.Abp.Caching" Version="9.3.4"/> <PackageReference Update="Volo.Abp.BlobStoring.Aliyun" Version="10.0.1"/>
<PackageReference Update="Volo.Abp.BlobStoring.Aliyun" Version="9.3.4"/> <PackageReference Update="Volo.Abp.BlobStoring" Version="10.0.1"/>
<PackageReference Update="Volo.Abp.BlobStoring" Version="9.3.4"/> <PackageReference Update="Volo.Abp.BlobStoring.FileSystem" Version="10.0.1"/>
<PackageReference Update="Volo.Abp.BlobStoring.FileSystem" Version="9.3.4"/> <PackageReference Update="Volo.Abp.BackgroundJobs" Version="10.0.1"/>
<PackageReference Update="Volo.Abp.BackgroundJobs" Version="9.3.4"/> <PackageReference Update="Volo.Abp.Authorization.Abstractions" Version="10.0.1"/>
<PackageReference Update="Volo.Abp.Authorization.Abstractions" Version="9.3.4"/> <PackageReference Update="Volo.Abp.BackgroundJobs.HangFire" Version="10.0.1"/>
<PackageReference Update="Volo.Abp.BackgroundJobs.HangFire" Version="9.3.4"/> <PackageReference Update="Volo.Abp.AspNetCore.SignalR" Version="10.0.1"/>
<PackageReference Update="Volo.Abp.AspNetCore.SignalR" Version="9.3.4"/> <PackageReference Update="Volo.Abp.TestBase" Version="10.0.1"/>
<PackageReference Update="Volo.Abp.TestBase" Version="9.3.4"/> <PackageReference Update="Volo.Abp.EntityFrameworkCore.MySQL" Version="10.0.1"/>
<PackageReference Update="Volo.Abp.EntityFrameworkCore.MySQL" Version="9.3.4"/> <PackageReference Update="Volo.Abp.EntityFrameworkCore.MySQL.Pomelo" Version="10.0.1"/>
<PackageReference Update="Volo.Abp.PermissionManagement.EntityFrameworkCore" Version="9.3.4"/> <PackageReference Update="Volo.Abp.PermissionManagement.EntityFrameworkCore" Version="10.0.1"/>
<PackageReference Update="Volo.Abp.SettingManagement.EntityFrameworkCore" Version="9.3.4"/> <PackageReference Update="Volo.Abp.SettingManagement.EntityFrameworkCore" Version="10.0.1"/>
<PackageReference Update="Volo.Abp.Identity.EntityFrameworkCore" Version="9.3.4"/> <PackageReference Update="Volo.Abp.Identity.EntityFrameworkCore" Version="10.0.1"/>
<PackageReference Update="Volo.Abp.BackgroundJobs.EntityFrameworkCore" Version="9.3.4"/> <PackageReference Update="Volo.Abp.BackgroundJobs.EntityFrameworkCore" Version="10.0.1"/>
<PackageReference Update="Volo.Abp.AuditLogging.EntityFrameworkCore" Version="9.3.4"/> <PackageReference Update="Volo.Abp.AuditLogging.EntityFrameworkCore" Version="10.0.1"/>
<PackageReference Update="Volo.Abp.TenantManagement.EntityFrameworkCore" Version="9.3.4"/> <PackageReference Update="Volo.Abp.TenantManagement.EntityFrameworkCore" Version="10.0.1"/>
<PackageReference Update="Volo.Abp.FeatureManagement.EntityFrameworkCore" Version="9.3.4"/> <PackageReference Update="Volo.Abp.FeatureManagement.EntityFrameworkCore" Version="10.0.1"/>
<PackageReference Update="Volo.Abp.AspNetCore.Authentication.JwtBearer" Version="9.3.4"/> <PackageReference Update="Volo.Abp.AspNetCore.Authentication.JwtBearer" Version="10.0.1"/>
<PackageReference Update="Volo.Abp.AspNetCore.Mvc.Contracts" Version="9.3.4"/> <PackageReference Update="Volo.Abp.AspNetCore.Mvc.Contracts" Version="10.0.1"/>
<PackageReference Update="Volo.Abp.Account.Web" Version="9.3.4"/> <PackageReference Update="Volo.Abp.Account.Web" Version="10.0.1"/>
<PackageReference Update="Volo.Abp.Caching.StackExchangeRedis" Version="9.3.4"/> <PackageReference Update="Volo.Abp.Caching.StackExchangeRedis" Version="10.0.1"/>
<PackageReference Update="Volo.Abp.AspNetCore.Mvc.UI.MultiTenancy" Version="9.3.4"/> <PackageReference Update="Volo.Abp.AspNetCore.Mvc.UI.MultiTenancy" Version="10.0.1"/>
<PackageReference Update="Volo.Abp.EntityFrameworkCore.PostgreSql" Version="9.3.4"/> <PackageReference Update="Volo.Abp.EntityFrameworkCore.PostgreSql" Version="10.0.1"/>
<PackageReference Update="Volo.Abp.AspNetCore.Serilog" Version="9.3.4"/> <PackageReference Update="Volo.Abp.AspNetCore.Serilog" Version="10.0.1"/>
<PackageReference Update="Volo.Abp.Swashbuckle" Version="9.3.4"/> <PackageReference Update="Volo.Abp.Swashbuckle" Version="10.0.1"/>
<PackageReference Update="Volo.Abp.Ddd.Application" Version="9.3.4"/> <PackageReference Update="Volo.Abp.Ddd.Application" Version="10.0.1"/>
<PackageReference Update="Volo.Abp.Ddd.Application.Contracts" Version="9.3.4"/> <PackageReference Update="Volo.Abp.Ddd.Application.Contracts" Version="10.0.1"/>
<PackageReference Update="Volo.Abp.Authorization" Version="9.3.4"/> <PackageReference Update="Volo.Abp.Authorization" Version="10.0.1"/>
<PackageReference Update="Volo.Abp.Dapper" Version="9.3.4"/> <PackageReference Update="Volo.Abp.Dapper" Version="10.0.1"/>
<PackageReference Update="Volo.Abp.AspNetCore.Mvc" Version="9.3.4"/> <PackageReference Update="Volo.Abp.AspNetCore.Mvc" Version="10.0.1"/>
<PackageReference Update="Volo.Abp.Http.Client" Version="9.3.4"/> <PackageReference Update="Volo.Abp.Http.Client" Version="10.0.1"/>
<PackageReference Update="Volo.Abp.MongoDB" Version="9.3.4"/> <PackageReference Update="Volo.Abp.MongoDB" Version="10.0.1"/>
<PackageReference Update="Volo.Abp.EntityFrameworkCore.Sqlite" Version="9.3.4"/> <PackageReference Update="Volo.Abp.EntityFrameworkCore.Sqlite" Version="10.0.1"/>
<PackageReference Update="Volo.Abp.Http.Client.IdentityModel" Version="9.3.4"/> <PackageReference Update="Volo.Abp.Http.Client.IdentityModel" Version="10.0.1"/>
<PackageReference Update="Volo.Abp.AspNetCore.MultiTenancy" Version="9.3.4"/> <PackageReference Update="Volo.Abp.AspNetCore.MultiTenancy" Version="10.0.1"/>
<PackageReference Update="Volo.Abp.Account.Application" Version="9.3.4"/> <PackageReference Update="Volo.Abp.Account.Application" Version="10.0.1"/>
<PackageReference Update="Volo.Abp.Identity.Application" Version="9.3.4"/> <PackageReference Update="Volo.Abp.Identity.Application" Version="10.0.1"/>
<PackageReference Update="Volo.Abp.PermissionManagement.Application" Version="9.3.4"/> <PackageReference Update="Volo.Abp.PermissionManagement.Application" Version="10.0.1"/>
<PackageReference Update="Volo.Abp.TenantManagement.Application" Version="9.3.4"/> <PackageReference Update="Volo.Abp.TenantManagement.Application" Version="10.0.1"/>
<PackageReference Update="Volo.Abp.FeatureManagement.Application" Version="9.3.4"/> <PackageReference Update="Volo.Abp.FeatureManagement.Application" Version="10.0.1"/>
<PackageReference Update="Volo.Abp.SettingManagement.Application" Version="9.3.4"/> <PackageReference Update="Volo.Abp.SettingManagement.Application" Version="10.0.1"/>
<PackageReference Update="Volo.Abp.ObjectExtending" Version="9.3.4"/> <PackageReference Update="Volo.Abp.ObjectExtending" Version="10.0.1"/>
<PackageReference Update="Volo.Abp.Account.Application.Contracts" Version="9.3.4"/> <PackageReference Update="Volo.Abp.Account.Application.Contracts" Version="10.0.1"/>
<PackageReference Update="Volo.Abp.Identity.Application.Contracts" Version="9.3.4"/> <PackageReference Update="Volo.Abp.Identity.Application.Contracts" Version="10.0.1"/>
<PackageReference Update="Volo.Abp.PermissionManagement.Application.Contracts" Version="9.3.4"/> <PackageReference Update="Volo.Abp.PermissionManagement.Application.Contracts" Version="10.0.1"/>
<PackageReference Update="Volo.Abp.TenantManagement.Application.Contracts" Version="9.3.4"/> <PackageReference Update="Volo.Abp.TenantManagement.Application.Contracts" Version="10.0.1"/>
<PackageReference Update="Volo.Abp.FeatureManagement.Application.Contracts" Version="9.3.4"/> <PackageReference Update="Volo.Abp.FeatureManagement.Application.Contracts" Version="10.0.1"/>
<PackageReference Update="Volo.Abp.SettingManagement.Application.Contracts" Version="9.3.4"/> <PackageReference Update="Volo.Abp.SettingManagement.Application.Contracts" Version="10.0.1"/>
<PackageReference Update="Volo.Abp.Emailing" Version="9.3.4"/> <PackageReference Update="Volo.Abp.Emailing" Version="10.0.1"/>
<PackageReference Update="Volo.Abp.PermissionManagement.Domain.Identity" Version="9.3.4"/> <PackageReference Update="Volo.Abp.PermissionManagement.Domain.Identity" Version="10.0.1"/>
<PackageReference Update="Volo.Abp.BackgroundJobs.Domain" Version="9.3.4"/> <PackageReference Update="Volo.Abp.BackgroundJobs.Domain" Version="10.0.1"/>
<PackageReference Update="Volo.Abp.AuditLogging.Domain" Version="9.3.4"/> <PackageReference Update="Volo.Abp.AuditLogging.Domain" Version="10.0.1"/>
<PackageReference Update="Volo.Abp.TenantManagement.Domain" Version="9.3.4"/> <PackageReference Update="Volo.Abp.TenantManagement.Domain" Version="10.0.1"/>
<PackageReference Update="Volo.Abp.FeatureManagement.Domain" Version="9.3.4"/> <PackageReference Update="Volo.Abp.FeatureManagement.Domain" Version="10.0.1"/>
<PackageReference Update="Volo.Abp.SettingManagement.Domain" Version="9.3.4"/> <PackageReference Update="Volo.Abp.SettingManagement.Domain" Version="10.0.1"/>
<PackageReference Update="Volo.Abp.Identity.Domain" Version="9.3.4"/> <PackageReference Update="Volo.Abp.Identity.Domain" Version="10.0.1"/>
<PackageReference Update="Volo.Abp.Identity.Domain.Shared" Version="9.3.4"/> <PackageReference Update="Volo.Abp.Identity.Domain.Shared" Version="10.0.1"/>
<PackageReference Update="Volo.Abp.BackgroundJobs.Domain.Shared" Version="9.3.4"/> <PackageReference Update="Volo.Abp.BackgroundJobs.Domain.Shared" Version="10.0.1"/>
<PackageReference Update="Volo.Abp.AuditLogging.Domain.Shared" Version="9.3.4"/> <PackageReference Update="Volo.Abp.AuditLogging.Domain.Shared" Version="10.0.1"/>
<PackageReference Update="Volo.Abp.TenantManagement.Domain.Shared" Version="9.3.4"/> <PackageReference Update="Volo.Abp.TenantManagement.Domain.Shared" Version="10.0.1"/>
<PackageReference Update="Volo.Abp.FeatureManagement.Domain.Shared" Version="9.3.4"/> <PackageReference Update="Volo.Abp.FeatureManagement.Domain.Shared" Version="10.0.1"/>
<PackageReference Update="Volo.Abp.PermissionManagement.Domain.Shared" Version="9.3.4"/> <PackageReference Update="Volo.Abp.PermissionManagement.Domain.Shared" Version="10.0.1"/>
<PackageReference Update="Volo.Abp.SettingManagement.Domain.Shared" Version="9.3.4"/> <PackageReference Update="Volo.Abp.SettingManagement.Domain.Shared" Version="10.0.1"/>
<PackageReference Update="Volo.Abp.Account.HttpApi" Version="9.3.4"/> <PackageReference Update="Volo.Abp.Account.HttpApi" Version="10.0.1"/>
<PackageReference Update="Volo.Abp.Identity.HttpApi" Version="9.3.4"/> <PackageReference Update="Volo.Abp.Identity.HttpApi" Version="10.0.1"/>
<PackageReference Update="Volo.Abp.PermissionManagement.HttpApi" Version="9.3.4"/> <PackageReference Update="Volo.Abp.PermissionManagement.HttpApi" Version="10.0.1"/>
<PackageReference Update="Volo.Abp.TenantManagement.HttpApi" Version="9.3.4"/> <PackageReference Update="Volo.Abp.TenantManagement.HttpApi" Version="10.0.1"/>
<PackageReference Update="Volo.Abp.FeatureManagement.HttpApi" Version="9.3.4"/> <PackageReference Update="Volo.Abp.FeatureManagement.HttpApi" Version="10.0.1"/>
<PackageReference Update="Volo.Abp.SettingManagement.HttpApi" Version="9.3.4"/> <PackageReference Update="Volo.Abp.SettingManagement.HttpApi" Version="10.0.1"/>
<PackageReference Update="Volo.Abp.Account.HttpApi.Client" Version="9.3.4"/> <PackageReference Update="Volo.Abp.Account.HttpApi.Client" Version="10.0.1"/>
<PackageReference Update="Volo.Abp.Identity.HttpApi.Client" Version="9.3.4"/> <PackageReference Update="Volo.Abp.Identity.HttpApi.Client" Version="10.0.1"/>
<PackageReference Update="Volo.Abp.PermissionManagement.HttpApi.Client" Version="9.3.4"/> <PackageReference Update="Volo.Abp.PermissionManagement.HttpApi.Client" Version="10.0.1"/>
<PackageReference Update="Volo.Abp.TenantManagement.HttpApi.Client" Version="9.3.4"/> <PackageReference Update="Volo.Abp.TenantManagement.HttpApi.Client" Version="10.0.1"/>
<PackageReference Update="Volo.Abp.FeatureManagement.HttpApi.Client" Version="9.3.4"/> <PackageReference Update="Volo.Abp.FeatureManagement.HttpApi.Client" Version="10.0.1"/>
<PackageReference Update="Volo.Abp.SettingManagement.HttpApi.Client" Version="9.3.4"/> <PackageReference Update="Volo.Abp.SettingManagement.HttpApi.Client" Version="10.0.1"/>
<PackageReference Update="Volo.Abp" Version="9.3.4"/> <PackageReference Update="Volo.Abp" Version="10.0.1"/>
<PackageReference Update="Volo.Abp.AspNetCore" Version="9.3.4"/> <PackageReference Update="Volo.Abp.AspNetCore" Version="10.0.1"/>
<PackageReference Update="Volo.Abp.Core" Version="9.3.4"/> <PackageReference Update="Volo.Abp.Core" Version="10.0.1"/>
<PackageReference Update="Volo.Abp.EntityFrameworkCore" Version="9.3.4"/> <PackageReference Update="Volo.Abp.EntityFrameworkCore" Version="10.0.1"/>
<PackageReference Update="Volo.Abp.AspNetCore.TestBase" Version="9.3.4"/> <PackageReference Update="Volo.Abp.AspNetCore.TestBase" Version="10.0.1"/>
<PackageReference Update="Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic" Version="9.3.4"/> <PackageReference Update="Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic" Version="10.0.1"/>
<PackageReference Update="Volo.Abp.EventBus" Version="9.3.4"/> <PackageReference Update="Volo.Abp.EventBus" Version="10.0.1"/>
<PackageReference Update="Volo.Abp.Localization" Version="9.3.4" /> <PackageReference Update="Volo.Abp.Localization" Version="10.0.1" />
<PackageReference Update="Volo.Abp.DistributedLocking" Version="9.3.4" /> <PackageReference Update="Volo.Abp.DistributedLocking" Version="10.0.1" />
</ItemGroup> </ItemGroup>
</Project> </Project>

48
aspnet-core/Directory.Build.targets

@ -7,7 +7,8 @@
<LangVersion>latest</LangVersion> <LangVersion>latest</LangVersion>
<Version>1.0.0</Version> <Version>1.0.0</Version>
<Description>Abp vNext Pro</Description> <Description>Abp vNext Pro</Description>
<NoWarn>$(NoWarn);CS1591;CS0436;NU1504</NoWarn> <NoWarn>$(NoWarnNuGet)$(NoWarn);CS1591;CS0436;</NoWarn>
<NoWarnNuGet>$(NoWarnNuGet);1902;NU1903</NoWarnNuGet>
<AbpProjectType>app</AbpProjectType> <AbpProjectType>app</AbpProjectType>
<ImplicitUsings>true</ImplicitUsings> <ImplicitUsings>true</ImplicitUsings>
<Authors>WangJunZzz</Authors> <Authors>WangJunZzz</Authors>
@ -28,9 +29,9 @@
<PackageReference Update="Ocelot.Provider.Polly" Version="24.0.0"/> <PackageReference Update="Ocelot.Provider.Polly" Version="24.0.0"/>
<!-- FreeSql--> <!-- FreeSql-->
<PackageReference Update="FreeSql" Version="3.5.209"/> <PackageReference Update="FreeSql" Version="3.5.304"/>
<PackageReference Update="FreeSql.Provider.MysqlConnector" Version="3.5.209"/> <PackageReference Update="FreeSql.Provider.MysqlConnector" Version="3.5.304"/>
<PackageReference Update="FreeSql.Provider.Sqlite" Version="3.5.209"/> <PackageReference Update="FreeSql.Provider.Sqlite" Version="3.5.304"/>
<!-- 单元测试包--> <!-- 单元测试包-->
<PackageReference Update="xunit" Version="2.9.3"/> <PackageReference Update="xunit" Version="2.9.3"/>
@ -46,17 +47,17 @@
<PackageReference Update="Hangfire.Redis.StackExchange" Version="1.12.0"/> <PackageReference Update="Hangfire.Redis.StackExchange" Version="1.12.0"/>
<!-- CAP 分布式事务--> <!-- CAP 分布式事务-->
<PackageReference Update="DotNetCore.CAP" Version="8.3.5"/> <PackageReference Update="DotNetCore.CAP" Version="10.0.0"/>
<PackageReference Update="DotNetCore.CAP.Dashboard" Version="8.3.5"/> <PackageReference Update="DotNetCore.CAP.Dashboard" Version="10.0.0"/>
<PackageReference Update="DotNetCore.CAP.Mysql" Version="8.3.5"/> <PackageReference Update="DotNetCore.CAP.Mysql" Version="10.0.0"/>
<PackageReference Update="DotNetCore.CAP.RabbitMQ" Version="8.3.5"/> <PackageReference Update="DotNetCore.CAP.RabbitMQ" Version="10.0.0"/>
<PackageReference Update="DotNetCore.CAP.InMemoryStorage" Version="8.3.5"/> <PackageReference Update="DotNetCore.CAP.InMemoryStorage" Version="10.0.0"/>
<PackageReference Update="Savorboard.CAP.InMemoryMessageQueue" Version="8.2.1"/> <PackageReference Update="Savorboard.CAP.InMemoryMessageQueue" Version="8.2.1"/>
<!-- Swagger--> <!-- Swagger
<PackageReference Update="Swashbuckle.AspNetCore.SwaggerUI" Version="9.0.0"/> <PackageReference Update="Swashbuckle.AspNetCore.SwaggerUI" Version="10.0.0"/> -->
<PackageReference Update="Swashbuckle.AspNetCore" Version="9.0.0"/> <PackageReference Update="Swashbuckle.AspNetCore" Version="9.0.4"/>
<PackageReference Update="Swashbuckle.AspNetCore.Annotations" Version="9.0.0"/> <PackageReference Update="Swashbuckle.AspNetCore.Annotations" Version="9.0.4"/>
<!-- Serilog 日志--> <!-- Serilog 日志-->
<PackageReference Update="Serilog" Version="4.3.0"/> <PackageReference Update="Serilog" Version="4.3.0"/>
@ -81,13 +82,13 @@
<PackageReference Update="MiniProfiler.Shared" Version="4.5.4"/> <PackageReference Update="MiniProfiler.Shared" Version="4.5.4"/>
<!-- Polly 重试机制--> <!-- Polly 重试机制-->
<PackageReference Update="Polly" Version="8.6.1"/> <PackageReference Update="Polly" Version="8.6.5"/>
<!-- Octokit 邮件--> <!-- Octokit 邮件-->
<PackageReference Update="Octokit" Version="9.0.0"/> <PackageReference Update="Octokit" Version="14.0.0"/>
<!-- Humanizer 中文格式包--> <!-- Humanizer 中文格式包-->
<PackageReference Update="Humanizer.Core.zh-Hans" Version="2.14.1"/> <PackageReference Update="Humanizer.Core.zh-Hans" Version="3.0.1"/>
<!-- NEST ElasticSearch--> <!-- NEST ElasticSearch-->
<PackageReference Update="NEST" Version="7.17.5"/> <PackageReference Update="NEST" Version="7.17.5"/>
@ -95,8 +96,21 @@
<PackageReference Update="WebApiClientCore" Version="2.1.5" /> <PackageReference Update="WebApiClientCore" Version="2.1.5" />
<!-- redis分布式锁--> <!-- redis分布式锁-->
<PackageReference Update="DistributedLock.Redis" Version="1.0.3" /> <PackageReference Update="DistributedLock.Redis" Version="1.1.1" />
<PackageReference Update="Scriban" Version="6.5.2" />
<PackageReference Update="Otp.NET" Version="1.4.0" />
<PackageReference Update="QRCoder" Version="1.6.0" />
<!-- 腾讯云oss-->
<PackageReference Update="Tencent.QCloud.Cos.Sdk" Version="5.4.49" />
<!-- FreeRedis-->
<PackageReference Update="FreeRedis" Version="1.5.2" />
<PackageReference Update="FreeRedis.DistributedCache" Version="1.5.2" />
<PackageReference Update="Mapster" Version="7.4.0" />
</ItemGroup> </ItemGroup>
</Project> </Project>

13
aspnet-core/frameworks/src/Lion.AbpPro.AspNetCore/Lion.AbpPro.AspNetCore.csproj

@ -1,7 +1,7 @@
<Project Sdk="Microsoft.NET.Sdk"> <Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup> <PropertyGroup>
<TargetFramework>net9.0</TargetFramework> <TargetFramework>net10.0</TargetFramework>
<RootNamespace /> <RootNamespace />
<PackageId>Lion.AbpPro.AspNetCore</PackageId> <PackageId>Lion.AbpPro.AspNetCore</PackageId>
</PropertyGroup> </PropertyGroup>
@ -15,7 +15,8 @@
<PackageReference Include="Volo.Abp.Swashbuckle" /> <PackageReference Include="Volo.Abp.Swashbuckle" />
<PackageReference Include="Volo.Abp.AspNetCore.MultiTenancy" /> <PackageReference Include="Volo.Abp.AspNetCore.MultiTenancy" />
<PackageReference Include="Volo.Abp.Caching.StackExchangeRedis" /> <PackageReference Include="Volo.Abp.Caching.StackExchangeRedis" />
<PackageReference Include="MiniProfiler.AspNetCore.Mvc" />
<PackageReference Include="MiniProfiler.EntityFrameworkCore" />
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
@ -36,13 +37,7 @@
<PackageReference Include="Serilog.Sinks.Async" /> <PackageReference Include="Serilog.Sinks.Async" />
</ItemGroup> </ItemGroup>
<ItemGroup>
<PackageReference Include="Swashbuckle.AspNetCore.SwaggerUI" />
<PackageReference Include="Swashbuckle.AspNetCore.Annotations" />
<PackageReference Include="Swashbuckle.AspNetCore" />
<PackageReference Include="MiniProfiler.AspNetCore.Mvc" />
<PackageReference Include="MiniProfiler.EntityFrameworkCore" />
</ItemGroup>
<ItemGroup> <ItemGroup>
<Content Remove="$(UserProfile)\.nuget\packages\*\*\contentFiles\any\*\*.abppkg*.json" /> <Content Remove="$(UserProfile)\.nuget\packages\*\*\contentFiles\any\*\*.abppkg*.json" />
</ItemGroup> </ItemGroup>

2
aspnet-core/frameworks/src/Lion.AbpPro.AspNetCore/Lion/AbpPro/AspNetCore/AbpProAspNetCoreModule.cs

@ -1,7 +1,9 @@
using Lion.AbpPro.AspNetCore.Options; using Lion.AbpPro.AspNetCore.Options;
using Volo.Abp.Swashbuckle;
namespace Lion.AbpPro.AspNetCore; namespace Lion.AbpPro.AspNetCore;
//[DependsOn(typeof(AbpSwashbuckleModule))]
public class AbpProAspNetCoreModule : AbpModule public class AbpProAspNetCoreModule : AbpModule
{ {
public override void PreConfigureServices(ServiceConfigurationContext context) public override void PreConfigureServices(ServiceConfigurationContext context)

8
aspnet-core/frameworks/src/Lion.AbpPro.AspNetCore/Microsoft/Extensions/DependencyInjection/ServiceCollectionExtensions.cs

@ -4,7 +4,7 @@ using Lion.AbpPro.AspNetCore.Options;
using Microsoft.AspNetCore.Authentication.JwtBearer; using Microsoft.AspNetCore.Authentication.JwtBearer;
using Microsoft.AspNetCore.Mvc.Filters; using Microsoft.AspNetCore.Mvc.Filters;
using Microsoft.IdentityModel.Tokens; using Microsoft.IdentityModel.Tokens;
using Swagger;
using Volo.Abp.AspNetCore.Auditing; using Volo.Abp.AspNetCore.Auditing;
using Volo.Abp.AspNetCore.MultiTenancy; using Volo.Abp.AspNetCore.MultiTenancy;
using Volo.Abp.AspNetCore.Mvc.AntiForgery; using Volo.Abp.AspNetCore.Mvc.AntiForgery;
@ -160,9 +160,9 @@ public static class ServiceCollectionExtensions
options.MapType<FileContentResult>(() => new OpenApiSchema() { Type = "file" }); options.MapType<FileContentResult>(() => new OpenApiSchema() { Type = "file" });
options.SwaggerDoc(name, new OpenApiInfo { Title = name, Version = version }); options.SwaggerDoc(name, new OpenApiInfo { Title = name, Version = version });
options.DocInclusionPredicate((docName, description) => true); options.DocInclusionPredicate((docName, description) => true);
options.EnableAnnotations(); // 启用注解 //options.EnableAnnotations(); // 启用注解
options.DocumentFilter<HiddenAbpDefaultApiFilter>(); //options.DocumentFilter<HiddenAbpDefaultApiFilter>();
options.SchemaFilter<EnumSchemaFilter>(); //options.SchemaFilter<EnumSchemaFilter>();
// 加载所有xml注释,这里会导致swagger加载有点缓慢 // 加载所有xml注释,这里会导致swagger加载有点缓慢
var xmlPaths = Directory.GetFiles(AppContext.BaseDirectory, "*.xml"); var xmlPaths = Directory.GetFiles(AppContext.BaseDirectory, "*.xml");
foreach (var xml in xmlPaths) foreach (var xml in xmlPaths)

52
aspnet-core/frameworks/src/Lion.AbpPro.AspNetCore/Swagger/CachingSwaggerProvider.cs

@ -1,26 +1,26 @@
namespace Swagger; // namespace Swagger;
//
/// <summary> // /// <summary>
/// swagger注释加载慢,把文档添加到缓存 // /// swagger注释加载慢,把文档添加到缓存
/// </summary> // /// </summary>
[Dependency(ReplaceServices = true)] // [Dependency(ReplaceServices = true)]
[ExposeServices(typeof(ISwaggerProvider))] // [ExposeServices(typeof(ISwaggerProvider))]
public class CachingSwaggerProvider : ISwaggerProvider, ITransientDependency // public class CachingSwaggerProvider : ISwaggerProvider, ITransientDependency
{ // {
private static readonly ConcurrentDictionary<string, OpenApiDocument> _cache = new ConcurrentDictionary<string, OpenApiDocument>(); // private static readonly ConcurrentDictionary<string, OpenApiDocument> _cache = new ConcurrentDictionary<string, OpenApiDocument>();
//
private readonly SwaggerGenerator _swaggerGenerator; // private readonly SwaggerGenerator _swaggerGenerator;
//
public CachingSwaggerProvider( // public CachingSwaggerProvider(
IOptions<SwaggerGeneratorOptions> optionsAccessor, // IOptions<SwaggerGeneratorOptions> optionsAccessor,
IApiDescriptionGroupCollectionProvider apiDescriptionsProvider, // IApiDescriptionGroupCollectionProvider apiDescriptionsProvider,
ISchemaGenerator schemaGenerator) // ISchemaGenerator schemaGenerator)
{ // {
_swaggerGenerator = new SwaggerGenerator(optionsAccessor.Value, apiDescriptionsProvider, schemaGenerator); // _swaggerGenerator = new SwaggerGenerator(optionsAccessor.Value, apiDescriptionsProvider, schemaGenerator);
} // }
//
public OpenApiDocument GetSwagger(string documentName, string host = null, string basePath = null) // public OpenApiDocument GetSwagger(string documentName, string host = null, string basePath = null)
{ // {
return _cache.GetOrAdd(documentName, (_) => _swaggerGenerator.GetSwagger(documentName, host, basePath)); // return _cache.GetOrAdd(documentName, (_) => _swaggerGenerator.GetSwagger(documentName, host, basePath));
} // }
} // }

42
aspnet-core/frameworks/src/Lion.AbpPro.AspNetCore/Swagger/EnumSchemaFilter.cs

@ -1,21 +1,21 @@
namespace Swagger; // namespace Swagger;
//
/// <summary> // /// <summary>
/// swagger 枚举映射, // /// swagger 枚举映射,
/// 原因:前端代理生成枚举是数字 // /// 原因:前端代理生成枚举是数字
/// </summary> // /// </summary>
public class EnumSchemaFilter : ISchemaFilter // public class EnumSchemaFilter : ISchemaFilter
{ // {
public void Apply(OpenApiSchema schema, SchemaFilterContext context) // public void Apply(OpenApiSchema schema, SchemaFilterContext context)
{ // {
if (context.Type.IsEnum) // if (context.Type.IsEnum)
{ // {
var array = new OpenApiArray(); // var array = new OpenApiArray();
array.AddRange(Enum.GetNames(context.Type).Select(n => new OpenApiString(n))); // array.AddRange(Enum.GetNames(context.Type).Select(n => new OpenApiString(n)));
// NSwag // // NSwag
schema.Extensions.Add("x-enumNames", array); // schema.Extensions.Add("x-enumNames", array);
// Openapi-generator // // Openapi-generator
schema.Extensions.Add("x-enum-varnames", array); // schema.Extensions.Add("x-enum-varnames", array);
} // }
} // }
} // }

96
aspnet-core/frameworks/src/Lion.AbpPro.AspNetCore/Swagger/HiddenAbpDefaultApiFilter.cs

@ -1,48 +1,48 @@
namespace Swagger; // namespace Swagger;
//
/// <summary> // /// <summary>
/// 在使用nswag的时候,原生默认的api导致生产的代理类存在问题 // /// 在使用nswag的时候,原生默认的api导致生产的代理类存在问题
/// 所有隐藏原生的api,重写路由 // /// 所有隐藏原生的api,重写路由
/// </summary> // /// </summary>
public class HiddenAbpDefaultApiFilter : IDocumentFilter // public class HiddenAbpDefaultApiFilter : IDocumentFilter
{ // {
public void Apply(OpenApiDocument swaggerDoc, DocumentFilterContext context) // public void Apply(OpenApiDocument swaggerDoc, DocumentFilterContext context)
{ // {
foreach (ApiDescription apiDescription in context.ApiDescriptions) // foreach (ApiDescription apiDescription in context.ApiDescriptions)
{ // {
if (apiDescription.TryGetMethodInfo(out MethodInfo method)) // if (apiDescription.TryGetMethodInfo(out MethodInfo method))
{ // {
string key = "/" + apiDescription.RelativePath; // string key = "/" + apiDescription.RelativePath;
var reuslt = IsHidden(key); // var reuslt = IsHidden(key);
if (reuslt) swaggerDoc.Paths.Remove(key); // if (reuslt) swaggerDoc.Paths.Remove(key);
} // }
} // }
} // }
//
private bool IsHidden(string key) // private bool IsHidden(string key)
{ // {
var list = GetHiddenAbpDefaultApiList(); // var list = GetHiddenAbpDefaultApiList();
foreach (var item in list) // foreach (var item in list)
{ // {
if (key.Contains(item)) return true; // if (key.Contains(item)) return true;
} // }
//
return false; // return false;
} // }
//
private List<string> GetHiddenAbpDefaultApiList() // private List<string> GetHiddenAbpDefaultApiList()
{ // {
return new List<string>() { // return new List<string>() {
"/api/abp/multi-tenancy/tenants", // "/api/abp/multi-tenancy/tenants",
"/api/account", // "/api/account",
"/api/feature-management/features", // "/api/feature-management/features",
"/api/permission-management/permissions", // "/api/permission-management/permissions",
"/api/identity/my-profile", // "/api/identity/my-profile",
"/api/identity", // "/api/identity",
"/api/multi-tenancy/tenants", // "/api/multi-tenancy/tenants",
"/api/setting-management/emailing", // "/api/setting-management/emailing",
"/configuration", // "/configuration",
"/outputcache" // "/outputcache"
}; // };
} // }
} // }

2
aspnet-core/frameworks/src/Lion.AbpPro.CAP.EntityFrameworkCore/Lion.AbpPro.CAP.EntityFrameworkCore.csproj

@ -1,7 +1,7 @@
<Project Sdk="Microsoft.NET.Sdk"> <Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup> <PropertyGroup>
<TargetFramework>net9.0</TargetFramework> <TargetFramework>net10.0</TargetFramework>
<ImplicitUsings>enable</ImplicitUsings> <ImplicitUsings>enable</ImplicitUsings>
<RootNamespace /> <RootNamespace />
<AssemblyName>Lion.AbpPro.CAP.EntityFrameworkCore</AssemblyName> <AssemblyName>Lion.AbpPro.CAP.EntityFrameworkCore</AssemblyName>

2
aspnet-core/frameworks/src/Lion.AbpPro.CAP/Lion.AbpPro.CAP.csproj

@ -1,7 +1,7 @@
<Project Sdk="Microsoft.NET.Sdk"> <Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup> <PropertyGroup>
<TargetFramework>net9.0</TargetFramework> <TargetFramework>net10.0</TargetFramework>
<RootNamespace /> <RootNamespace />
<AssemblyName>Lion.AbpPro.CAP</AssemblyName> <AssemblyName>Lion.AbpPro.CAP</AssemblyName>
</PropertyGroup> </PropertyGroup>

2
aspnet-core/frameworks/src/Lion.AbpPro.Cli.Core/Lion.AbpPro.Cli.Core.csproj

@ -1,7 +1,7 @@
<Project Sdk="Microsoft.NET.Sdk"> <Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup> <PropertyGroup>
<TargetFramework>net9.0</TargetFramework> <TargetFramework>net10.0</TargetFramework>
<ImplicitUsings>enable</ImplicitUsings> <ImplicitUsings>enable</ImplicitUsings>
<RootNamespace /> <RootNamespace />
</PropertyGroup> </PropertyGroup>

2
aspnet-core/frameworks/src/Lion.AbpPro.Cli/Lion.AbpPro.Cli.csproj

@ -2,7 +2,7 @@
<PropertyGroup> <PropertyGroup>
<OutputType>Exe</OutputType> <OutputType>Exe</OutputType>
<TargetFramework>net9.0</TargetFramework> <TargetFramework>net10.0</TargetFramework>
<PackAsTool>true</PackAsTool> <PackAsTool>true</PackAsTool>
<PackageId>Lion.AbpPro.Cli</PackageId> <PackageId>Lion.AbpPro.Cli</PackageId>
<ToolCommandName>lion.abp</ToolCommandName> <ToolCommandName>lion.abp</ToolCommandName>

3
aspnet-core/frameworks/src/Lion.AbpPro.Core/Lion.AbpPro.Core.csproj

@ -1,12 +1,13 @@
<Project Sdk="Microsoft.NET.Sdk"> <Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup> <PropertyGroup>
<TargetFramework>net9.0</TargetFramework> <TargetFramework>net10.0</TargetFramework>
<AssemblyName>Lion.AbpPro.Core</AssemblyName> <AssemblyName>Lion.AbpPro.Core</AssemblyName>
<RootNamespace/> <RootNamespace/>
</PropertyGroup> </PropertyGroup>
<ItemGroup> <ItemGroup>
<PackageReference Include="Mapster"/>
<ProjectReference Include="..\Lion.AbpPro.Localization\Lion.AbpPro.Localization.csproj"/> <ProjectReference Include="..\Lion.AbpPro.Localization\Lion.AbpPro.Localization.csproj"/>
</ItemGroup> </ItemGroup>
</Project> </Project>

2
aspnet-core/frameworks/src/Lion.AbpPro.ElasticSearch/Lion.AbpPro.ElasticSearch.csproj

@ -1,7 +1,7 @@
<Project Sdk="Microsoft.NET.Sdk"> <Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup> <PropertyGroup>
<TargetFramework>net9.0</TargetFramework> <TargetFramework>net10.0</TargetFramework>
<ImplicitUsings>enable</ImplicitUsings> <ImplicitUsings>enable</ImplicitUsings>
<RootNamespace /> <RootNamespace />
</PropertyGroup> </PropertyGroup>

2
aspnet-core/frameworks/src/Lion.AbpPro.EntityFrameworkCore.Mysql/Lion.AbpPro.EntityFrameworkCore.Mysql.csproj

@ -1,7 +1,7 @@
<Project Sdk="Microsoft.NET.Sdk"> <Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup> <PropertyGroup>
<TargetFramework>net9.0</TargetFramework> <TargetFramework>net10.0</TargetFramework>
<ImplicitUsings>enable</ImplicitUsings> <ImplicitUsings>enable</ImplicitUsings>
<RootNamespace /> <RootNamespace />
</PropertyGroup> </PropertyGroup>

2
aspnet-core/frameworks/src/Lion.AbpPro.EntityFrameworkCore/Lion.AbpPro.EntityFrameworkCore.csproj

@ -1,7 +1,7 @@
<Project Sdk="Microsoft.NET.Sdk"> <Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup> <PropertyGroup>
<TargetFramework>net9.0</TargetFramework> <TargetFramework>net10.0</TargetFramework>
<ImplicitUsings>enable</ImplicitUsings> <ImplicitUsings>enable</ImplicitUsings>
<Nullable>enable</Nullable> <Nullable>enable</Nullable>
<RootNamespace /> <RootNamespace />

2
aspnet-core/frameworks/src/Lion.AbpPro.Hangfire/Lion.AbpPro.Hangfire.csproj

@ -1,7 +1,7 @@
<Project Sdk="Microsoft.NET.Sdk"> <Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup> <PropertyGroup>
<TargetFramework>net9.0</TargetFramework> <TargetFramework>net10.0</TargetFramework>
<ImplicitUsings>enable</ImplicitUsings> <ImplicitUsings>enable</ImplicitUsings>
<RootNamespace /> <RootNamespace />
</PropertyGroup> </PropertyGroup>

2
aspnet-core/frameworks/src/Lion.AbpPro.HttpClient/Lion.AbpPro.HttpClient.csproj

@ -1,7 +1,7 @@
<Project Sdk="Microsoft.NET.Sdk"> <Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup> <PropertyGroup>
<TargetFramework>net9.0</TargetFramework> <TargetFramework>net10.0</TargetFramework>
<AssemblyName>Lion.AbpPro.HttpClient</AssemblyName> <AssemblyName>Lion.AbpPro.HttpClient</AssemblyName>
<RootNamespace /> <RootNamespace />
</PropertyGroup> </PropertyGroup>

2
aspnet-core/frameworks/src/Lion.AbpPro.Localization/Lion.AbpPro.Localization.csproj

@ -1,7 +1,7 @@
<Project Sdk="Microsoft.NET.Sdk"> <Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup> <PropertyGroup>
<TargetFramework>net9.0</TargetFramework> <TargetFramework>net10.0</TargetFramework>
<AssemblyName>Lion.AbpPro.Localization</AssemblyName> <AssemblyName>Lion.AbpPro.Localization</AssemblyName>
<RootNamespace /> <RootNamespace />
</PropertyGroup> </PropertyGroup>

2
aspnet-core/frameworks/src/Lion.AbpPro.SignalR/Lion.AbpPro.SignalR.csproj

@ -1,7 +1,7 @@
<Project Sdk="Microsoft.NET.Sdk"> <Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup> <PropertyGroup>
<TargetFramework>net9.0</TargetFramework> <TargetFramework>net10.0</TargetFramework>
<RootNamespace /> <RootNamespace />
<PackageId>Lion.AbpPro.SignalR</PackageId> <PackageId>Lion.AbpPro.SignalR</PackageId>
</PropertyGroup> </PropertyGroup>

2
aspnet-core/frameworks/src/Lion.AbpPro.Starter/Lion.AbpPro.Starter.csproj

@ -1,7 +1,7 @@
<Project Sdk="Microsoft.NET.Sdk"> <Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup> <PropertyGroup>
<TargetFramework>net9.0</TargetFramework> <TargetFramework>net10.0</TargetFramework>
<ImplicitUsings>enable</ImplicitUsings> <ImplicitUsings>enable</ImplicitUsings>
<AssemblyName>Lion.AbpPro.Starter</AssemblyName> <AssemblyName>Lion.AbpPro.Starter</AssemblyName>
<RootNamespace /> <RootNamespace />

2
aspnet-core/frameworks/test/Lion.AbpPro.Core.Cli.Tests/Lion.AbpPro.Core.Cli.Tests.csproj

@ -1,7 +1,7 @@
<Project Sdk="Microsoft.NET.Sdk"> <Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup> <PropertyGroup>
<TargetFramework>net9.0</TargetFramework> <TargetFramework>net10.0</TargetFramework>
<ImplicitUsings>enable</ImplicitUsings> <ImplicitUsings>enable</ImplicitUsings>
<IsPackable>false</IsPackable> <IsPackable>false</IsPackable>
<RootNamespace /> <RootNamespace />

2
aspnet-core/frameworks/test/Lion.AbpPro.Core.Tests/Lion.AbpPro.Core.Tests.csproj

@ -1,7 +1,7 @@
<Project Sdk="Microsoft.NET.Sdk"> <Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup> <PropertyGroup>
<TargetFramework>net9.0</TargetFramework> <TargetFramework>net10.0</TargetFramework>
<ImplicitUsings>enable</ImplicitUsings> <ImplicitUsings>enable</ImplicitUsings>
<IsPackable>false</IsPackable> <IsPackable>false</IsPackable>
<RootNamespace /> <RootNamespace />

2
aspnet-core/frameworks/test/Lion.AbpPro.ElasticSearch.Tests/Lion.AbpPro.ElasticSearch.Tests.csproj

@ -1,7 +1,7 @@
<Project Sdk="Microsoft.NET.Sdk"> <Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup> <PropertyGroup>
<TargetFramework>net9.0</TargetFramework> <TargetFramework>net10.0</TargetFramework>
<ImplicitUsings>enable</ImplicitUsings> <ImplicitUsings>enable</ImplicitUsings>
<IsPackable>false</IsPackable> <IsPackable>false</IsPackable>
<IsTestProject>true</IsTestProject> <IsTestProject>true</IsTestProject>

2
aspnet-core/frameworks/test/Lion.AbpPro.EntityFrameworkCore.Mysql.Tests/Lion.AbpPro.EntityFrameworkCore.Tests.csproj

@ -1,7 +1,7 @@
<Project Sdk="Microsoft.NET.Sdk.Web"> <Project Sdk="Microsoft.NET.Sdk.Web">
<PropertyGroup> <PropertyGroup>
<TargetFramework>net9.0</TargetFramework> <TargetFramework>net10.0</TargetFramework>
<Nullable>enable</Nullable> <Nullable>enable</Nullable>
<ImplicitUsings>enable</ImplicitUsings> <ImplicitUsings>enable</ImplicitUsings>
<GenerateEmbeddedFilesManifest>true</GenerateEmbeddedFilesManifest> <GenerateEmbeddedFilesManifest>true</GenerateEmbeddedFilesManifest>

2
aspnet-core/frameworks/test/Lion.AbpPro.Localization.Tests/Lion.AbpPro.Localization.Tests.csproj

@ -1,7 +1,7 @@
<Project Sdk="Microsoft.NET.Sdk"> <Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup> <PropertyGroup>
<TargetFramework>net9.0</TargetFramework> <TargetFramework>net10.0</TargetFramework>
<ImplicitUsings>enable</ImplicitUsings> <ImplicitUsings>enable</ImplicitUsings>
<IsPackable>false</IsPackable> <IsPackable>false</IsPackable>
<RootNamespace /> <RootNamespace />

2
aspnet-core/gateways/Lion.AbpPro.WebGateway/Lion.AbpPro.WebGateway.csproj

@ -1,7 +1,7 @@
<Project Sdk="Microsoft.NET.Sdk.Web"> <Project Sdk="Microsoft.NET.Sdk.Web">
<PropertyGroup> <PropertyGroup>
<TargetFramework>net9.0</TargetFramework> <TargetFramework>net10.0</TargetFramework>
</PropertyGroup> </PropertyGroup>
<ItemGroup> <ItemGroup>
<ProjectReference Include="..\..\frameworks\src\Lion.AbpPro.AspNetCore\Lion.AbpPro.AspNetCore.csproj" /> <ProjectReference Include="..\..\frameworks\src\Lion.AbpPro.AspNetCore\Lion.AbpPro.AspNetCore.csproj" />

7
aspnet-core/global.json

@ -0,0 +1,7 @@
{
"sdk": {
"version": "10.0.0",
"rollForward": "latestMajor",
"allowPrerelease": true
}
}

205
aspnet-core/modules/BasicManagement/host/Lion.AbpPro.BasicManagement.HttpApi.Host/BasicManagementHttpApiHostModule.cs

@ -1,28 +1,3 @@
using System.Text;
using Lion.AbpPro.AspNetCore;
using Microsoft.AspNetCore.Authentication.JwtBearer;
using Microsoft.AspNetCore.DataProtection;
using Lion.AbpPro.BasicManagement.EntityFrameworkCore;
using Microsoft.AspNetCore.Mvc;
using Microsoft.IdentityModel.Tokens;
using StackExchange.Redis;
using Microsoft.OpenApi.Models;
using Swagger;
using Swashbuckle.AspNetCore.SwaggerUI;
using Volo.Abp;
using Volo.Abp.AspNetCore.ExceptionHandling;
using Volo.Abp.AspNetCore.Mvc.UI.MultiTenancy;
using Volo.Abp.AspNetCore.Serilog;
using Volo.Abp.Autofac;
using Volo.Abp.Caching;
using Volo.Abp.Caching.StackExchangeRedis;
using Volo.Abp.EntityFrameworkCore;
using Volo.Abp.EntityFrameworkCore.MySQL;
using Volo.Abp.Localization;
using Volo.Abp.Modularity;
using Volo.Abp.Swashbuckle;
using Volo.Abp.VirtualFileSystem;
namespace Lion.AbpPro.BasicManagement; namespace Lion.AbpPro.BasicManagement;
[DependsOn( [DependsOn(
@ -39,25 +14,25 @@ namespace Lion.AbpPro.BasicManagement;
)] )]
public class BasicManagementHttpApiHostModule : AbpModule public class BasicManagementHttpApiHostModule : AbpModule
{ {
private const string DefaultCorsPolicyName = "Default";
public override void ConfigureServices(ServiceConfigurationContext context) public override void ConfigureServices(ServiceConfigurationContext context)
{ {
ConfigureCache(context); context.Services
ConfigureSwaggerServices(context); .AddAbpProAuditLog()
ConfigureJwtAuthentication(context); .AddAbpProAuthentication()
.AddAbpProMultiTenancy()
.AddAbpProHealthChecks()
.AddAbpProTenantResolvers()
.AddAbpProLocalization()
.AddAbpProExceptions()
.AddAbpProSwagger("BasicManagement");
Configure<AbpDbContextOptions>(options => { options.UseMySQL(); }); Configure<AbpDbContextOptions>(options => { options.UseMySQL(); });
Configure<AbpExceptionHandlingOptions>(options =>
{
options.SendExceptionsDetailsToClients = false;
});
ConfigureVirtualFileSystem(context);
} }
public override void OnApplicationInitialization(ApplicationInitializationContext context) public override void OnApplicationInitialization(ApplicationInitializationContext context)
{ {
var app = context.GetApplicationBuilder(); var app = context.GetApplicationBuilder();
app.UseCorrelationId(); app.UseCorrelationId();
app.UseStaticFiles(); app.UseStaticFiles();
app.UseRouting(); app.UseRouting();
@ -77,164 +52,4 @@ public class BasicManagementHttpApiHostModule : AbpModule
app.UseAbpSerilogEnrichers(); app.UseAbpSerilogEnrichers();
app.UseConfiguredEndpoints(); app.UseConfiguredEndpoints();
} }
/// <summary>
/// 配置虚拟文件系统
/// </summary>
/// <param name="context"></param>
private void ConfigureVirtualFileSystem(ServiceConfigurationContext context)
{
Configure<AbpVirtualFileSystemOptions>(options =>
{
options.FileSets.AddEmbedded<BasicManagementHttpApiHostModule>();
});
}
/// <summary>
/// Redis缓存
/// </summary>
private void ConfigureCache(ServiceConfigurationContext context)
{
Configure<AbpDistributedCacheOptions>(
options => { options.KeyPrefix = "AbpPro:"; });
var configuration = context.Services.GetConfiguration();
var redis = ConnectionMultiplexer.Connect(configuration["Redis:Configuration"]);
context.Services
.AddDataProtection()
.PersistKeysToStackExchangeRedis(redis, "AbpPro-Protection-Keys");
}
private static void ConfigureSwaggerServices(ServiceConfigurationContext context)
{
context.Services.AddSwaggerGen(
options =>
{
// 文件下载类型
options.MapType<FileContentResult>(() => new OpenApiSchema() { Type = "file" });
options.SwaggerDoc("BasicManagement",
new OpenApiInfo { Title = "BasicManagement API", Version = "v1" });
options.DocInclusionPredicate((docName, description) => true);
options.EnableAnnotations(); // 启用注解
options.DocumentFilter<HiddenAbpDefaultApiFilter>();
options.SchemaFilter<EnumSchemaFilter>();
// 加载所有xml注释,这里会导致swagger加载有点缓慢
var xmlPaths = Directory.GetFiles(AppContext.BaseDirectory, "*.xml");
foreach (var xml in xmlPaths)
{
options.IncludeXmlComments(xml, true);
}
options.AddSecurityDefinition(JwtBearerDefaults.AuthenticationScheme,
new OpenApiSecurityScheme()
{
Description = "直接在下框输入JWT生成的Token",
Name = "Authorization",
In = ParameterLocation.Header,
Type = SecuritySchemeType.Http,
Scheme = JwtBearerDefaults.AuthenticationScheme,
BearerFormat = "JWT"
});
options.AddSecurityRequirement(new OpenApiSecurityRequirement
{
{
new OpenApiSecurityScheme
{
Reference = new OpenApiReference
{
Type = ReferenceType.SecurityScheme, Id = "Bearer"
}
},
new List<string>()
}
});
options.AddSecurityDefinition("ApiKey", new OpenApiSecurityScheme()
{
Type = SecuritySchemeType.ApiKey,
In = ParameterLocation.Header,
Name = "Accept-Language",
Description = "多语言设置,系统预设语言有zh-Hans、en,默认为zh-Hans",
});
options.AddSecurityRequirement(new OpenApiSecurityRequirement
{
{
new OpenApiSecurityScheme
{
Reference = new OpenApiReference
{ Type = ReferenceType.SecurityScheme, Id = "ApiKey" }
},
Array.Empty<string>()
}
});
});
}
/// <summary>
/// 配置JWT
/// </summary>
private void ConfigureJwtAuthentication(ServiceConfigurationContext context)
{
var configuration = context.Services.GetConfiguration();
context.Services.AddAuthentication(options =>
{
options.DefaultAuthenticateScheme = JwtBearerDefaults.AuthenticationScheme;
options.DefaultChallengeScheme = JwtBearerDefaults.AuthenticationScheme;
})
.AddJwtBearer(options =>
{
options.TokenValidationParameters =
new TokenValidationParameters()
{
// 是否开启签名认证
ValidateIssuerSigningKey = true,
ValidateIssuer = true,
ValidateAudience = true,
ValidateLifetime = true,
//ClockSkew = TimeSpan.Zero,
ValidIssuer = configuration["Jwt:Issuer"],
ValidAudience = configuration["Jwt:Audience"],
IssuerSigningKey =
new SymmetricSecurityKey(
Encoding.ASCII.GetBytes(configuration["Jwt:SecurityKey"]))
};
options.Events = new JwtBearerEvents
{
OnMessageReceived = currentContext =>
{
var path = currentContext.HttpContext.Request.Path;
if (path.StartsWithSegments("/login"))
{
return Task.CompletedTask;
}
var accessToken = string.Empty;
if (currentContext.HttpContext.Request.Headers.ContainsKey("Authorization"))
{
accessToken = currentContext.HttpContext.Request.Headers["Authorization"];
if (!string.IsNullOrWhiteSpace(accessToken))
{
accessToken = accessToken.Split(" ").LastOrDefault();
}
}
if (accessToken.IsNullOrWhiteSpace())
{
accessToken = currentContext.Request.Query["access_token"].FirstOrDefault();
}
if (accessToken.IsNullOrWhiteSpace())
{
accessToken = currentContext.Request.Cookies[DefaultCorsPolicyName];
}
currentContext.Token = accessToken;
currentContext.Request.Headers.Remove("Authorization");
currentContext.Request.Headers.Append("Authorization", $"Bearer {accessToken}");
return Task.CompletedTask;
}
};
});
}
} }

3
aspnet-core/modules/BasicManagement/host/Lion.AbpPro.BasicManagement.HttpApi.Host/Controllers/HomeController.cs

@ -1,5 +1,4 @@
using Microsoft.AspNetCore.Mvc; using Volo.Abp.AspNetCore.Mvc;
using Volo.Abp.AspNetCore.Mvc;
namespace Lion.AbpPro.BasicManagement.Controllers; namespace Lion.AbpPro.BasicManagement.Controllers;

1
aspnet-core/modules/BasicManagement/host/Lion.AbpPro.BasicManagement.HttpApi.Host/EntityFrameworkCore/BasicManagementHttpApiHostMigrationsDbContext.cs

@ -1,5 +1,4 @@
using Microsoft.EntityFrameworkCore; using Microsoft.EntityFrameworkCore;
using Volo.Abp.EntityFrameworkCore;
namespace Lion.AbpPro.BasicManagement.EntityFrameworkCore; namespace Lion.AbpPro.BasicManagement.EntityFrameworkCore;

24
aspnet-core/modules/BasicManagement/host/Lion.AbpPro.BasicManagement.HttpApi.Host/GlobalUsings.cs

@ -0,0 +1,24 @@
// Global using directives
global using System.Text;
global using Lion.AbpPro.AspNetCore;
global using Lion.AbpPro.BasicManagement.EntityFrameworkCore;
global using Microsoft.AspNetCore.Authentication.JwtBearer;
global using Microsoft.AspNetCore.DataProtection;
global using Microsoft.AspNetCore.Mvc;
global using Microsoft.IdentityModel.Tokens;
global using StackExchange.Redis;
global using Swashbuckle.AspNetCore.SwaggerUI;
global using Volo.Abp;
global using Volo.Abp.AspNetCore.ExceptionHandling;
global using Volo.Abp.AspNetCore.Mvc.UI.MultiTenancy;
global using Volo.Abp.AspNetCore.Serilog;
global using Volo.Abp.Autofac;
global using Volo.Abp.Caching;
global using Volo.Abp.Caching.StackExchangeRedis;
global using Volo.Abp.EntityFrameworkCore;
global using Volo.Abp.EntityFrameworkCore.MySQL;
global using Volo.Abp.Localization;
global using Volo.Abp.Modularity;
global using Volo.Abp.Swashbuckle;

3
aspnet-core/modules/BasicManagement/host/Lion.AbpPro.BasicManagement.HttpApi.Host/Lion.AbpPro.BasicManagement.HttpApi.Host.csproj

@ -1,10 +1,11 @@
<Project Sdk="Microsoft.NET.Sdk.Web"> <Project Sdk="Microsoft.NET.Sdk.Web">
<PropertyGroup> <PropertyGroup>
<TargetFramework>net9.0</TargetFramework> <TargetFramework>net10.0</TargetFramework>
<RootNamespace>Lion.AbpPro.BasicManagement</RootNamespace> <RootNamespace>Lion.AbpPro.BasicManagement</RootNamespace>
<PreserveCompilationReferences>true</PreserveCompilationReferences> <PreserveCompilationReferences>true</PreserveCompilationReferences>
<UserSecretsId>Lion.AbpPro.BasicManagement-c2d31439-b723-48e2-b061-5ebd7aeb6010</UserSecretsId> <UserSecretsId>Lion.AbpPro.BasicManagement-c2d31439-b723-48e2-b061-5ebd7aeb6010</UserSecretsId>
<NoWarnNuGet>NU1903;NU1902;$(NoWarnNuGet)</NoWarnNuGet>
</PropertyGroup> </PropertyGroup>
<ItemGroup> <ItemGroup>

3
aspnet-core/modules/BasicManagement/src/Lion.AbpPro.BasicManagement.Application.Contracts/Lion.AbpPro.BasicManagement.Application.Contracts.csproj

@ -1,7 +1,8 @@
<Project Sdk="Microsoft.NET.Sdk"> <Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup> <PropertyGroup>
<TargetFramework>net9.0</TargetFramework> <TargetFramework>net10.0</TargetFramework>
<RootNamespace>Lion.AbpPro.BasicManagement</RootNamespace> <RootNamespace>Lion.AbpPro.BasicManagement</RootNamespace>
<NoWarnNuGet>NU1903;NU1902;$(NoWarnNuGet)</NoWarnNuGet>
</PropertyGroup> </PropertyGroup>
<ItemGroup> <ItemGroup>

1
aspnet-core/modules/BasicManagement/src/Lion.AbpPro.BasicManagement.Application/ApplicationConfigurations/AbpProApplicationConfigurationAppService.cs

@ -75,7 +75,6 @@ public class AbpProApplicationConfigurationAppService : ApplicationService, IAbp
Clock = GetClockConfig(), Clock = GetClockConfig(),
ObjectExtensions = _cachedObjectExtensionsDtoService.Get() ObjectExtensions = _cachedObjectExtensionsDtoService.Get()
}; };
if (options.IncludeLocalizationResources) if (options.IncludeLocalizationResources)
{ {
result.Localization = await GetLocalizationConfigAsync(options); result.Localization = await GetLocalizationConfigAsync(options);

4
aspnet-core/modules/BasicManagement/src/Lion.AbpPro.BasicManagement.Application/AuditLogs/AuditLogAppService.cs

@ -1,3 +1,5 @@
using Mapster;
namespace Lion.AbpPro.BasicManagement.AuditLogs namespace Lion.AbpPro.BasicManagement.AuditLogs
{ {
[Authorize(Policy = BasicManagementPermissions.SystemManagement.AuditLog)] [Authorize(Policy = BasicManagementPermissions.SystemManagement.AuditLog)]
@ -57,7 +59,7 @@ namespace Lion.AbpPro.BasicManagement.AuditLogs
input.HttpStatusCode, input.HttpStatusCode,
true); true);
return new PagedResultDto<PagingAuditLogOutput>(totalCount, ObjectMapper.Map<List<AuditLog>, List<PagingAuditLogOutput>>(list)); return new PagedResultDto<PagingAuditLogOutput>(totalCount, list.Adapt<List<PagingAuditLogOutput>>());
} }
} }
} }

41
aspnet-core/modules/BasicManagement/src/Lion.AbpPro.BasicManagement.Application/BasicManagementApplicationAutoMapperProfile.cs

@ -1,41 +0,0 @@
using AutoMapper;
using Lion.AbpPro.BasicManagement.AuditLogs;
using Lion.AbpPro.BasicManagement.IdentitySecurityLogs;
using Lion.AbpPro.BasicManagement.Users.Dtos;
namespace Lion.AbpPro.BasicManagement;
public class BasicManagementApplicationAutoMapperProfile : Profile
{
public BasicManagementApplicationAutoMapperProfile()
{
CreateMap<AuditLog, PagingAuditLogOutput>()
.ForMember(dest => dest.ExecutionTime,
opt => opt.MapFrom(s => s.ExecutionTime.ToString("O")));
CreateMap<AuditLogAction, PagingAuditLogActionOutput>()
.ForMember(dest => dest.ExecutionTime,
opt => opt.MapFrom(s => s.ExecutionTime.ToString("O")));
CreateMap<EntityChange, PagingEntityChangeOutput>()
.ForMember(dest => dest.ChangeTypeDescription,
opt => opt.MapFrom(s => s.ChangeType.ToDescription()))
.ForMember(dest => dest.ChangeTime,
opt => opt.MapFrom(s => s.ChangeTime.ToString("O")));
CreateMap<EntityPropertyChange, PagingEntityPropertyChangeOutput>();
CreateMap<Volo.Abp.Identity.IdentityUser, LoginOutput>()
.ForMember(dest => dest.Token, opt => opt.Ignore());
CreateMap<IdentityUser, ExportIdentityUserOutput>()
.ForMember(e => e.CreationTimeFormat, opt => opt.Ignore())
.ForMember(e => e.Status, opt => opt.Ignore());
CreateMap<OrganizationUnit, OrganizationUnitDto>();
CreateMap<IdentityUser, GetOrganizationUnitUserOutput>();
CreateMap<IdentityUser, GetUnAddUserOutput>();
CreateMap<IdentityRole, GetOrganizationUnitRoleOutput>();
CreateMap<IdentityRole, GetUnAddRoleOutput>();
CreateMap<IdentitySecurityLog, PagingIdentitySecurityLogOutput>();
CreateMap<TenantConnectionString, PageTenantConnectionStringOutput>();
CreateMap<IdentityUser, MyProfileOutput>();
CreateMap<IdentityUser, PageIdentityUserOutput>();
}
}

8
aspnet-core/modules/BasicManagement/src/Lion.AbpPro.BasicManagement.Application/BasicManagementApplicationModule.cs

@ -3,7 +3,6 @@ using Lion.AbpPro.BasicManagement.Roles;
using Magicodes.ExporterAndImporter.Core; using Magicodes.ExporterAndImporter.Core;
using Magicodes.ExporterAndImporter.Excel; using Magicodes.ExporterAndImporter.Excel;
using Volo.Abp.Account; using Volo.Abp.Account;
using Volo.Abp.AutoMapper;
using Volo.Abp.Modularity; using Volo.Abp.Modularity;
using Volo.Abp.Application; using Volo.Abp.Application;
using Volo.Abp.FeatureManagement; using Volo.Abp.FeatureManagement;
@ -18,7 +17,6 @@ namespace Lion.AbpPro.BasicManagement;
typeof(BasicManagementApplicationContractsModule), typeof(BasicManagementApplicationContractsModule),
typeof(AbpDddApplicationModule), typeof(AbpDddApplicationModule),
typeof(AbpIdentityAspNetCoreModule), typeof(AbpIdentityAspNetCoreModule),
typeof(AbpAutoMapperModule),
typeof(AbpAccountApplicationModule), typeof(AbpAccountApplicationModule),
typeof(AbpIdentityApplicationModule), typeof(AbpIdentityApplicationModule),
typeof(AbpPermissionManagementApplicationModule), typeof(AbpPermissionManagementApplicationModule),
@ -31,12 +29,6 @@ public class BasicManagementApplicationModule : AbpModule
{ {
public override void ConfigureServices(ServiceConfigurationContext context) public override void ConfigureServices(ServiceConfigurationContext context)
{ {
context.Services.AddAutoMapperObjectMapper<BasicManagementApplicationModule>();
Configure<AbpAutoMapperOptions>(options =>
{
options.AddMaps<BasicManagementApplicationModule>(validate: true);
});
Configure<PermissionOptions>(options => Configure<PermissionOptions>(options =>
{ {

6
aspnet-core/modules/BasicManagement/src/Lion.AbpPro.BasicManagement.Application/IdentitySecurityLogs/IdentitySecurityLogAppService.cs

@ -1,4 +1,6 @@
namespace Lion.AbpPro.BasicManagement.IdentitySecurityLogs; using Mapster;
namespace Lion.AbpPro.BasicManagement.IdentitySecurityLogs;
public class IdentitySecurityLogAppService : BasicManagementAppService, IIdentitySecurityLogAppService public class IdentitySecurityLogAppService : BasicManagementAppService, IIdentitySecurityLogAppService
{ {
@ -41,6 +43,6 @@ public class IdentitySecurityLogAppService : BasicManagementAppService, IIdentit
input.ClientId, input.ClientId,
input.CorrelationId); input.CorrelationId);
return new PagedResultDto<PagingIdentitySecurityLogOutput>(totalCount, ObjectMapper.Map<List<IdentitySecurityLog>, List<PagingIdentitySecurityLogOutput>>(list)); return new PagedResultDto<PagingIdentitySecurityLogOutput>(totalCount,list.Adapt<List<PagingIdentitySecurityLogOutput>>());
} }
} }

4
aspnet-core/modules/BasicManagement/src/Lion.AbpPro.BasicManagement.Application/Lion.AbpPro.BasicManagement.Application.csproj

@ -1,12 +1,12 @@
<Project Sdk="Microsoft.NET.Sdk"> <Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup> <PropertyGroup>
<TargetFramework>net9.0</TargetFramework> <TargetFramework>net10.0</TargetFramework>
<RootNamespace>Lion.AbpPro.BasicManagement</RootNamespace> <RootNamespace>Lion.AbpPro.BasicManagement</RootNamespace>
<NoWarnNuGet>NU1903;NU1902;$(NoWarnNuGet)</NoWarnNuGet>
</PropertyGroup> </PropertyGroup>
<ItemGroup> <ItemGroup>
<PackageReference Include="Volo.Abp.AutoMapper" />
<PackageReference Include="Volo.Abp.Ddd.Application" /> <PackageReference Include="Volo.Abp.Ddd.Application" />
<PackageReference Include="Volo.Abp.Account.Application" /> <PackageReference Include="Volo.Abp.Account.Application" />
<PackageReference Include="Volo.Abp.AspNetCore.Mvc" /> <PackageReference Include="Volo.Abp.AspNetCore.Mvc" />

14
aspnet-core/modules/BasicManagement/src/Lion.AbpPro.BasicManagement.Application/OrganizationUnits/OrganizationUnitAppService.cs

@ -1,4 +1,6 @@
namespace Lion.AbpPro.BasicManagement.OrganizationUnits; using Mapster;
namespace Lion.AbpPro.BasicManagement.OrganizationUnits;
[Authorize(Policy = BasicManagementPermissions.SystemManagement.OrganizationUnitManagement.Default)] [Authorize(Policy = BasicManagementPermissions.SystemManagement.OrganizationUnitManagement.Default)]
public class OrganizationUnitAppService : BasicManagementAppService, IOrganizationUnitAppService public class OrganizationUnitAppService : BasicManagementAppService, IOrganizationUnitAppService
@ -20,7 +22,7 @@ public class OrganizationUnitAppService : BasicManagementAppService, IOrganizati
public virtual async Task<List<TreeOutput>> GetTreeAsync() public virtual async Task<List<TreeOutput>> GetTreeAsync()
{ {
var organizationUnits = await _organizationUnitRepository.GetListAsync(); var organizationUnits = await _organizationUnitRepository.GetListAsync();
var organizationUnitDtos = ObjectMapper.Map<List<OrganizationUnit>, List<OrganizationUnitDto>>(organizationUnits); var organizationUnitDtos =organizationUnits.Adapt<List<OrganizationUnitDto>>();
return ConvertToTree(organizationUnitDtos); return ConvertToTree(organizationUnitDtos);
} }
@ -100,7 +102,7 @@ public class OrganizationUnitAppService : BasicManagementAppService, IOrganizati
skipCount: input.SkipCount, skipCount: input.SkipCount,
filter: input.Filter filter: input.Filter
); );
listResult = ObjectMapper.Map<List<IdentityUser>, List<GetOrganizationUnitUserOutput>>(list); listResult = list.Adapt<List<GetOrganizationUnitUserOutput>>();
} }
return new PagedResultDto<GetOrganizationUnitUserOutput>(count, listResult); return new PagedResultDto<GetOrganizationUnitUserOutput>(count, listResult);
@ -121,7 +123,7 @@ public class OrganizationUnitAppService : BasicManagementAppService, IOrganizati
skipCount: input.SkipCount, skipCount: input.SkipCount,
filter: input.Filter filter: input.Filter
); );
listResult = ObjectMapper.Map<List<IdentityUser>, List<GetUnAddUserOutput>>(users); listResult = users.Adapt<List<GetUnAddUserOutput>>();
} }
return new PagedResultDto<GetUnAddUserOutput>(count, listResult); return new PagedResultDto<GetUnAddUserOutput>(count, listResult);
@ -137,7 +139,7 @@ public class OrganizationUnitAppService : BasicManagementAppService, IOrganizati
if (count > 0) if (count > 0)
{ {
var list = await _organizationUnitRepository.GetRolesAsync(organizationUnit, maxResultCount: input.PageSize, skipCount: input.SkipCount); var list = await _organizationUnitRepository.GetRolesAsync(organizationUnit, maxResultCount: input.PageSize, skipCount: input.SkipCount);
listResult = ObjectMapper.Map<List<IdentityRole>, List<GetOrganizationUnitRoleOutput>>(list); listResult = list.Adapt<List<GetOrganizationUnitRoleOutput>>();
} }
return new PagedResultDto<GetOrganizationUnitRoleOutput>(count, listResult); return new PagedResultDto<GetOrganizationUnitRoleOutput>(count, listResult);
@ -158,7 +160,7 @@ public class OrganizationUnitAppService : BasicManagementAppService, IOrganizati
skipCount: input.SkipCount, skipCount: input.SkipCount,
filter: input.Filter filter: input.Filter
); );
listResult = ObjectMapper.Map<List<IdentityRole>, List<GetUnAddRoleOutput>>(roles); listResult = roles.Adapt<List<GetUnAddRoleOutput>>();
} }
return new PagedResultDto<GetUnAddRoleOutput>(count, listResult); return new PagedResultDto<GetUnAddRoleOutput>(count, listResult);

7
aspnet-core/modules/BasicManagement/src/Lion.AbpPro.BasicManagement.Application/Roles/RoleAppService.cs

@ -1,3 +1,5 @@
using Mapster;
namespace Lion.AbpPro.BasicManagement.Roles; namespace Lion.AbpPro.BasicManagement.Roles;
[Authorize(Policy = IdentityPermissions.Roles.Default)] [Authorize(Policy = IdentityPermissions.Roles.Default)]
@ -27,8 +29,7 @@ public class RoleAppService : BasicManagementAppService, IRoleAppService
List<IdentityRole> source = List<IdentityRole> source =
await _roleRepository.GetListAsync() await _roleRepository.GetListAsync()
.ConfigureAwait(continueOnCapturedContext: false); .ConfigureAwait(continueOnCapturedContext: false);
return new ListResultDto<IdentityRoleDto>( return new ListResultDto<IdentityRoleDto>(source.Adapt<List<IdentityRoleDto>>());
ObjectMapper.Map<List<IdentityRole>, List<IdentityRoleDto>>(source));
} }
/// <summary> /// <summary>
@ -50,7 +51,7 @@ public class RoleAppService : BasicManagementAppService, IRoleAppService
return new PagedResultDto<IdentityRoleDto>( return new PagedResultDto<IdentityRoleDto>(
await _roleRepository.GetCountAsync(request.Filter) await _roleRepository.GetCountAsync(request.Filter)
.ConfigureAwait(continueOnCapturedContext: false), .ConfigureAwait(continueOnCapturedContext: false),
ObjectMapper.Map<List<IdentityRole>, List<IdentityRoleDto>>(list)); list.Adapt<List<IdentityRoleDto>>());
} }

3
aspnet-core/modules/BasicManagement/src/Lion.AbpPro.BasicManagement.Application/Tenants/VoloTenantAppService.cs

@ -1,3 +1,4 @@
using Mapster;
using Volo.Abp.BackgroundJobs; using Volo.Abp.BackgroundJobs;
using Volo.Abp.FeatureManagement; using Volo.Abp.FeatureManagement;
using Volo.Abp.SettingManagement; using Volo.Abp.SettingManagement;
@ -73,7 +74,7 @@ namespace Lion.AbpPro.BasicManagement.Tenants
result.TotalCount = tenant.ConnectionStrings.Count; result.TotalCount = tenant.ConnectionStrings.Count;
var items = ObjectMapper.Map<List<TenantConnectionString>, List<PageTenantConnectionStringOutput>>(tenant.ConnectionStrings); var items = tenant.ConnectionStrings.Adapt<List<PageTenantConnectionStringOutput>>();
if (input.Name.IsNotNullOrWhiteSpace()) if (input.Name.IsNotNullOrWhiteSpace())
{ {
items = items.Where(e => e.Name.ToLower().Contains(input.Name.ToLower())).ToList(); items = items.Where(e => e.Name.ToLower().Contains(input.Name.ToLower())).ToList();

5
aspnet-core/modules/BasicManagement/src/Lion.AbpPro.BasicManagement.Application/Users/AccountAppService.cs

@ -1,9 +1,10 @@
using System.IdentityModel.Tokens.Jwt; using System.IdentityModel.Tokens.Jwt;
using System.Security.Claims; using System.Security.Claims;
using System.Text; using System.Text;
using IdentityModel; using Duende.IdentityModel;
using Lion.AbpPro.BasicManagement.ConfigurationOptions; using Lion.AbpPro.BasicManagement.ConfigurationOptions;
using Lion.AbpPro.BasicManagement.Users.Dtos; using Lion.AbpPro.BasicManagement.Users.Dtos;
using Mapster;
using Microsoft.AspNetCore.Http; using Microsoft.AspNetCore.Http;
using Microsoft.AspNetCore.Identity; using Microsoft.AspNetCore.Identity;
using Microsoft.IdentityModel.Tokens; using Microsoft.IdentityModel.Tokens;
@ -82,7 +83,7 @@ namespace Lion.AbpPro.BasicManagement.Users
if (roles == null || roles.Count == 0) throw new AbpAuthorizationException(); if (roles == null || roles.Count == 0) throw new AbpAuthorizationException();
var token = GenerateJwt(user.Id, user.UserName, user.Name, user.Email, var token = GenerateJwt(user.Id, user.UserName, user.Name, user.Email,
user.TenantId.ToString(), roles.ToList()); user.TenantId.ToString(), roles.ToList());
var loginOutput = ObjectMapper.Map<IdentityUser, LoginOutput>(user); var loginOutput = user.Adapt<LoginOutput>();
loginOutput.Token = token; loginOutput.Token = token;
loginOutput.Roles = roles.ToList(); loginOutput.Roles = roles.ToList();
return loginOutput; return loginOutput;

17
aspnet-core/modules/BasicManagement/src/Lion.AbpPro.BasicManagement.Application/Users/UserAppService.cs

@ -2,6 +2,7 @@ using System.Security.Claims;
using Lion.AbpPro.BasicManagement.Users.Dtos; using Lion.AbpPro.BasicManagement.Users.Dtos;
using Magicodes.ExporterAndImporter.Excel; using Magicodes.ExporterAndImporter.Excel;
using Magicodes.ExporterAndImporter.Excel.AspNetCore; using Magicodes.ExporterAndImporter.Excel.AspNetCore;
using Mapster;
using Microsoft.AspNetCore.Identity; using Microsoft.AspNetCore.Identity;
using Microsoft.AspNetCore.Mvc; using Microsoft.AspNetCore.Mvc;
using OfficeOpenXml.FormulaParsing.Excel.Functions.Logical; using OfficeOpenXml.FormulaParsing.Excel.Functions.Logical;
@ -56,8 +57,7 @@ namespace Lion.AbpPro.BasicManagement.Users
var source = await _identityUserRepository var source = await _identityUserRepository
.GetListAsync(request.Sorting, request.MaxResultCount, request.SkipCount, request.Filter); .GetListAsync(request.Sorting, request.MaxResultCount, request.SkipCount, request.Filter);
return new PagedResultDto<PageIdentityUserOutput>(count, return new PagedResultDto<PageIdentityUserOutput>(count,source.Adapt<List<PageIdentityUserOutput>>());
base.ObjectMapper.Map<List<Volo.Abp.Identity.IdentityUser>, List<PageIdentityUserOutput>>(source));
} }
public async Task<List<IdentityUserDto>> ListAllAsync(PagingUserListInput input) public async Task<List<IdentityUserDto>> ListAllAsync(PagingUserListInput input)
@ -73,7 +73,7 @@ namespace Lion.AbpPro.BasicManagement.Users
var source = await _identityUserRepository var source = await _identityUserRepository
.GetListAsync(request.Sorting, request.MaxResultCount, request.SkipCount, request.Filter); .GetListAsync(request.Sorting, request.MaxResultCount, request.SkipCount, request.Filter);
return ObjectMapper.Map<List<Volo.Abp.Identity.IdentityUser>, List<IdentityUserDto>>(source); return source.Adapt<List<IdentityUserDto>>();
} }
/// <summary> /// <summary>
@ -91,7 +91,7 @@ namespace Lion.AbpPro.BasicManagement.Users
}; };
var source = await _identityUserRepository var source = await _identityUserRepository
.GetListAsync(request.Sorting, request.MaxResultCount, request.SkipCount, request.Filter); .GetListAsync(request.Sorting, request.MaxResultCount, request.SkipCount, request.Filter);
var result = ObjectMapper.Map<List<Volo.Abp.Identity.IdentityUser>, List<ExportIdentityUserOutput>>(source); var result = source.Adapt<List<ExportIdentityUserOutput>>();
var bytes = await _excelExporter.ExportAsByteArray<ExportIdentityUserOutput>(result); var bytes = await _excelExporter.ExportAsByteArray<ExportIdentityUserOutput>(result);
return new XlsxFileResult(bytes: bytes, fileDownloadName: $"用户导出列表{Clock.Now:yyyyMMdd}"); return new XlsxFileResult(bytes: bytes, fileDownloadName: $"用户导出列表{Clock.Now:yyyyMMdd}");
} }
@ -132,9 +132,7 @@ namespace Lion.AbpPro.BasicManagement.Users
public virtual async Task<ListResultDto<IdentityRoleDto>> GetRoleByUserId(IdInput input) public virtual async Task<ListResultDto<IdentityRoleDto>> GetRoleByUserId(IdInput input)
{ {
var roles = await _identityUserRepository.GetRolesAsync(input.Id); var roles = await _identityUserRepository.GetRolesAsync(input.Id);
return new ListResultDto<IdentityRoleDto>( return new ListResultDto<IdentityRoleDto>(roles.Adapt<List<IdentityRoleDto>>());
ObjectMapper.Map<List<IdentityRole>, List<IdentityRoleDto>>(roles)
);
} }
/// <summary> /// <summary>
@ -224,7 +222,7 @@ namespace Lion.AbpPro.BasicManagement.Users
throw new BusinessException(BasicManagementErrorCodes.UserNotExist); throw new BusinessException(BasicManagementErrorCodes.UserNotExist);
} }
return ObjectMapper.Map<Volo.Abp.Identity.IdentityUser, IdentityUserDto>(user); return user.Adapt<IdentityUserDto>();
} }
public virtual async Task<MyProfileOutput> MyProfileAsync() public virtual async Task<MyProfileOutput> MyProfileAsync()
@ -234,8 +232,7 @@ namespace Lion.AbpPro.BasicManagement.Users
{ {
throw new BusinessException(BasicManagementErrorCodes.UserNotExist); throw new BusinessException(BasicManagementErrorCodes.UserNotExist);
} }
return user.Adapt<MyProfileOutput>();
return ObjectMapper.Map<Volo.Abp.Identity.IdentityUser, MyProfileOutput>(user);
} }
public virtual async Task<NeedChangePasswordOutput> NeedChangePasswordAsync() public virtual async Task<NeedChangePasswordOutput> NeedChangePasswordAsync()

2
aspnet-core/modules/BasicManagement/src/Lion.AbpPro.BasicManagement.Domain.Shared/Lion.AbpPro.BasicManagement.Domain.Shared.csproj

@ -1,7 +1,7 @@
<Project Sdk="Microsoft.NET.Sdk"> <Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup> <PropertyGroup>
<TargetFramework>net9.0</TargetFramework> <TargetFramework>net10.0</TargetFramework>
<RootNamespace>Lion.AbpPro.BasicManagement</RootNamespace> <RootNamespace>Lion.AbpPro.BasicManagement</RootNamespace>
<GenerateEmbeddedFilesManifest>true</GenerateEmbeddedFilesManifest> <GenerateEmbeddedFilesManifest>true</GenerateEmbeddedFilesManifest>
</PropertyGroup> </PropertyGroup>

7
aspnet-core/modules/BasicManagement/src/Lion.AbpPro.BasicManagement.Domain/BasicManagementDomainModule.cs

@ -13,11 +13,4 @@
)] )]
public class BasicManagementDomainModule : AbpModule public class BasicManagementDomainModule : AbpModule
{ {
public override void ConfigureServices(ServiceConfigurationContext context)
{
Configure<AbpAutoMapperOptions>(options =>
{
options.AddMaps<BasicManagementDomainModule>();
});
}
} }

1
aspnet-core/modules/BasicManagement/src/Lion.AbpPro.BasicManagement.Domain/GlobalUsings.cs

@ -5,7 +5,6 @@ global using Lion.AbpPro.BasicManagement.Localization;
global using Lion.AbpPro.Core; global using Lion.AbpPro.Core;
global using Volo.Abp.Auditing; global using Volo.Abp.Auditing;
global using Volo.Abp.AuditLogging; global using Volo.Abp.AuditLogging;
global using Volo.Abp.AutoMapper;
global using Volo.Abp.BackgroundJobs; global using Volo.Abp.BackgroundJobs;
global using Volo.Abp.Domain; global using Volo.Abp.Domain;
global using Volo.Abp.Domain.Services; global using Volo.Abp.Domain.Services;

2
aspnet-core/modules/BasicManagement/src/Lion.AbpPro.BasicManagement.Domain/Lion.AbpPro.BasicManagement.Domain.csproj

@ -1,7 +1,7 @@
<Project Sdk="Microsoft.NET.Sdk"> <Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup> <PropertyGroup>
<TargetFramework>net9.0</TargetFramework> <TargetFramework>net10.0</TargetFramework>
<RootNamespace>Lion.AbpPro.BasicManagement</RootNamespace> <RootNamespace>Lion.AbpPro.BasicManagement</RootNamespace>
</PropertyGroup> </PropertyGroup>

2
aspnet-core/modules/BasicManagement/src/Lion.AbpPro.BasicManagement.EntityFrameworkCore/Lion.AbpPro.BasicManagement.EntityFrameworkCore.csproj

@ -1,7 +1,7 @@
<Project Sdk="Microsoft.NET.Sdk"> <Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup> <PropertyGroup>
<TargetFramework>net9.0</TargetFramework> <TargetFramework>net10.0</TargetFramework>
<RootNamespace>Lion.AbpPro.BasicManagement</RootNamespace> <RootNamespace>Lion.AbpPro.BasicManagement</RootNamespace>
</PropertyGroup> </PropertyGroup>

2
aspnet-core/modules/BasicManagement/src/Lion.AbpPro.BasicManagement.HttpApi.Client/Lion.AbpPro.BasicManagement.HttpApi.Client.csproj

@ -1,7 +1,7 @@
<Project Sdk="Microsoft.NET.Sdk"> <Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup> <PropertyGroup>
<TargetFramework>net9.0</TargetFramework> <TargetFramework>net10.0</TargetFramework>
<RootNamespace>Lion.AbpPro.BasicManagement</RootNamespace> <RootNamespace>Lion.AbpPro.BasicManagement</RootNamespace>
</PropertyGroup> </PropertyGroup>

2
aspnet-core/modules/BasicManagement/src/Lion.AbpPro.BasicManagement.HttpApi/Lion.AbpPro.BasicManagement.HttpApi.csproj

@ -1,7 +1,7 @@
<Project Sdk="Microsoft.NET.Sdk"> <Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup> <PropertyGroup>
<TargetFramework>net9.0</TargetFramework> <TargetFramework>net10.0</TargetFramework>
<RootNamespace>Lion.AbpPro.BasicManagement</RootNamespace> <RootNamespace>Lion.AbpPro.BasicManagement</RootNamespace>
</PropertyGroup> </PropertyGroup>

2
aspnet-core/modules/BasicManagement/test/Lion.AbpPro.BasicManagement.Application.Tests/Lion.AbpPro.BasicManagement.Application.Tests.csproj

@ -1,7 +1,7 @@
<Project Sdk="Microsoft.NET.Sdk"> <Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup> <PropertyGroup>
<TargetFramework>net9.0</TargetFramework> <TargetFramework>net10.0</TargetFramework>
<RootNamespace>Lion.AbpPro.BasicManagement</RootNamespace> <RootNamespace>Lion.AbpPro.BasicManagement</RootNamespace>
</PropertyGroup> </PropertyGroup>

2
aspnet-core/modules/BasicManagement/test/Lion.AbpPro.BasicManagement.Domain.Tests/Lion.AbpPro.BasicManagement.Domain.Tests.csproj

@ -1,7 +1,7 @@
<Project Sdk="Microsoft.NET.Sdk"> <Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup> <PropertyGroup>
<TargetFramework>net9.0</TargetFramework> <TargetFramework>net10.0</TargetFramework>
<RootNamespace>Lion.AbpPro.BasicManagement</RootNamespace> <RootNamespace>Lion.AbpPro.BasicManagement</RootNamespace>
</PropertyGroup> </PropertyGroup>

2
aspnet-core/modules/BasicManagement/test/Lion.AbpPro.BasicManagement.EntityFrameworkCore.Tests/Lion.AbpPro.BasicManagement.EntityFrameworkCore.Tests.csproj

@ -1,7 +1,7 @@
<Project Sdk="Microsoft.NET.Sdk"> <Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup> <PropertyGroup>
<TargetFramework>net9.0</TargetFramework> <TargetFramework>net10.0</TargetFramework>
<RootNamespace>Lion.AbpPro.BasicManagement</RootNamespace> <RootNamespace>Lion.AbpPro.BasicManagement</RootNamespace>
</PropertyGroup> </PropertyGroup>

2
aspnet-core/modules/BasicManagement/test/Lion.AbpPro.BasicManagement.TestBase/Lion.AbpPro.BasicManagement.TestBase.csproj

@ -1,7 +1,7 @@
<Project Sdk="Microsoft.NET.Sdk"> <Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup> <PropertyGroup>
<TargetFramework>net9.0</TargetFramework> <TargetFramework>net10.0</TargetFramework>
<RootNamespace>Lion.AbpPro.BasicManagement</RootNamespace> <RootNamespace>Lion.AbpPro.BasicManagement</RootNamespace>
</PropertyGroup> </PropertyGroup>

176
aspnet-core/modules/DataDictionaryManagement/host/Lion.AbpPro.DataDictionaryManagement.HttpApi.Host/DataDictionaryManagementHttpApiHostModule.cs

@ -1,4 +1,6 @@
using Lion.AbpPro.AspNetCore; using Lion.AbpPro.AspNetCore;
using Microsoft.OpenApi;
using Swashbuckle.AspNetCore.SwaggerUI;
namespace Lion.AbpPro.DataDictionaryManagement namespace Lion.AbpPro.DataDictionaryManagement
{ {
@ -19,188 +21,42 @@ namespace Lion.AbpPro.DataDictionaryManagement
)] )]
public class DataDictionaryManagementHttpApiHostModule : AbpModule public class DataDictionaryManagementHttpApiHostModule : AbpModule
{ {
private const string DefaultCorsPolicyName = "Default";
public override void ConfigureServices(ServiceConfigurationContext context) public override void ConfigureServices(ServiceConfigurationContext context)
{ {
context.Services
// Configure<AbpMultiTenancyOptions>(options => .AddAbpProAuditLog()
// { .AddAbpProAuthentication()
// options.IsEnabled = MultiTenancyConsts.IsEnabled; .AddAbpProMultiTenancy()
// }); .AddAbpProHealthChecks()
context.Services.AddAlwaysAllowAuthorization(); .AddAbpProTenantResolvers()
ConfigureSwaggerServices(context); .AddAbpProLocalization()
ConfigureCache(context); .AddAbpProExceptions()
ConfigureCors(context); .AddAbpProSwagger("DataDictionaryManagement");
ConfigureDB();
ConfigureLocalization();
ConfigureVirtualFileSystem(context);
} }
public override void OnApplicationInitialization(ApplicationInitializationContext context) public override void OnApplicationInitialization(ApplicationInitializationContext context)
{ {
var app = context.GetApplicationBuilder(); var app = context.GetApplicationBuilder();
var env = context.GetEnvironment();
if (env.IsDevelopment())
{
app.UseDeveloperExceptionPage();
}
else
{
app.UseErrorPage();
app.UseHsts();
}
app.UseHttpsRedirection();
app.UseCorrelationId(); app.UseCorrelationId();
app.UseStaticFiles(); app.UseStaticFiles();
app.UseRouting(); app.UseRouting();
app.UseCors(DefaultCorsPolicyName); app.UseCors();
app.UseAuthentication(); app.UseAuthentication();
// if (MultiTenancyConsts.IsEnabled) app.UseMultiTenancy();
// {
// app.UseMultiTenancy();
// }
app.UseAbpRequestLocalization(); app.UseAbpRequestLocalization();
app.UseAuthorization(); app.UseAuthorization();
app.UseSwagger(); app.UseSwagger();
app.UseAbpSwaggerUI(options => app.UseAbpSwaggerUI(options =>
{ {
options.SwaggerEndpoint("/swagger/v1/swagger.json", "Support APP API"); options.SwaggerEndpoint("/swagger/DataDictionaryManagement/swagger.json", "DataDictionaryManagement API");
options.DocExpansion(DocExpansion.None);
var configuration = context.GetConfiguration(); options.DefaultModelsExpandDepth(-1);
options.OAuthClientId(configuration["AuthServer:SwaggerClientId"]);
options.OAuthClientSecret(configuration["AuthServer:SwaggerClientSecret"]);
options.OAuthScopes("DataDictionaryManagement");
}); });
app.UseAuditing(); app.UseAuditing();
app.UseAbpSerilogEnrichers(); app.UseAbpSerilogEnrichers();
app.UseConfiguredEndpoints(); app.UseConfiguredEndpoints();
}
/// <summary>
/// 配置跨域
/// </summary>
/// <param name="context"></param>
private void ConfigureCors(ServiceConfigurationContext context)
{
var configuration = context.Services.GetConfiguration();
context.Services.AddCors(options =>
{
options.AddPolicy(DefaultCorsPolicyName, builder =>
{
builder
.WithOrigins(
configuration["App:CorsOrigins"]
.Split(",", StringSplitOptions.RemoveEmptyEntries)
.Select(o => o.RemovePostFix("/"))
.ToArray()
)
.WithAbpExposedHeaders()
.SetIsOriginAllowedToAllowWildcardSubdomains()
.AllowAnyHeader()
.AllowAnyMethod()
.AllowCredentials();
});
});
}
/// <summary>
/// 配置SwaggerUI
/// </summary>
/// <param name="context"></param>
private static void ConfigureSwaggerServices(ServiceConfigurationContext context)
{
context.Services.AddSwaggerGen(
options =>
{
options.SwaggerDoc("v1", new OpenApiInfo {Title = "DataDictionaryManagement API", Version = "v1"});
options.DocInclusionPredicate((docName, description) => true);
#region 添加token
options.AddSecurityDefinition(JwtBearerDefaults.AuthenticationScheme, new OpenApiSecurityScheme()
{
Description = "请输入Token",
Name = "Authorization",
In = ParameterLocation.Header,
Type = SecuritySchemeType.Http,
Scheme = JwtBearerDefaults.AuthenticationScheme,
BearerFormat = "JWT"
});
options.AddSecurityRequirement(new OpenApiSecurityRequirement
{
{
new OpenApiSecurityScheme
{
Reference = new OpenApiReference
{
Type = ReferenceType.SecurityScheme, Id = "Bearer"
}
},
new List<string>()
}
});
#endregion
});
}
/// <summary>
/// Redis缓存
/// </summary>
/// <param name="context"></param>
private void ConfigureCache(ServiceConfigurationContext context)
{
var hostingEnvironment = context.Services.GetHostingEnvironment();
var configuration = context.Services.GetConfiguration();
Configure<AbpDistributedCacheOptions>(options => { options.KeyPrefix = "DataDictionaryManagement:"; });
if (!hostingEnvironment.IsDevelopment())
{
var redis = ConnectionMultiplexer.Connect(configuration["Redis:Configuration"]);
context.Services
.AddDataProtection()
.PersistKeysToStackExchangeRedis(redis, "DataDictionaryManagement-Protection-Keys");
}
}
private void ConfigureDB()
{
Configure<AbpDbContextOptions>(options => { options.UseMySQL(); });
}
/// <summary>
///配置本地化
/// </summary>
private void ConfigureLocalization()
{
Configure<AbpLocalizationOptions>(options =>
{
options.Languages.Add(new LanguageInfo("cs", "cs", "Čeština"));
options.Languages.Add(new LanguageInfo("en", "en", "English"));
options.Languages.Add(new LanguageInfo("en-GB", "en-GB", "English (UK)"));
options.Languages.Add(new LanguageInfo("fr", "fr", "Français"));
options.Languages.Add(new LanguageInfo("hu", "hu", "Magyar"));
options.Languages.Add(new LanguageInfo("pt-BR", "pt-BR", "Português"));
options.Languages.Add(new LanguageInfo("ru", "ru", "Русский"));
options.Languages.Add(new LanguageInfo("tr", "tr", "Türkçe"));
options.Languages.Add(new LanguageInfo("zh-Hans", "zh-Hans", "简体中文"));
options.Languages.Add(new LanguageInfo("zh-Hant", "zh-Hant", "繁體中文"));
});
}
/// <summary>
/// 配置虚拟文件系统
/// </summary>
/// <param name="context"></param>
private void ConfigureVirtualFileSystem(ServiceConfigurationContext context)
{
Configure<AbpVirtualFileSystemOptions>(options =>
{
options.FileSets.AddEmbedded<DataDictionaryManagementHttpApiHostModule>();
});
} }
} }
} }

1
aspnet-core/modules/DataDictionaryManagement/host/Lion.AbpPro.DataDictionaryManagement.HttpApi.Host/GlobalUsings.cs

@ -16,7 +16,6 @@ global using Microsoft.EntityFrameworkCore.Design;
global using Microsoft.Extensions.Configuration; global using Microsoft.Extensions.Configuration;
global using Microsoft.Extensions.DependencyInjection; global using Microsoft.Extensions.DependencyInjection;
global using Microsoft.Extensions.Hosting; global using Microsoft.Extensions.Hosting;
global using Microsoft.OpenApi.Models;
global using Serilog; global using Serilog;
global using Serilog.Events; global using Serilog.Events;
global using StackExchange.Redis; global using StackExchange.Redis;

2
aspnet-core/modules/DataDictionaryManagement/host/Lion.AbpPro.DataDictionaryManagement.HttpApi.Host/Lion.AbpPro.DataDictionaryManagement.HttpApi.Host.csproj

@ -2,7 +2,7 @@
<PropertyGroup> <PropertyGroup>
<TargetFramework>net9.0</TargetFramework> <TargetFramework>net10.0</TargetFramework>
<RootNamespace>Lion.AbpPro.DataDictionaryManagement</RootNamespace> <RootNamespace>Lion.AbpPro.DataDictionaryManagement</RootNamespace>
<PreserveCompilationReferences>true</PreserveCompilationReferences> <PreserveCompilationReferences>true</PreserveCompilationReferences>
<UserSecretsId>Lion.AbpPro.DataDictionaryManagement-c2d31439-b723-48e2-b061-5ebd7aeb6010</UserSecretsId> <UserSecretsId>Lion.AbpPro.DataDictionaryManagement-c2d31439-b723-48e2-b061-5ebd7aeb6010</UserSecretsId>

2
aspnet-core/modules/DataDictionaryManagement/src/Lion.AbpPro.DataDictionaryManagement.Application.Contracts/Lion.AbpPro.DataDictionaryManagement.Application.Contracts.csproj

@ -1,7 +1,7 @@
<Project Sdk="Microsoft.NET.Sdk"> <Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup> <PropertyGroup>
<TargetFramework>net9.0</TargetFramework> <TargetFramework>net10.0</TargetFramework>
<RootNamespace>Lion.AbpPro.DataDictionaryManagement</RootNamespace> <RootNamespace>Lion.AbpPro.DataDictionaryManagement</RootNamespace>
</PropertyGroup> </PropertyGroup>

6
aspnet-core/modules/DataDictionaryManagement/src/Lion.AbpPro.DataDictionaryManagement.Application/DataDictionaries/DataDictionaryAppService.cs

@ -1,3 +1,5 @@
using Mapster;
namespace Lion.AbpPro.DataDictionaryManagement.DataDictionaries namespace Lion.AbpPro.DataDictionaryManagement.DataDictionaries
{ {
[Authorize(DataDictionaryManagementPermissions.DataDictionaryManagement.Default)] [Authorize(DataDictionaryManagementPermissions.DataDictionaryManagement.Default)]
@ -32,7 +34,7 @@ namespace Lion.AbpPro.DataDictionaryManagement.DataDictionaries
var entities = await _dataDictionaryRepository.GetPagingListAsync(input.Filter, input.PageSize, var entities = await _dataDictionaryRepository.GetPagingListAsync(input.Filter, input.PageSize,
input.SkipCount, false); input.SkipCount, false);
result.Items = ObjectMapper.Map<List<DataDictionary>, List<PagingDataDictionaryOutput>>(entities); result.Items = entities.Adapt<List<PagingDataDictionaryOutput>>();
return result; return result;
} }
@ -64,7 +66,7 @@ namespace Lion.AbpPro.DataDictionaryManagement.DataDictionaries
return new PagedResultDto<PagingDataDictionaryDetailOutput>( return new PagedResultDto<PagingDataDictionaryDetailOutput>(
entity.Details.Count, entity.Details.Count,
ObjectMapper.Map<List<DataDictionaryDetail>, List<PagingDataDictionaryDetailOutput>>(details)); details.Adapt<List<PagingDataDictionaryDetailOutput>>());
} }

14
aspnet-core/modules/DataDictionaryManagement/src/Lion.AbpPro.DataDictionaryManagement.Application/DataDictionaryManagementApplicationAutoMapperProfile.cs

@ -1,14 +0,0 @@
namespace Lion.AbpPro.DataDictionaryManagement
{
public class DataDictionaryManagementApplicationAutoMapperProfile : Profile
{
public DataDictionaryManagementApplicationAutoMapperProfile()
{
/* You can configure your AutoMapper mapping configuration here.
* Alternatively, you can split your mapping configurations
* into multiple profile classes for a better organization. */
CreateMap<DataDictionary, PagingDataDictionaryOutput>();
CreateMap<DataDictionaryDetail, PagingDataDictionaryDetailOutput>();
}
}
}

11
aspnet-core/modules/DataDictionaryManagement/src/Lion.AbpPro.DataDictionaryManagement.Application/DataDictionaryManagementApplicationModule.cs

@ -3,18 +3,9 @@ namespace Lion.AbpPro.DataDictionaryManagement
[DependsOn( [DependsOn(
typeof(DataDictionaryManagementDomainModule), typeof(DataDictionaryManagementDomainModule),
typeof(DataDictionaryManagementApplicationContractsModule), typeof(DataDictionaryManagementApplicationContractsModule),
typeof(AbpDddApplicationModule), typeof(AbpDddApplicationModule)
typeof(AbpAutoMapperModule)
)] )]
public class DataDictionaryManagementApplicationModule : AbpModule public class DataDictionaryManagementApplicationModule : AbpModule
{ {
public override void ConfigureServices(ServiceConfigurationContext context)
{
context.Services.AddAutoMapperObjectMapper<DataDictionaryManagementApplicationModule>();
Configure<AbpAutoMapperOptions>(options =>
{
options.AddMaps<DataDictionaryManagementApplicationModule>(validate: true);
});
}
} }
} }

2
aspnet-core/modules/DataDictionaryManagement/src/Lion.AbpPro.DataDictionaryManagement.Application/GlobalUsings.cs

@ -4,7 +4,6 @@ global using System.Collections.Generic;
global using System.Linq; global using System.Linq;
global using System.Threading; global using System.Threading;
global using System.Threading.Tasks; global using System.Threading.Tasks;
global using AutoMapper;
global using Lion.AbpPro.DataDictionaryManagement.DataDictionaries.Aggregates; global using Lion.AbpPro.DataDictionaryManagement.DataDictionaries.Aggregates;
global using Lion.AbpPro.DataDictionaryManagement.DataDictionaries.Dto; global using Lion.AbpPro.DataDictionaryManagement.DataDictionaries.Dto;
global using Lion.AbpPro.DataDictionaryManagement.DataDictionaries.Dtos; global using Lion.AbpPro.DataDictionaryManagement.DataDictionaries.Dtos;
@ -16,5 +15,4 @@ global using Microsoft.Extensions.DependencyInjection;
global using Volo.Abp.Application; global using Volo.Abp.Application;
global using Volo.Abp.Application.Dtos; global using Volo.Abp.Application.Dtos;
global using Volo.Abp.Application.Services; global using Volo.Abp.Application.Services;
global using Volo.Abp.AutoMapper;
global using Volo.Abp.Modularity; global using Volo.Abp.Modularity;

3
aspnet-core/modules/DataDictionaryManagement/src/Lion.AbpPro.DataDictionaryManagement.Application/Lion.AbpPro.DataDictionaryManagement.Application.csproj

@ -1,12 +1,11 @@
<Project Sdk="Microsoft.NET.Sdk"> <Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup> <PropertyGroup>
<TargetFramework>net9.0</TargetFramework> <TargetFramework>net10.0</TargetFramework>
<RootNamespace>Lion.AbpPro.DataDictionaryManagement</RootNamespace> <RootNamespace>Lion.AbpPro.DataDictionaryManagement</RootNamespace>
</PropertyGroup> </PropertyGroup>
<ItemGroup> <ItemGroup>
<PackageReference Include="Volo.Abp.AutoMapper" />
<PackageReference Include="Volo.Abp.Ddd.Application" /> <PackageReference Include="Volo.Abp.Ddd.Application" />
<ProjectReference Include="..\Lion.AbpPro.DataDictionaryManagement.Application.Contracts\Lion.AbpPro.DataDictionaryManagement.Application.Contracts.csproj" /> <ProjectReference Include="..\Lion.AbpPro.DataDictionaryManagement.Application.Contracts\Lion.AbpPro.DataDictionaryManagement.Application.Contracts.csproj" />
<ProjectReference Include="..\Lion.AbpPro.DataDictionaryManagement.Domain\Lion.AbpPro.DataDictionaryManagement.Domain.csproj" /> <ProjectReference Include="..\Lion.AbpPro.DataDictionaryManagement.Domain\Lion.AbpPro.DataDictionaryManagement.Domain.csproj" />

2
aspnet-core/modules/DataDictionaryManagement/src/Lion.AbpPro.DataDictionaryManagement.Domain.Shared/Lion.AbpPro.DataDictionaryManagement.Domain.Shared.csproj

@ -1,7 +1,7 @@
<Project Sdk="Microsoft.NET.Sdk"> <Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup> <PropertyGroup>
<TargetFramework>net9.0</TargetFramework> <TargetFramework>net10.0</TargetFramework>
<RootNamespace>Lion.AbpPro.DataDictionaryManagement</RootNamespace> <RootNamespace>Lion.AbpPro.DataDictionaryManagement</RootNamespace>
<GenerateEmbeddedFilesManifest>true</GenerateEmbeddedFilesManifest> <GenerateEmbeddedFilesManifest>true</GenerateEmbeddedFilesManifest>
</PropertyGroup> </PropertyGroup>

6
aspnet-core/modules/DataDictionaryManagement/src/Lion.AbpPro.DataDictionaryManagement.Domain/DataDictionaries/DataDictionaryManager.cs

@ -1,3 +1,5 @@
using Mapster;
namespace Lion.AbpPro.DataDictionaryManagement.DataDictionaries namespace Lion.AbpPro.DataDictionaryManagement.DataDictionaries
{ {
public class DataDictionaryManager : DataDictionaryDomainService, IDataDictionaryManager public class DataDictionaryManager : DataDictionaryDomainService, IDataDictionaryManager
@ -31,7 +33,7 @@ namespace Lion.AbpPro.DataDictionaryManagement.DataDictionaries
true, true,
cancellationToken cancellationToken
); );
return ObjectMapper.Map<DataDictionary, DataDictionaryDto>(entity); return entity.Adapt<DataDictionaryDto>();
}, },
token: cancellationToken token: cancellationToken
); );
@ -54,7 +56,7 @@ namespace Lion.AbpPro.DataDictionaryManagement.DataDictionaries
true, true,
cancellationToken cancellationToken
); );
return ObjectMapper.Map<DataDictionary, DataDictionaryDto>(entity); return entity.Adapt<DataDictionaryDto>();
}, },
token: cancellationToken token: cancellationToken
); );

11
aspnet-core/modules/DataDictionaryManagement/src/Lion.AbpPro.DataDictionaryManagement.Domain/DataDictionaryDomainAutoMapperProfile.cs

@ -1,11 +0,0 @@
namespace Lion.AbpPro.DataDictionaryManagement
{
public class DataDictionaryDomainAutoMapperProfile : Profile
{
public DataDictionaryDomainAutoMapperProfile()
{
CreateMap<DataDictionary, DataDictionaryDto>();
CreateMap<DataDictionaryDetail, DataDictionaryDetailDto>();
}
}
}

9
aspnet-core/modules/DataDictionaryManagement/src/Lion.AbpPro.DataDictionaryManagement.Domain/DataDictionaryDomainService.cs

@ -16,14 +16,5 @@ namespace Lion.AbpPro.DataDictionaryManagement
protected IDistributedEventBus DistributedEventBus => protected IDistributedEventBus DistributedEventBus =>
LazyServiceProvider.LazyGetRequiredService<IDistributedEventBus>(); LazyServiceProvider.LazyGetRequiredService<IDistributedEventBus>();
/// <summary>
/// 对象映射器
/// </summary>
protected IObjectMapper ObjectMapper => LazyServiceProvider.LazyGetService<IObjectMapper>(
provider =>
ObjectMapperContext == null
? provider.GetRequiredService<IObjectMapper>()
: (IObjectMapper)provider.GetRequiredService(
typeof(IObjectMapper<>).MakeGenericType(ObjectMapperContext)));
} }
} }

13
aspnet-core/modules/DataDictionaryManagement/src/Lion.AbpPro.DataDictionaryManagement.Domain/DataDictionaryManagementDomainModule.cs

@ -1,22 +1,11 @@
using Volo.Abp.AutoMapper;
namespace Lion.AbpPro.DataDictionaryManagement namespace Lion.AbpPro.DataDictionaryManagement
{ {
[DependsOn( [DependsOn(
typeof(AbpDddDomainModule), typeof(AbpDddDomainModule),
typeof(DataDictionaryManagementDomainSharedModule), typeof(DataDictionaryManagementDomainSharedModule),
typeof(AbpCachingModule), typeof(AbpCachingModule)
typeof(AbpAutoMapperModule)
)] )]
public class DataDictionaryManagementDomainModule : AbpModule public class DataDictionaryManagementDomainModule : AbpModule
{ {
public override void ConfigureServices(ServiceConfigurationContext context)
{
context.Services.AddAutoMapperObjectMapper<DataDictionaryManagementDomainModule>();
Configure<AbpAutoMapperOptions>(options =>
{
options.AddMaps<DataDictionaryManagementDomainModule>(validate: true);
});
}
} }
} }

1
aspnet-core/modules/DataDictionaryManagement/src/Lion.AbpPro.DataDictionaryManagement.Domain/GlobalUsings.cs

@ -6,7 +6,6 @@ global using System.ComponentModel.DataAnnotations;
global using System.Linq; global using System.Linq;
global using System.Threading; global using System.Threading;
global using System.Threading.Tasks; global using System.Threading.Tasks;
global using AutoMapper;
global using Lion.AbpPro.DataDictionaryManagement.DataDictionaries.Aggregates; global using Lion.AbpPro.DataDictionaryManagement.DataDictionaries.Aggregates;
global using Lion.AbpPro.DataDictionaryManagement.DataDictionaries.Dto; global using Lion.AbpPro.DataDictionaryManagement.DataDictionaries.Dto;
global using Lion.AbpPro.Core; global using Lion.AbpPro.Core;

3
aspnet-core/modules/DataDictionaryManagement/src/Lion.AbpPro.DataDictionaryManagement.Domain/Lion.AbpPro.DataDictionaryManagement.Domain.csproj

@ -1,14 +1,13 @@
<Project Sdk="Microsoft.NET.Sdk"> <Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup> <PropertyGroup>
<TargetFramework>net9.0</TargetFramework> <TargetFramework>net10.0</TargetFramework>
<RootNamespace>Lion.AbpPro.DataDictionaryManagement</RootNamespace> <RootNamespace>Lion.AbpPro.DataDictionaryManagement</RootNamespace>
</PropertyGroup> </PropertyGroup>
<ItemGroup> <ItemGroup>
<PackageReference Include="Volo.Abp.Ddd.Domain" /> <PackageReference Include="Volo.Abp.Ddd.Domain" />
<PackageReference Include="Volo.Abp.Caching" /> <PackageReference Include="Volo.Abp.Caching" />
<PackageReference Include="Volo.Abp.AutoMapper" />
<ProjectReference Include="..\Lion.AbpPro.DataDictionaryManagement.Domain.Shared\Lion.AbpPro.DataDictionaryManagement.Domain.Shared.csproj" /> <ProjectReference Include="..\Lion.AbpPro.DataDictionaryManagement.Domain.Shared\Lion.AbpPro.DataDictionaryManagement.Domain.Shared.csproj" />
</ItemGroup> </ItemGroup>

2
aspnet-core/modules/DataDictionaryManagement/src/Lion.AbpPro.DataDictionaryManagement.EntityFrameworkCore/Lion.AbpPro.DataDictionaryManagement.EntityFrameworkCore.csproj

@ -1,7 +1,7 @@
<Project Sdk="Microsoft.NET.Sdk"> <Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup> <PropertyGroup>
<TargetFramework>net9.0</TargetFramework> <TargetFramework>net10.0</TargetFramework>
<RootNamespace>Lion.AbpPro.DataDictionaryManagement</RootNamespace> <RootNamespace>Lion.AbpPro.DataDictionaryManagement</RootNamespace>
</PropertyGroup> </PropertyGroup>

2
aspnet-core/modules/DataDictionaryManagement/src/Lion.AbpPro.DataDictionaryManagement.HttpApi.Client/Lion.AbpPro.DataDictionaryManagement.HttpApi.Client.csproj

@ -1,7 +1,7 @@
<Project Sdk="Microsoft.NET.Sdk"> <Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup> <PropertyGroup>
<TargetFramework>net9.0</TargetFramework> <TargetFramework>net10.0</TargetFramework>
<RootNamespace>Lion.AbpPro.DataDictionaryManagement</RootNamespace> <RootNamespace>Lion.AbpPro.DataDictionaryManagement</RootNamespace>
</PropertyGroup> </PropertyGroup>

6
aspnet-core/modules/DataDictionaryManagement/src/Lion.AbpPro.DataDictionaryManagement.HttpApi/DataDictionaries/DataDictionaryController.cs

@ -1,3 +1,9 @@
using System;
using System.Threading.Tasks;
using Microsoft.AspNetCore.Mvc;
using Swashbuckle.AspNetCore.Annotations;
using Volo.Abp.Application.Dtos;
using Volo.Abp.AspNetCore.Mvc;
namespace Lion.AbpPro.DataDictionaryManagement.DataDictionaries namespace Lion.AbpPro.DataDictionaryManagement.DataDictionaries
{ {
[Route("DataDictionary")] [Route("DataDictionary")]

3
aspnet-core/modules/DataDictionaryManagement/src/Lion.AbpPro.DataDictionaryManagement.HttpApi/GlobalUsings.cs

@ -3,6 +3,3 @@
global using System.Threading.Tasks; global using System.Threading.Tasks;
global using Lion.AbpPro.DataDictionaryManagement.DataDictionaries.Dtos; global using Lion.AbpPro.DataDictionaryManagement.DataDictionaries.Dtos;
global using Lion.AbpPro.Core; global using Lion.AbpPro.Core;
global using Microsoft.AspNetCore.Mvc;
global using Swashbuckle.AspNetCore.Annotations;
global using Volo.Abp.Application.Dtos;

2
aspnet-core/modules/DataDictionaryManagement/src/Lion.AbpPro.DataDictionaryManagement.HttpApi/Lion.AbpPro.DataDictionaryManagement.HttpApi.csproj

@ -1,7 +1,7 @@
<Project Sdk="Microsoft.NET.Sdk"> <Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup> <PropertyGroup>
<TargetFramework>net9.0</TargetFramework> <TargetFramework>net10.0</TargetFramework>
<RootNamespace>Lion.AbpPro.DataDictionaryManagement</RootNamespace> <RootNamespace>Lion.AbpPro.DataDictionaryManagement</RootNamespace>
</PropertyGroup> </PropertyGroup>

2
aspnet-core/modules/DataDictionaryManagement/test/Lion.AbpPro.DataDictionaryManagement.Application.Tests/Lion.AbpPro.DataDictionaryManagement.Application.Tests.csproj

@ -2,7 +2,7 @@
<PropertyGroup> <PropertyGroup>
<TargetFramework>net9.0</TargetFramework> <TargetFramework>net10.0</TargetFramework>
<RootNamespace>Lion.AbpPro.DataDictionaryManagement</RootNamespace> <RootNamespace>Lion.AbpPro.DataDictionaryManagement</RootNamespace>
<IsPackable>false</IsPackable> <IsPackable>false</IsPackable>
</PropertyGroup> </PropertyGroup>

7
aspnet-core/modules/DataDictionaryManagement/test/Lion.AbpPro.DataDictionaryManagement.Domain.Tests/DataDictionaryManagementDomainTestModule.cs

@ -9,12 +9,5 @@ namespace Lion.AbpPro.DataDictionaryManagement
)] )]
public class DataDictionaryManagementDomainTestModule : AbpModule public class DataDictionaryManagementDomainTestModule : AbpModule
{ {
public override void ConfigureServices(ServiceConfigurationContext context)
{
Configure<AbpAutoMapperOptions>(options =>
{
options.AddMaps<DataDictionaryManagementDomainModule>(validate: true);
});
}
} }
} }

1
aspnet-core/modules/DataDictionaryManagement/test/Lion.AbpPro.DataDictionaryManagement.Domain.Tests/GlobalUsings.cs

@ -5,6 +5,5 @@ global using System.Linq;
global using System.Threading.Tasks; global using System.Threading.Tasks;
global using Lion.AbpPro.DataDictionaryManagement.EntityFrameworkCore; global using Lion.AbpPro.DataDictionaryManagement.EntityFrameworkCore;
global using Shouldly; global using Shouldly;
global using Volo.Abp.AutoMapper;
global using Volo.Abp.Modularity; global using Volo.Abp.Modularity;
global using Xunit; global using Xunit;

2
aspnet-core/modules/DataDictionaryManagement/test/Lion.AbpPro.DataDictionaryManagement.Domain.Tests/Lion.AbpPro.DataDictionaryManagement.Domain.Tests.csproj

@ -2,7 +2,7 @@
<PropertyGroup> <PropertyGroup>
<TargetFramework>net9.0</TargetFramework> <TargetFramework>net10.0</TargetFramework>
<RootNamespace>Lion.AbpPro.DataDictionaryManagement</RootNamespace> <RootNamespace>Lion.AbpPro.DataDictionaryManagement</RootNamespace>
<IsPackable>false</IsPackable> <IsPackable>false</IsPackable>
</PropertyGroup> </PropertyGroup>

2
aspnet-core/modules/DataDictionaryManagement/test/Lion.AbpPro.DataDictionaryManagement.EntityFrameworkCore.Tests/Lion.AbpPro.DataDictionaryManagement.EntityFrameworkCore.Tests.csproj

@ -2,7 +2,7 @@
<PropertyGroup> <PropertyGroup>
<TargetFramework>net9.0</TargetFramework> <TargetFramework>net10.0</TargetFramework>
<RootNamespace>Lion.AbpPro.DataDictionaryManagement</RootNamespace> <RootNamespace>Lion.AbpPro.DataDictionaryManagement</RootNamespace>
<IsPackable>false</IsPackable> <IsPackable>false</IsPackable>
</PropertyGroup> </PropertyGroup>

2
aspnet-core/modules/DataDictionaryManagement/test/Lion.AbpPro.DataDictionaryManagement.TestBase/Lion.AbpPro.DataDictionaryManagement.TestBase.csproj

@ -2,7 +2,7 @@
<PropertyGroup> <PropertyGroup>
<TargetFramework>net9.0</TargetFramework> <TargetFramework>net10.0</TargetFramework>
<RootNamespace>Lion.AbpPro.DataDictionaryManagement</RootNamespace> <RootNamespace>Lion.AbpPro.DataDictionaryManagement</RootNamespace>
<IsPackable>false</IsPackable> <IsPackable>false</IsPackable>
</PropertyGroup> </PropertyGroup>

167
aspnet-core/modules/FileManagement/host/Lion.AbpPro.FileManagement.HttpApi.Host/FileManagementHttpApiHostModule.cs

@ -15,178 +15,41 @@ namespace Lion.AbpPro.FileManagement;
)] )]
public class FileManagementHttpApiHostModule : AbpModule public class FileManagementHttpApiHostModule : AbpModule
{ {
private const string DefaultCorsPolicyName = "Default";
public override void ConfigureServices(ServiceConfigurationContext context) public override void ConfigureServices(ServiceConfigurationContext context)
{ {
ConfigureVirtualFileSystem(); context.Services
ConfigureSwaggerServices(context); .AddAbpProAuditLog()
ConfigAntiForgery(); .AddAbpProAuthentication()
ConfigureLocalization(); .AddAbpProMultiTenancy()
ConfigureCache(context); .AddAbpProHealthChecks()
ConfigureCors(context); .AddAbpProTenantResolvers()
ConfigDB(); .AddAbpProLocalization()
.AddAbpProExceptions()
.AddAbpProSwagger("FileManagement");
Configure<AbpDbContextOptions>(options => { options.UseMySQL(); });
} }
public override void OnApplicationInitialization(ApplicationInitializationContext context) public override void OnApplicationInitialization(ApplicationInitializationContext context)
{ {
var app = context.GetApplicationBuilder(); var app = context.GetApplicationBuilder();
var env = context.GetEnvironment();
app.UseHttpsRedirection();
app.UseCorrelationId(); app.UseCorrelationId();
app.UseStaticFiles(); app.UseStaticFiles();
app.UseRouting(); app.UseRouting();
app.UseCors(DefaultCorsPolicyName); app.UseCors();
app.UseAuthentication(); app.UseAuthentication();
app.UseMultiTenancy();
app.UseAbpRequestLocalization(); app.UseAbpRequestLocalization();
app.UseAuthorization(); app.UseAuthorization();
app.UseSwagger(); app.UseSwagger();
app.UseAbpSwaggerUI(options => app.UseAbpSwaggerUI(options =>
{ {
options.SwaggerEndpoint("/swagger/v1/swagger.json", "FileManagement API"); options.SwaggerEndpoint("/swagger/FileManagement/swagger.json", "FileManagement API");
options.DocExpansion(DocExpansion.None); options.DocExpansion(DocExpansion.None);
options.DefaultModelExpandDepth(-2); options.DefaultModelsExpandDepth(-1);
}); });
app.UseAuditing(); app.UseAuditing();
app.UseAbpSerilogEnrichers(); app.UseAbpSerilogEnrichers();
app.UseConfiguredEndpoints(); app.UseConfiguredEndpoints();
} }
/// <summary>
/// 配置虚拟文件系统
/// </summary>
private void ConfigureVirtualFileSystem()
{
Configure<AbpVirtualFileSystemOptions>(options => { options.FileSets.AddEmbedded<FileManagementHttpApiHostModule>(); });
}
/// <summary>
/// 配置SwaggerUI
/// </summary>
/// <param name="context"></param>
private static void ConfigureSwaggerServices(ServiceConfigurationContext context)
{
context.Services.AddSwaggerGen(
options =>
{
options.SwaggerDoc("v1", new OpenApiInfo { Title = "FileManagement API", Version = "v1" });
options.DocInclusionPredicate((docName, description) => true);
#region 多语言
options.AddSecurityDefinition("ApiKey", new OpenApiSecurityScheme
{
Type = SecuritySchemeType.ApiKey,
In = ParameterLocation.Header,
Name = "Accept-Language",
Description = "多语言"
});
options.AddSecurityRequirement(new OpenApiSecurityRequirement
{
{
new OpenApiSecurityScheme
{
Reference = new OpenApiReference { Type = ReferenceType.SecurityScheme, Id = "ApiKey" }
},
new string[] { }
}
});
#endregion
});
}
private void ConfigAntiForgery()
{
Configure<AbpAntiForgeryOptions>(options => { options.AutoValidate = false; });
}
private void ConfigDB()
{
Configure<AbpDbContextOptions>(options =>
{
/* The main point to change your DBMS.
* See also OperationsMigrationsDbContextFactory for EF Core tooling. */
options.UseMySQL();
});
}
/// <summary>
/// 配置本地化
/// </summary>
private void ConfigureLocalization()
{
Configure<AbpLocalizationOptions>(options =>
{
options.Languages.Add(new LanguageInfo("ar", "ar", "العربية"));
options.Languages.Add(new LanguageInfo("cs", "cs", "Čeština"));
options.Languages.Add(new LanguageInfo("en", "en", "English"));
options.Languages.Add(new LanguageInfo("en-GB", "en-GB", "English (UK)"));
options.Languages.Add(new LanguageInfo("fi", "fi", "Finnish"));
options.Languages.Add(new LanguageInfo("fr", "fr", "Français"));
options.Languages.Add(new LanguageInfo("hu", "hu", "Magyar"));
options.Languages.Add(new LanguageInfo("pt-BR", "pt-BR", "Português"));
options.Languages.Add(new LanguageInfo("ro-RO", "ro-RO", "Română"));
options.Languages.Add(new LanguageInfo("ru", "ru", "Русский"));
options.Languages.Add(new LanguageInfo("sk", "sk", "Slovak"));
options.Languages.Add(new LanguageInfo("tr", "tr", "Türkçe"));
options.Languages.Add(new LanguageInfo("zh-Hans", "zh-Hans", "简体中文"));
options.Languages.Add(new LanguageInfo("zh-Hant", "zh-Hant", "繁體中文"));
options.Languages.Add(new LanguageInfo("de-DE", "de-DE", "Deutsch"));
options.Languages.Add(new LanguageInfo("es", "es", "Español"));
});
}
/// <summary>
/// Redis缓存
/// </summary>
/// <param name="context"></param>
private void ConfigureCache(ServiceConfigurationContext context)
{
Configure<AbpDistributedCacheOptions>(options =>
{
options.KeyPrefix = "FileManagement:";
options.GlobalCacheEntryOptions = new DistributedCacheEntryOptions
{
// 全局缓存有效时间
AbsoluteExpiration = DateTimeOffset.UtcNow.AddHours(2)
};
});
var configuration = context.Services.GetConfiguration();
var redis = ConnectionMultiplexer.Connect(configuration["Redis:Configuration"]);
context.Services
.AddDataProtection()
.PersistKeysToStackExchangeRedis(redis, "YH.Wms.Operations-Keys");
}
/// <summary>
/// 配置跨域
/// </summary>
private void ConfigureCors(ServiceConfigurationContext context)
{
var configuration = context.Services.GetConfiguration();
context.Services.AddCors(options =>
{
options.AddPolicy(DefaultCorsPolicyName, builder =>
{
builder
.WithOrigins(
configuration["App:CorsOrigins"]
.Split(",", StringSplitOptions.RemoveEmptyEntries)
.Select(o => o.RemovePostFix("/"))
.ToArray()
)
.WithAbpExposedHeaders()
.SetIsOriginAllowedToAllowWildcardSubdomains()
.AllowAnyHeader()
.AllowAnyMethod()
.AllowCredentials();
});
});
}
} }

1
aspnet-core/modules/FileManagement/host/Lion.AbpPro.FileManagement.HttpApi.Host/GlobalUsings.cs

@ -15,7 +15,6 @@ global using Microsoft.Extensions.Caching.Distributed;
global using Microsoft.Extensions.Configuration; global using Microsoft.Extensions.Configuration;
global using Microsoft.Extensions.DependencyInjection; global using Microsoft.Extensions.DependencyInjection;
global using Microsoft.Extensions.Hosting; global using Microsoft.Extensions.Hosting;
global using Microsoft.OpenApi.Models;
global using Serilog; global using Serilog;
global using StackExchange.Redis; global using StackExchange.Redis;
global using Swashbuckle.AspNetCore.SwaggerUI; global using Swashbuckle.AspNetCore.SwaggerUI;

3
aspnet-core/modules/FileManagement/host/Lion.AbpPro.FileManagement.HttpApi.Host/Lion.AbpPro.FileManagement.HttpApi.Host.csproj

@ -2,10 +2,11 @@
<PropertyGroup> <PropertyGroup>
<TargetFramework>net9.0</TargetFramework> <TargetFramework>net10.0</TargetFramework>
<RootNamespace>Lion.AbpPro.FileManagement</RootNamespace> <RootNamespace>Lion.AbpPro.FileManagement</RootNamespace>
<PreserveCompilationReferences>true</PreserveCompilationReferences> <PreserveCompilationReferences>true</PreserveCompilationReferences>
<UserSecretsId>Lion.AbpPro.FileManagement-c2d31439-b723-48e2-b061-5ebd7aeb6010</UserSecretsId> <UserSecretsId>Lion.AbpPro.FileManagement-c2d31439-b723-48e2-b061-5ebd7aeb6010</UserSecretsId>
<NoWarnNuGet>NU1903;NU1902;$(NoWarnNuGet)</NoWarnNuGet>
</PropertyGroup> </PropertyGroup>
<ItemGroup> <ItemGroup>

3
aspnet-core/modules/FileManagement/src/Lion.AbpPro.FileManagement.Application.Contracts/Lion.AbpPro.FileManagement.Application.Contracts.csproj

@ -2,8 +2,9 @@
<PropertyGroup> <PropertyGroup>
<TargetFramework>net9.0</TargetFramework> <TargetFramework>net10.0</TargetFramework>
<RootNamespace>Lion.AbpPro.FileManagement</RootNamespace> <RootNamespace>Lion.AbpPro.FileManagement</RootNamespace>
<NoWarnNuGet>NU1903;NU1902;$(NoWarnNuGet)</NoWarnNuGet>
</PropertyGroup> </PropertyGroup>
<ItemGroup> <ItemGroup>

11
aspnet-core/modules/FileManagement/src/Lion.AbpPro.FileManagement.Application/FileManagementApplicationAutoMapperProfile.cs

@ -1,11 +0,0 @@
using Lion.AbpPro.FileManagement.Files;
namespace Lion.AbpPro.FileManagement;
public class FileManagementApplicationAutoMapperProfile : Profile
{
public FileManagementApplicationAutoMapperProfile()
{
CreateMap<Files.FileObjectDto, PageFileObjectOutput>();
}
}

8
aspnet-core/modules/FileManagement/src/Lion.AbpPro.FileManagement.Application/FileManagementApplicationModule.cs

@ -3,14 +3,8 @@ namespace Lion.AbpPro.FileManagement;
[DependsOn( [DependsOn(
typeof(FileManagementDomainModule), typeof(FileManagementDomainModule),
typeof(FileManagementApplicationContractsModule), typeof(FileManagementApplicationContractsModule),
typeof(AbpDddApplicationModule), typeof(AbpDddApplicationModule)
typeof(AbpAutoMapperModule)
)] )]
public class FileManagementApplicationModule : AbpModule public class FileManagementApplicationModule : AbpModule
{ {
public override void ConfigureServices(ServiceConfigurationContext context)
{
context.Services.AddAutoMapperObjectMapper<FileManagementApplicationModule>();
Configure<AbpAutoMapperOptions>(options => { options.AddMaps<FileManagementApplicationModule>(true); });
}
} }

4
aspnet-core/modules/FileManagement/src/Lion.AbpPro.FileManagement.Application/Files/FileAppService.cs

@ -1,3 +1,5 @@
using Mapster;
namespace Lion.AbpPro.FileManagement.Files; namespace Lion.AbpPro.FileManagement.Files;
/// <summary> /// <summary>
@ -27,7 +29,7 @@ public class FileAppService : ApplicationService, IFileAppService
result.TotalCount = totalCount; result.TotalCount = totalCount;
if (totalCount <= 0) return result; if (totalCount <= 0) return result;
var list = await _fileObjectManager.GetListAsync(input.FileName, input.StartCreationTime, input.EndCreationTime, input.PageSize, input.SkipCount); var list = await _fileObjectManager.GetListAsync(input.FileName, input.StartCreationTime, input.EndCreationTime, input.PageSize, input.SkipCount);
result.Items = ObjectMapper.Map<List<FileObjectDto>, List<PageFileObjectOutput>>(list); result.Items = list.Adapt<List<PageFileObjectOutput>>();
return result; return result;
} }

2
aspnet-core/modules/FileManagement/src/Lion.AbpPro.FileManagement.Application/GlobalUsings.cs

@ -2,7 +2,6 @@
global using System.Collections.Generic; global using System.Collections.Generic;
global using System.Threading.Tasks; global using System.Threading.Tasks;
global using AutoMapper;
global using Lion.AbpPro.FileManagement.Localization; global using Lion.AbpPro.FileManagement.Localization;
global using Lion.AbpPro.FileManagement.Permissions; global using Lion.AbpPro.FileManagement.Permissions;
global using Microsoft.AspNetCore.Authorization; global using Microsoft.AspNetCore.Authorization;
@ -12,7 +11,6 @@ global using Microsoft.Extensions.DependencyInjection;
global using Volo.Abp.Application; global using Volo.Abp.Application;
global using Volo.Abp.Application.Dtos; global using Volo.Abp.Application.Dtos;
global using Volo.Abp.Application.Services; global using Volo.Abp.Application.Services;
global using Volo.Abp.AutoMapper;
global using Volo.Abp.BlobStoring; global using Volo.Abp.BlobStoring;
global using Volo.Abp.Content; global using Volo.Abp.Content;
global using Volo.Abp.Modularity; global using Volo.Abp.Modularity;

4
aspnet-core/modules/FileManagement/src/Lion.AbpPro.FileManagement.Application/Lion.AbpPro.FileManagement.Application.csproj

@ -2,13 +2,13 @@
<PropertyGroup> <PropertyGroup>
<TargetFramework>net9.0</TargetFramework> <TargetFramework>net10.0</TargetFramework>
<RootNamespace>Lion.AbpPro.FileManagement</RootNamespace> <RootNamespace>Lion.AbpPro.FileManagement</RootNamespace>
<NoWarnNuGet>NU1903;NU1902;$(NoWarnNuGet)</NoWarnNuGet>
</PropertyGroup> </PropertyGroup>
<ItemGroup> <ItemGroup>
<PackageReference Include="Microsoft.AspNetCore.Http.Features" Version="2.2.0" /> <PackageReference Include="Microsoft.AspNetCore.Http.Features" Version="2.2.0" />
<PackageReference Include="Volo.Abp.AutoMapper" />
<PackageReference Include="Volo.Abp.Ddd.Application" /> <PackageReference Include="Volo.Abp.Ddd.Application" />
<ProjectReference Include="..\Lion.AbpPro.FileManagement.Application.Contracts\Lion.AbpPro.FileManagement.Application.Contracts.csproj" /> <ProjectReference Include="..\Lion.AbpPro.FileManagement.Application.Contracts\Lion.AbpPro.FileManagement.Application.Contracts.csproj" />
<ProjectReference Include="..\Lion.AbpPro.FileManagement.Domain\Lion.AbpPro.FileManagement.Domain.csproj" /> <ProjectReference Include="..\Lion.AbpPro.FileManagement.Domain\Lion.AbpPro.FileManagement.Domain.csproj" />

2
aspnet-core/modules/FileManagement/src/Lion.AbpPro.FileManagement.Domain.Shared/Lion.AbpPro.FileManagement.Domain.Shared.csproj

@ -2,7 +2,7 @@
<PropertyGroup> <PropertyGroup>
<TargetFramework>net9.0</TargetFramework> <TargetFramework>net10.0</TargetFramework>
<RootNamespace>Lion.AbpPro.FileManagement</RootNamespace> <RootNamespace>Lion.AbpPro.FileManagement</RootNamespace>
<GenerateEmbeddedFilesManifest>true</GenerateEmbeddedFilesManifest> <GenerateEmbeddedFilesManifest>true</GenerateEmbeddedFilesManifest>
</PropertyGroup> </PropertyGroup>

13
aspnet-core/modules/FileManagement/src/Lion.AbpPro.FileManagement.Domain/FileManagementDomainAutoMapperProfile.cs

@ -1,13 +0,0 @@
using AutoMapper;
using Lion.AbpPro.FileManagement.Files;
namespace Lion.AbpPro.FileManagement
{
public class FileManagementDomainAutoMapperProfile : Profile
{
public FileManagementDomainAutoMapperProfile()
{
CreateMap<FileObject, FileObjectDto>();
}
}
}

7
aspnet-core/modules/FileManagement/src/Lion.AbpPro.FileManagement.Domain/FileManagementDomainModule.cs

@ -1,17 +1,10 @@
using Volo.Abp.AutoMapper;
namespace Lion.AbpPro.FileManagement; namespace Lion.AbpPro.FileManagement;
[DependsOn( [DependsOn(
typeof(AbpDddDomainModule), typeof(AbpDddDomainModule),
typeof(AbpAutoMapperModule),
typeof(FileManagementDomainSharedModule), typeof(FileManagementDomainSharedModule),
typeof(AbpBlobStoringModule) typeof(AbpBlobStoringModule)
)] )]
public class FileManagementDomainModule : AbpModule public class FileManagementDomainModule : AbpModule
{ {
public override void ConfigureServices(ServiceConfigurationContext context)
{
Configure<AbpAutoMapperOptions>(options => { options.AddMaps<FileManagementDomainModule>(); });
}
} }

13
aspnet-core/modules/FileManagement/src/Lion.AbpPro.FileManagement.Domain/Files/FileObjectManager.cs

@ -1,26 +1,24 @@
using Volo.Abp.ObjectMapping; using Mapster;
namespace Lion.AbpPro.FileManagement.Files; namespace Lion.AbpPro.FileManagement.Files;
public class FileObjectManager : DomainService public class FileObjectManager : DomainService
{ {
private readonly IFileObjectRepository _fileObjectRepository; private readonly IFileObjectRepository _fileObjectRepository;
private readonly IObjectMapper _objectMapper;
private readonly ICurrentTenant _currentTenant; private readonly ICurrentTenant _currentTenant;
public FileObjectManager(IFileObjectRepository fileObjectRepository, public FileObjectManager(IFileObjectRepository fileObjectRepository,
IObjectMapper objectMapper,
ICurrentTenant currentTenant) ICurrentTenant currentTenant)
{ {
_fileObjectRepository = fileObjectRepository; _fileObjectRepository = fileObjectRepository;
_objectMapper = objectMapper;
_currentTenant = currentTenant; _currentTenant = currentTenant;
} }
public async Task<List<FileObjectDto>> GetListAsync(string fileName, DateTime? startDateTime = null, DateTime? endDateTime = null, int maxResultCount = 10, int skipCount = 0) public async Task<List<FileObjectDto>> GetListAsync(string fileName, DateTime? startDateTime = null, DateTime? endDateTime = null, int maxResultCount = 10, int skipCount = 0)
{ {
var list = await _fileObjectRepository.GetListAsync(fileName, startDateTime, endDateTime, maxResultCount, skipCount); var list = await _fileObjectRepository.GetListAsync(fileName, startDateTime, endDateTime, maxResultCount, skipCount);
return _objectMapper.Map<List<FileObject>, List<FileObjectDto>>(list); return list.Adapt<List<FileObjectDto>>();
} }
public async Task<long> GetCountAsync(string fileName, DateTime? startDateTime = null, DateTime? endDateTime = null) public async Task<long> GetCountAsync(string fileName, DateTime? startDateTime = null, DateTime? endDateTime = null)
@ -56,8 +54,7 @@ public class FileObjectManager : DomainService
entity = new FileObject(id, fileName, fileSize, contentType, CurrentTenant?.Id); entity = new FileObject(id, fileName, fileSize, contentType, CurrentTenant?.Id);
await _fileObjectRepository.InsertAsync(entity); await _fileObjectRepository.InsertAsync(entity);
} }
return entity.Adapt<FileObjectDto>();
return _objectMapper.Map<FileObject, FileObjectDto>(entity);
} }
@ -78,6 +75,6 @@ public class FileObjectManager : DomainService
{ {
var entity = await _fileObjectRepository.FindAsync(id); var entity = await _fileObjectRepository.FindAsync(id);
if (entity == null) throw new DomainFileManagementException(FileManagementErrorCodes.FileNotFound); if (entity == null) throw new DomainFileManagementException(FileManagementErrorCodes.FileNotFound);
return _objectMapper.Map<FileObject, FileObjectDto>(entity); return entity.Adapt<FileObjectDto>();
} }
} }

3
aspnet-core/modules/FileManagement/src/Lion.AbpPro.FileManagement.Domain/Lion.AbpPro.FileManagement.Domain.csproj

@ -2,13 +2,12 @@
<PropertyGroup> <PropertyGroup>
<TargetFramework>net9.0</TargetFramework> <TargetFramework>net10.0</TargetFramework>
<RootNamespace>Lion.AbpPro.FileManagement</RootNamespace> <RootNamespace>Lion.AbpPro.FileManagement</RootNamespace>
</PropertyGroup> </PropertyGroup>
<ItemGroup> <ItemGroup>
<PackageReference Include="Volo.Abp.Ddd.Domain"/> <PackageReference Include="Volo.Abp.Ddd.Domain"/>
<PackageReference Include="Volo.Abp.AutoMapper"/>
<PackageReference Include="Volo.Abp.BlobStoring"/> <PackageReference Include="Volo.Abp.BlobStoring"/>
<ProjectReference Include="..\Lion.AbpPro.FileManagement.Domain.Shared\Lion.AbpPro.FileManagement.Domain.Shared.csproj"/> <ProjectReference Include="..\Lion.AbpPro.FileManagement.Domain.Shared\Lion.AbpPro.FileManagement.Domain.Shared.csproj"/>
</ItemGroup> </ItemGroup>

2
aspnet-core/modules/FileManagement/src/Lion.AbpPro.FileManagement.EntityFrameworkCore/Lion.AbpPro.FileManagement.EntityFrameworkCore.csproj

@ -2,7 +2,7 @@
<PropertyGroup> <PropertyGroup>
<TargetFramework>net9.0</TargetFramework> <TargetFramework>net10.0</TargetFramework>
<RootNamespace>Lion.AbpPro.FileManagement</RootNamespace> <RootNamespace>Lion.AbpPro.FileManagement</RootNamespace>
</PropertyGroup> </PropertyGroup>

3
aspnet-core/modules/FileManagement/src/Lion.AbpPro.FileManagement.HttpApi.Client/Lion.AbpPro.FileManagement.HttpApi.Client.csproj

@ -3,8 +3,9 @@
<PropertyGroup> <PropertyGroup>
<TargetFramework>net9.0</TargetFramework> <TargetFramework>net10.0</TargetFramework>
<RootNamespace>Lion.AbpPro.FileManagement</RootNamespace> <RootNamespace>Lion.AbpPro.FileManagement</RootNamespace>
<NoWarnNuGet>NU1903;NU1902;$(NoWarnNuGet)</NoWarnNuGet>
</PropertyGroup> </PropertyGroup>
<ItemGroup> <ItemGroup>

Some files were not shown because too many files changed in this diff

Loading…
Cancel
Save