Browse Source

✨ 添加BasicManagement模块

pull/69/head
王军 4 years ago
parent
commit
36c081b4a5
  1. 103
      aspnet-core/Lion.AbpPro.sln
  2. 118
      aspnet-core/modules/BasicManagement/Lion.AbpPro.BasicManagement.sln
  3. 223
      aspnet-core/modules/BasicManagement/host/Lion.AbpPro.BasicManagement.HttpApi.Host/BasicManagementHttpApiHostModule.cs
  4. 12
      aspnet-core/modules/BasicManagement/host/Lion.AbpPro.BasicManagement.HttpApi.Host/Controllers/HomeController.cs
  5. 18
      aspnet-core/modules/BasicManagement/host/Lion.AbpPro.BasicManagement.HttpApi.Host/Dockerfile
  6. 20
      aspnet-core/modules/BasicManagement/host/Lion.AbpPro.BasicManagement.HttpApi.Host/EntityFrameworkCore/BasicManagementHttpApiHostMigrationsDbContext.cs
  7. 28
      aspnet-core/modules/BasicManagement/host/Lion.AbpPro.BasicManagement.HttpApi.Host/EntityFrameworkCore/BasicManagementHttpApiHostMigrationsDbContextFactory.cs
  8. 3
      aspnet-core/modules/BasicManagement/host/Lion.AbpPro.BasicManagement.HttpApi.Host/FodyWeavers.xml
  9. 30
      aspnet-core/modules/BasicManagement/host/Lion.AbpPro.BasicManagement.HttpApi.Host/FodyWeavers.xsd
  10. 43
      aspnet-core/modules/BasicManagement/host/Lion.AbpPro.BasicManagement.HttpApi.Host/Lion.AbpPro.BasicManagement.HttpApi.Host.csproj
  11. 876
      aspnet-core/modules/BasicManagement/host/Lion.AbpPro.BasicManagement.HttpApi.Host/Logs/logs-20220823.txt
  12. 16
      aspnet-core/modules/BasicManagement/host/Lion.AbpPro.BasicManagement.HttpApi.Host/Logs/logs.txt
  13. 1295
      aspnet-core/modules/BasicManagement/host/Lion.AbpPro.BasicManagement.HttpApi.Host/Migrations/20220823141140_Init.Designer.cs
  14. 880
      aspnet-core/modules/BasicManagement/host/Lion.AbpPro.BasicManagement.HttpApi.Host/Migrations/20220823141140_Init.cs
  15. 1293
      aspnet-core/modules/BasicManagement/host/Lion.AbpPro.BasicManagement.HttpApi.Host/Migrations/BasicManagementHttpApiHostMigrationsDbContextModelSnapshot.cs
  16. 32
      aspnet-core/modules/BasicManagement/host/Lion.AbpPro.BasicManagement.HttpApi.Host/Program.cs
  17. 12
      aspnet-core/modules/BasicManagement/host/Lion.AbpPro.BasicManagement.HttpApi.Host/Properties/launchSettings.json
  18. 15
      aspnet-core/modules/BasicManagement/host/Lion.AbpPro.BasicManagement.HttpApi.Host/SerilogToEsExtensions.cs
  19. 15
      aspnet-core/modules/BasicManagement/host/Lion.AbpPro.BasicManagement.HttpApi.Host/Startup.cs
  20. 48
      aspnet-core/modules/BasicManagement/host/Lion.AbpPro.BasicManagement.HttpApi.Host/appsettings.json
  21. 43
      aspnet-core/modules/BasicManagement/src/Lion.AbpPro.BasicManagement.Application.Contracts/AuditLogs/GetAuditLogPageListOutput.cs
  22. 12
      aspnet-core/modules/BasicManagement/src/Lion.AbpPro.BasicManagement.Application.Contracts/AuditLogs/IAuditLogAppService.cs
  23. 67
      aspnet-core/modules/BasicManagement/src/Lion.AbpPro.BasicManagement.Application.Contracts/AuditLogs/PagingAuditLogListInput.cs
  24. 25
      aspnet-core/modules/BasicManagement/src/Lion.AbpPro.BasicManagement.Application.Contracts/BasicManagementApplicationContractsModule.cs
  25. 8
      aspnet-core/modules/BasicManagement/src/Lion.AbpPro.BasicManagement.Application.Contracts/BasicManagementRemoteServiceConsts.cs
  26. 25
      aspnet-core/modules/BasicManagement/src/Lion.AbpPro.BasicManagement.Application.Contracts/ConfigurationOptions/JwtOptions.cs
  27. 3
      aspnet-core/modules/BasicManagement/src/Lion.AbpPro.BasicManagement.Application.Contracts/FodyWeavers.xml
  28. 30
      aspnet-core/modules/BasicManagement/src/Lion.AbpPro.BasicManagement.Application.Contracts/FodyWeavers.xsd
  29. 11
      aspnet-core/modules/BasicManagement/src/Lion.AbpPro.BasicManagement.Application.Contracts/GlobalUsings.cs
  30. 22
      aspnet-core/modules/BasicManagement/src/Lion.AbpPro.BasicManagement.Application.Contracts/Lion.AbpPro.BasicManagement.Application.Contracts.csproj
  31. 8
      aspnet-core/modules/BasicManagement/src/Lion.AbpPro.BasicManagement.Application.Contracts/OrganizationUnits/Dto/AddRoleToOrganizationUnitInput.cs
  32. 8
      aspnet-core/modules/BasicManagement/src/Lion.AbpPro.BasicManagement.Application.Contracts/OrganizationUnits/Dto/AddUserToOrganizationUnitInput.cs
  33. 9
      aspnet-core/modules/BasicManagement/src/Lion.AbpPro.BasicManagement.Application.Contracts/OrganizationUnits/Dto/CreateOrganizationUnitInput.cs
  34. 7
      aspnet-core/modules/BasicManagement/src/Lion.AbpPro.BasicManagement.Application.Contracts/OrganizationUnits/Dto/GetOrganizationUnitRoleInput.cs
  35. 8
      aspnet-core/modules/BasicManagement/src/Lion.AbpPro.BasicManagement.Application.Contracts/OrganizationUnits/Dto/GetOrganizationUnitRoleOutput.cs
  36. 8
      aspnet-core/modules/BasicManagement/src/Lion.AbpPro.BasicManagement.Application.Contracts/OrganizationUnits/Dto/GetOrganizationUnitUserInput.cs
  37. 10
      aspnet-core/modules/BasicManagement/src/Lion.AbpPro.BasicManagement.Application.Contracts/OrganizationUnits/Dto/GetOrganizationUnitUserOutput.cs
  38. 8
      aspnet-core/modules/BasicManagement/src/Lion.AbpPro.BasicManagement.Application.Contracts/OrganizationUnits/Dto/GetUnAddRoleInput.cs
  39. 8
      aspnet-core/modules/BasicManagement/src/Lion.AbpPro.BasicManagement.Application.Contracts/OrganizationUnits/Dto/GetUnAddRoleOutput.cs
  40. 8
      aspnet-core/modules/BasicManagement/src/Lion.AbpPro.BasicManagement.Application.Contracts/OrganizationUnits/Dto/GetUnAddUserInput.cs
  41. 10
      aspnet-core/modules/BasicManagement/src/Lion.AbpPro.BasicManagement.Application.Contracts/OrganizationUnits/Dto/GetUnAddUserOutput.cs
  42. 14
      aspnet-core/modules/BasicManagement/src/Lion.AbpPro.BasicManagement.Application.Contracts/OrganizationUnits/Dto/OrganizationUnitDto.cs
  43. 8
      aspnet-core/modules/BasicManagement/src/Lion.AbpPro.BasicManagement.Application.Contracts/OrganizationUnits/Dto/RemoveRoleToOrganizationUnitInput.cs
  44. 8
      aspnet-core/modules/BasicManagement/src/Lion.AbpPro.BasicManagement.Application.Contracts/OrganizationUnits/Dto/RemoveUserToOrganizationUnitInput.cs
  45. 10
      aspnet-core/modules/BasicManagement/src/Lion.AbpPro.BasicManagement.Application.Contracts/OrganizationUnits/Dto/TreeOutput.cs
  46. 9
      aspnet-core/modules/BasicManagement/src/Lion.AbpPro.BasicManagement.Application.Contracts/OrganizationUnits/Dto/UpdateOrganizationUnitInput.cs
  47. 66
      aspnet-core/modules/BasicManagement/src/Lion.AbpPro.BasicManagement.Application.Contracts/OrganizationUnits/IOrganizationUnitAppService.cs
  48. 44
      aspnet-core/modules/BasicManagement/src/Lion.AbpPro.BasicManagement.Application.Contracts/Permissions/BasicManagementPermissionDefinitionProvider.cs
  49. 32
      aspnet-core/modules/BasicManagement/src/Lion.AbpPro.BasicManagement.Application.Contracts/Permissions/BasicManagementPermissions.cs
  50. 10
      aspnet-core/modules/BasicManagement/src/Lion.AbpPro.BasicManagement.Application.Contracts/Roles/Dtos/GetPermissionInput.cs
  51. 7
      aspnet-core/modules/BasicManagement/src/Lion.AbpPro.BasicManagement.Application.Contracts/Roles/Dtos/PagingRoleListInput.cs
  52. 19
      aspnet-core/modules/BasicManagement/src/Lion.AbpPro.BasicManagement.Application.Contracts/Roles/Dtos/PermissionOutput.cs
  53. 11
      aspnet-core/modules/BasicManagement/src/Lion.AbpPro.BasicManagement.Application.Contracts/Roles/Dtos/UpdateRoleInput.cs
  54. 13
      aspnet-core/modules/BasicManagement/src/Lion.AbpPro.BasicManagement.Application.Contracts/Roles/Dtos/UpdateRolePermissionsInput.cs
  55. 18
      aspnet-core/modules/BasicManagement/src/Lion.AbpPro.BasicManagement.Application.Contracts/Roles/IRoleAppService.cs
  56. 12
      aspnet-core/modules/BasicManagement/src/Lion.AbpPro.BasicManagement.Application.Contracts/Roles/IRolePermissionAppService.cs
  57. 25
      aspnet-core/modules/BasicManagement/src/Lion.AbpPro.BasicManagement.Application.Contracts/Roles/PermissionOptions.cs
  58. 59
      aspnet-core/modules/BasicManagement/src/Lion.AbpPro.BasicManagement.Application.Contracts/Settings/Dtos/SettingOutput.cs
  59. 12
      aspnet-core/modules/BasicManagement/src/Lion.AbpPro.BasicManagement.Application.Contracts/Settings/Dtos/UpdateSettingInput.cs
  60. 19
      aspnet-core/modules/BasicManagement/src/Lion.AbpPro.BasicManagement.Application.Contracts/Settings/ISettingAppService.cs
  61. 7
      aspnet-core/modules/BasicManagement/src/Lion.AbpPro.BasicManagement.Application.Contracts/Tenants/Dtos/FindTenantByNameInput.cs
  62. 7
      aspnet-core/modules/BasicManagement/src/Lion.AbpPro.BasicManagement.Application.Contracts/Tenants/Dtos/PagingTenantInput.cs
  63. 8
      aspnet-core/modules/BasicManagement/src/Lion.AbpPro.BasicManagement.Application.Contracts/Tenants/Dtos/UpdateDefaultConnectionStringInput.cs
  64. 9
      aspnet-core/modules/BasicManagement/src/Lion.AbpPro.BasicManagement.Application.Contracts/Tenants/Dtos/UpdateTenantInput.cs
  65. 21
      aspnet-core/modules/BasicManagement/src/Lion.AbpPro.BasicManagement.Application.Contracts/Tenants/IVoloTenantAppService.cs
  66. 32
      aspnet-core/modules/BasicManagement/src/Lion.AbpPro.BasicManagement.Application.Contracts/Users/Dtos/ExportIdentityUserOutput.cs
  67. 24
      aspnet-core/modules/BasicManagement/src/Lion.AbpPro.BasicManagement.Application.Contracts/Users/Dtos/GithubAccessTokenResponse.cs
  68. 11
      aspnet-core/modules/BasicManagement/src/Lion.AbpPro.BasicManagement.Application.Contracts/Users/Dtos/LockUserInput.cs
  69. 99
      aspnet-core/modules/BasicManagement/src/Lion.AbpPro.BasicManagement.Application.Contracts/Users/Dtos/LoginGithubResponse.cs
  70. 35
      aspnet-core/modules/BasicManagement/src/Lion.AbpPro.BasicManagement.Application.Contracts/Users/Dtos/LoginInput.cs
  71. 15
      aspnet-core/modules/BasicManagement/src/Lion.AbpPro.BasicManagement.Application.Contracts/Users/Dtos/LoginOutput.cs
  72. 21
      aspnet-core/modules/BasicManagement/src/Lion.AbpPro.BasicManagement.Application.Contracts/Users/Dtos/LoginStsResponse.cs
  73. 10
      aspnet-core/modules/BasicManagement/src/Lion.AbpPro.BasicManagement.Application.Contracts/Users/Dtos/PagingUserListInput.cs
  74. 11
      aspnet-core/modules/BasicManagement/src/Lion.AbpPro.BasicManagement.Application.Contracts/Users/Dtos/UpdateUserInput.cs
  75. 12
      aspnet-core/modules/BasicManagement/src/Lion.AbpPro.BasicManagement.Application.Contracts/Users/IAccountAppService.cs
  76. 51
      aspnet-core/modules/BasicManagement/src/Lion.AbpPro.BasicManagement.Application.Contracts/Users/IUserAppService.cs
  77. 339
      aspnet-core/modules/BasicManagement/src/Lion.AbpPro.BasicManagement.Application/ApplicationConfigurations/LionAbpApplicationConfigurationAppService.cs
  78. 54
      aspnet-core/modules/BasicManagement/src/Lion.AbpPro.BasicManagement.Application/AuditLogs/AuditLogAppService.cs
  79. 12
      aspnet-core/modules/BasicManagement/src/Lion.AbpPro.BasicManagement.Application/BasicManagementAppService.cs
  80. 23
      aspnet-core/modules/BasicManagement/src/Lion.AbpPro.BasicManagement.Application/BasicManagementApplicationAutoMapperProfile.cs
  81. 65
      aspnet-core/modules/BasicManagement/src/Lion.AbpPro.BasicManagement.Application/BasicManagementApplicationModule.cs
  82. 3
      aspnet-core/modules/BasicManagement/src/Lion.AbpPro.BasicManagement.Application/FodyWeavers.xml
  83. 30
      aspnet-core/modules/BasicManagement/src/Lion.AbpPro.BasicManagement.Application/FodyWeavers.xsd
  84. 31
      aspnet-core/modules/BasicManagement/src/Lion.AbpPro.BasicManagement.Application/GlobalUsings.cs
  85. 25
      aspnet-core/modules/BasicManagement/src/Lion.AbpPro.BasicManagement.Application/Lion.AbpPro.BasicManagement.Application.csproj
  86. 198
      aspnet-core/modules/BasicManagement/src/Lion.AbpPro.BasicManagement.Application/OrganizationUnits/OrganizationUnitAppService.cs
  87. 87
      aspnet-core/modules/BasicManagement/src/Lion.AbpPro.BasicManagement.Application/Roles/RoleAppService.cs
  88. 120
      aspnet-core/modules/BasicManagement/src/Lion.AbpPro.BasicManagement.Application/Roles/RolePermissionAppService.cs
  89. 97
      aspnet-core/modules/BasicManagement/src/Lion.AbpPro.BasicManagement.Application/Settings/SettingAppService.cs
  90. 73
      aspnet-core/modules/BasicManagement/src/Lion.AbpPro.BasicManagement.Application/Tenants/VoloTenantAppService.cs
  91. 103
      aspnet-core/modules/BasicManagement/src/Lion.AbpPro.BasicManagement.Application/Users/AccountAppService.cs
  92. 154
      aspnet-core/modules/BasicManagement/src/Lion.AbpPro.BasicManagement.Application/Users/UserAppService.cs
  93. 9
      aspnet-core/modules/BasicManagement/src/Lion.AbpPro.BasicManagement.Domain.Shared/BasicManagementConsts.cs
  94. 39
      aspnet-core/modules/BasicManagement/src/Lion.AbpPro.BasicManagement.Domain.Shared/BasicManagementDomainSharedModule.cs
  95. 8
      aspnet-core/modules/BasicManagement/src/Lion.AbpPro.BasicManagement.Domain.Shared/BasicManagementErrorCodes.cs
  96. 3
      aspnet-core/modules/BasicManagement/src/Lion.AbpPro.BasicManagement.Domain.Shared/FodyWeavers.xml
  97. 30
      aspnet-core/modules/BasicManagement/src/Lion.AbpPro.BasicManagement.Domain.Shared/FodyWeavers.xsd
  98. 19
      aspnet-core/modules/BasicManagement/src/Lion.AbpPro.BasicManagement.Domain.Shared/GlobalUsings.cs
  99. 27
      aspnet-core/modules/BasicManagement/src/Lion.AbpPro.BasicManagement.Domain.Shared/Lion.AbpPro.BasicManagement.Domain.Shared.csproj
  100. 7
      aspnet-core/modules/BasicManagement/src/Lion.AbpPro.BasicManagement.Domain.Shared/Localization/BasicManagement/ar.json

103
aspnet-core/Lion.AbpPro.sln

@ -173,6 +173,40 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "host", "host", "{7FF93622-9
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Lion.AbpPro.NotificationManagement.HttpApi.Host", "modules\NotificationManagement\host\Lion.AbpPro.NotificationManagement.HttpApi.Host\Lion.AbpPro.NotificationManagement.HttpApi.Host.csproj", "{FA5E029F-1826-4C1E-8AED-6FA5C3362A3A}"
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "BasicManagement", "BasicManagement", "{C2FE6BA0-3DE5-403F-A91F-BCB9ADA5B068}"
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "host", "host", "{4E6D558B-CA6D-4133-8701-FDC6F245DA37}"
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{AF419621-2F14-45CE-AF1B-B688E1B21BCB}"
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "test", "test", "{6464122A-1DC2-45E8-B599-4B5C32FBC85B}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Lion.AbpPro.BasicManagement.HttpApi.Client", "modules\BasicManagement\src\Lion.AbpPro.BasicManagement.HttpApi.Client\Lion.AbpPro.BasicManagement.HttpApi.Client.csproj", "{97EE641B-69AB-40A6-B20B-4A7FD3B2681E}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Lion.AbpPro.BasicManagement.HttpApi", "modules\BasicManagement\src\Lion.AbpPro.BasicManagement.HttpApi\Lion.AbpPro.BasicManagement.HttpApi.csproj", "{0EE57014-A75A-4E54-97B6-785C2F874EA4}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Lion.AbpPro.BasicManagement.EntityFrameworkCore", "modules\BasicManagement\src\Lion.AbpPro.BasicManagement.EntityFrameworkCore\Lion.AbpPro.BasicManagement.EntityFrameworkCore.csproj", "{4F5841EB-A0C9-4E89-AA02-376F2190F68D}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Lion.AbpPro.BasicManagement.Domain.Shared", "modules\BasicManagement\src\Lion.AbpPro.BasicManagement.Domain.Shared\Lion.AbpPro.BasicManagement.Domain.Shared.csproj", "{C4E1B96F-7905-48ED-AD72-98F5983E65A5}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Lion.AbpPro.BasicManagement.Domain", "modules\BasicManagement\src\Lion.AbpPro.BasicManagement.Domain\Lion.AbpPro.BasicManagement.Domain.csproj", "{95385FBA-53E4-4144-B6FE-B5561081B9F9}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Lion.AbpPro.BasicManagement.Application.Contracts", "modules\BasicManagement\src\Lion.AbpPro.BasicManagement.Application.Contracts\Lion.AbpPro.BasicManagement.Application.Contracts.csproj", "{4D808FF7-C204-40F1-881D-21B27D8D290E}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Lion.AbpPro.BasicManagement.Application", "modules\BasicManagement\src\Lion.AbpPro.BasicManagement.Application\Lion.AbpPro.BasicManagement.Application.csproj", "{354E0590-F6B2-43F5-A563-F543C498F3EA}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Lion.AbpPro.BasicManagement.TestBase", "modules\BasicManagement\test\Lion.AbpPro.BasicManagement.TestBase\Lion.AbpPro.BasicManagement.TestBase.csproj", "{47F2E236-E6BE-4F52-8389-5CF03BDC9B78}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Lion.AbpPro.BasicManagement.HttpApi.Client.ConsoleTestApp", "modules\BasicManagement\test\Lion.AbpPro.BasicManagement.HttpApi.Client.ConsoleTestApp\Lion.AbpPro.BasicManagement.HttpApi.Client.ConsoleTestApp.csproj", "{1368FE7F-E1A7-4FD5-AF05-CFA59C0E0E69}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Lion.AbpPro.BasicManagement.EntityFrameworkCore.Tests", "modules\BasicManagement\test\Lion.AbpPro.BasicManagement.EntityFrameworkCore.Tests\Lion.AbpPro.BasicManagement.EntityFrameworkCore.Tests.csproj", "{9ECCC0EC-CC5A-4E49-96BE-3F2B15CCD94D}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Lion.AbpPro.BasicManagement.Domain.Tests", "modules\BasicManagement\test\Lion.AbpPro.BasicManagement.Domain.Tests\Lion.AbpPro.BasicManagement.Domain.Tests.csproj", "{2BACB63E-2830-4371-AEBB-E8089E3EB316}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Lion.AbpPro.BasicManagement.Application.Tests", "modules\BasicManagement\test\Lion.AbpPro.BasicManagement.Application.Tests\Lion.AbpPro.BasicManagement.Application.Tests.csproj", "{19A28EF9-A5AE-4EC5-851C-D2547E5FE29C}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Lion.AbpPro.BasicManagement.HttpApi.Host", "modules\BasicManagement\host\Lion.AbpPro.BasicManagement.HttpApi.Host\Lion.AbpPro.BasicManagement.HttpApi.Host.csproj", "{26765303-B9D8-457B-915C-ED869CEEB210}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
@ -407,6 +441,58 @@ Global
{FA5E029F-1826-4C1E-8AED-6FA5C3362A3A}.Debug|Any CPU.Build.0 = Debug|Any CPU
{FA5E029F-1826-4C1E-8AED-6FA5C3362A3A}.Release|Any CPU.ActiveCfg = Release|Any CPU
{FA5E029F-1826-4C1E-8AED-6FA5C3362A3A}.Release|Any CPU.Build.0 = Release|Any CPU
{97EE641B-69AB-40A6-B20B-4A7FD3B2681E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{97EE641B-69AB-40A6-B20B-4A7FD3B2681E}.Debug|Any CPU.Build.0 = Debug|Any CPU
{97EE641B-69AB-40A6-B20B-4A7FD3B2681E}.Release|Any CPU.ActiveCfg = Release|Any CPU
{97EE641B-69AB-40A6-B20B-4A7FD3B2681E}.Release|Any CPU.Build.0 = Release|Any CPU
{0EE57014-A75A-4E54-97B6-785C2F874EA4}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{0EE57014-A75A-4E54-97B6-785C2F874EA4}.Debug|Any CPU.Build.0 = Debug|Any CPU
{0EE57014-A75A-4E54-97B6-785C2F874EA4}.Release|Any CPU.ActiveCfg = Release|Any CPU
{0EE57014-A75A-4E54-97B6-785C2F874EA4}.Release|Any CPU.Build.0 = Release|Any CPU
{4F5841EB-A0C9-4E89-AA02-376F2190F68D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{4F5841EB-A0C9-4E89-AA02-376F2190F68D}.Debug|Any CPU.Build.0 = Debug|Any CPU
{4F5841EB-A0C9-4E89-AA02-376F2190F68D}.Release|Any CPU.ActiveCfg = Release|Any CPU
{4F5841EB-A0C9-4E89-AA02-376F2190F68D}.Release|Any CPU.Build.0 = Release|Any CPU
{C4E1B96F-7905-48ED-AD72-98F5983E65A5}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{C4E1B96F-7905-48ED-AD72-98F5983E65A5}.Debug|Any CPU.Build.0 = Debug|Any CPU
{C4E1B96F-7905-48ED-AD72-98F5983E65A5}.Release|Any CPU.ActiveCfg = Release|Any CPU
{C4E1B96F-7905-48ED-AD72-98F5983E65A5}.Release|Any CPU.Build.0 = Release|Any CPU
{95385FBA-53E4-4144-B6FE-B5561081B9F9}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{95385FBA-53E4-4144-B6FE-B5561081B9F9}.Debug|Any CPU.Build.0 = Debug|Any CPU
{95385FBA-53E4-4144-B6FE-B5561081B9F9}.Release|Any CPU.ActiveCfg = Release|Any CPU
{95385FBA-53E4-4144-B6FE-B5561081B9F9}.Release|Any CPU.Build.0 = Release|Any CPU
{4D808FF7-C204-40F1-881D-21B27D8D290E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{4D808FF7-C204-40F1-881D-21B27D8D290E}.Debug|Any CPU.Build.0 = Debug|Any CPU
{4D808FF7-C204-40F1-881D-21B27D8D290E}.Release|Any CPU.ActiveCfg = Release|Any CPU
{4D808FF7-C204-40F1-881D-21B27D8D290E}.Release|Any CPU.Build.0 = Release|Any CPU
{354E0590-F6B2-43F5-A563-F543C498F3EA}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{354E0590-F6B2-43F5-A563-F543C498F3EA}.Debug|Any CPU.Build.0 = Debug|Any CPU
{354E0590-F6B2-43F5-A563-F543C498F3EA}.Release|Any CPU.ActiveCfg = Release|Any CPU
{354E0590-F6B2-43F5-A563-F543C498F3EA}.Release|Any CPU.Build.0 = Release|Any CPU
{47F2E236-E6BE-4F52-8389-5CF03BDC9B78}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{47F2E236-E6BE-4F52-8389-5CF03BDC9B78}.Debug|Any CPU.Build.0 = Debug|Any CPU
{47F2E236-E6BE-4F52-8389-5CF03BDC9B78}.Release|Any CPU.ActiveCfg = Release|Any CPU
{47F2E236-E6BE-4F52-8389-5CF03BDC9B78}.Release|Any CPU.Build.0 = Release|Any CPU
{1368FE7F-E1A7-4FD5-AF05-CFA59C0E0E69}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{1368FE7F-E1A7-4FD5-AF05-CFA59C0E0E69}.Debug|Any CPU.Build.0 = Debug|Any CPU
{1368FE7F-E1A7-4FD5-AF05-CFA59C0E0E69}.Release|Any CPU.ActiveCfg = Release|Any CPU
{1368FE7F-E1A7-4FD5-AF05-CFA59C0E0E69}.Release|Any CPU.Build.0 = Release|Any CPU
{9ECCC0EC-CC5A-4E49-96BE-3F2B15CCD94D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{9ECCC0EC-CC5A-4E49-96BE-3F2B15CCD94D}.Debug|Any CPU.Build.0 = Debug|Any CPU
{9ECCC0EC-CC5A-4E49-96BE-3F2B15CCD94D}.Release|Any CPU.ActiveCfg = Release|Any CPU
{9ECCC0EC-CC5A-4E49-96BE-3F2B15CCD94D}.Release|Any CPU.Build.0 = Release|Any CPU
{2BACB63E-2830-4371-AEBB-E8089E3EB316}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{2BACB63E-2830-4371-AEBB-E8089E3EB316}.Debug|Any CPU.Build.0 = Debug|Any CPU
{2BACB63E-2830-4371-AEBB-E8089E3EB316}.Release|Any CPU.ActiveCfg = Release|Any CPU
{2BACB63E-2830-4371-AEBB-E8089E3EB316}.Release|Any CPU.Build.0 = Release|Any CPU
{19A28EF9-A5AE-4EC5-851C-D2547E5FE29C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{19A28EF9-A5AE-4EC5-851C-D2547E5FE29C}.Debug|Any CPU.Build.0 = Debug|Any CPU
{19A28EF9-A5AE-4EC5-851C-D2547E5FE29C}.Release|Any CPU.ActiveCfg = Release|Any CPU
{19A28EF9-A5AE-4EC5-851C-D2547E5FE29C}.Release|Any CPU.Build.0 = Release|Any CPU
{26765303-B9D8-457B-915C-ED869CEEB210}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{26765303-B9D8-457B-915C-ED869CEEB210}.Debug|Any CPU.Build.0 = Debug|Any CPU
{26765303-B9D8-457B-915C-ED869CEEB210}.Release|Any CPU.ActiveCfg = Release|Any CPU
{26765303-B9D8-457B-915C-ED869CEEB210}.Release|Any CPU.Build.0 = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
@ -488,6 +574,23 @@ Global
{7971DF5A-B001-4751-8F40-D7752C612BF1} = {04DBDB01-70F4-4E06-B468-8F87850B22BE}
{7FF93622-971D-4B30-A5FC-72D729D26E29} = {EB2B8705-18E7-49E1-A565-93A6DE5570D5}
{FA5E029F-1826-4C1E-8AED-6FA5C3362A3A} = {7FF93622-971D-4B30-A5FC-72D729D26E29}
{C2FE6BA0-3DE5-403F-A91F-BCB9ADA5B068} = {F8A8EB2A-2D4B-464F-9A13-F8F7B6A8FAA3}
{4E6D558B-CA6D-4133-8701-FDC6F245DA37} = {C2FE6BA0-3DE5-403F-A91F-BCB9ADA5B068}
{AF419621-2F14-45CE-AF1B-B688E1B21BCB} = {C2FE6BA0-3DE5-403F-A91F-BCB9ADA5B068}
{6464122A-1DC2-45E8-B599-4B5C32FBC85B} = {C2FE6BA0-3DE5-403F-A91F-BCB9ADA5B068}
{97EE641B-69AB-40A6-B20B-4A7FD3B2681E} = {AF419621-2F14-45CE-AF1B-B688E1B21BCB}
{0EE57014-A75A-4E54-97B6-785C2F874EA4} = {AF419621-2F14-45CE-AF1B-B688E1B21BCB}
{4F5841EB-A0C9-4E89-AA02-376F2190F68D} = {AF419621-2F14-45CE-AF1B-B688E1B21BCB}
{C4E1B96F-7905-48ED-AD72-98F5983E65A5} = {AF419621-2F14-45CE-AF1B-B688E1B21BCB}
{95385FBA-53E4-4144-B6FE-B5561081B9F9} = {AF419621-2F14-45CE-AF1B-B688E1B21BCB}
{4D808FF7-C204-40F1-881D-21B27D8D290E} = {AF419621-2F14-45CE-AF1B-B688E1B21BCB}
{354E0590-F6B2-43F5-A563-F543C498F3EA} = {AF419621-2F14-45CE-AF1B-B688E1B21BCB}
{47F2E236-E6BE-4F52-8389-5CF03BDC9B78} = {6464122A-1DC2-45E8-B599-4B5C32FBC85B}
{1368FE7F-E1A7-4FD5-AF05-CFA59C0E0E69} = {6464122A-1DC2-45E8-B599-4B5C32FBC85B}
{9ECCC0EC-CC5A-4E49-96BE-3F2B15CCD94D} = {6464122A-1DC2-45E8-B599-4B5C32FBC85B}
{2BACB63E-2830-4371-AEBB-E8089E3EB316} = {6464122A-1DC2-45E8-B599-4B5C32FBC85B}
{19A28EF9-A5AE-4EC5-851C-D2547E5FE29C} = {6464122A-1DC2-45E8-B599-4B5C32FBC85B}
{26765303-B9D8-457B-915C-ED869CEEB210} = {4E6D558B-CA6D-4133-8701-FDC6F245DA37}
EndGlobalSection
GlobalSection(ExtensibilityGlobals) = postSolution
SolutionGuid = {28315BFD-90E7-4E14-A2EA-F3D23AF4126F}

118
aspnet-core/modules/BasicManagement/Lion.AbpPro.BasicManagement.sln

@ -0,0 +1,118 @@

Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio Version 16
VisualStudioVersion = 16.0.29001.49
MinimumVisualStudioVersion = 10.0.40219.1
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Lion.AbpPro.BasicManagement.Domain.Shared", "src\Lion.AbpPro.BasicManagement.Domain.Shared\Lion.AbpPro.BasicManagement.Domain.Shared.csproj", "{D64C1577-4929-4B60-939E-96DE1534891A}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Lion.AbpPro.BasicManagement.Domain", "src\Lion.AbpPro.BasicManagement.Domain\Lion.AbpPro.BasicManagement.Domain.csproj", "{F2840BC7-0188-4606-9126-DADD0F5ABF7A}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Lion.AbpPro.BasicManagement.Application.Contracts", "src\Lion.AbpPro.BasicManagement.Application.Contracts\Lion.AbpPro.BasicManagement.Application.Contracts.csproj", "{BD65D04F-08D5-40C1-8C24-77CA0BACB877}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Lion.AbpPro.BasicManagement.Application", "src\Lion.AbpPro.BasicManagement.Application\Lion.AbpPro.BasicManagement.Application.csproj", "{78040F9E-3501-4A40-82DF-00A597710F35}"
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{649A3FFA-182F-4E56-9717-E6A9A2BEC545}"
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "test", "test", "{CCD2960C-23CC-4AB4-B84D-60C7AAA52F4D}"
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "host", "host", "{E400416D-2895-4512-9D17-90681EEC7E0A}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Lion.AbpPro.BasicManagement.EntityFrameworkCore", "src\Lion.AbpPro.BasicManagement.EntityFrameworkCore\Lion.AbpPro.BasicManagement.EntityFrameworkCore.csproj", "{0CE86223-D31D-4315-A1F5-87BA3EE1B844}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Lion.AbpPro.BasicManagement.HttpApi", "src\Lion.AbpPro.BasicManagement.HttpApi\Lion.AbpPro.BasicManagement.HttpApi.csproj", "{077AA5F8-8B61-420C-A6B5-0150A66FDB34}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Lion.AbpPro.BasicManagement.HttpApi.Client", "src\Lion.AbpPro.BasicManagement.HttpApi.Client\Lion.AbpPro.BasicManagement.HttpApi.Client.csproj", "{36E2735F-CEAB-44C8-A6D1-2CDAFF399751}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Lion.AbpPro.BasicManagement.TestBase", "test\Lion.AbpPro.BasicManagement.TestBase\Lion.AbpPro.BasicManagement.TestBase.csproj", "{C5BB573D-3030-4BCB-88B7-F6A85C32766C}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Lion.AbpPro.BasicManagement.EntityFrameworkCore.Tests", "test\Lion.AbpPro.BasicManagement.EntityFrameworkCore.Tests\Lion.AbpPro.BasicManagement.EntityFrameworkCore.Tests.csproj", "{527F645C-C1FC-406E-8479-81386C8ECF13}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Lion.AbpPro.BasicManagement.Domain.Tests", "test\Lion.AbpPro.BasicManagement.Domain.Tests\Lion.AbpPro.BasicManagement.Domain.Tests.csproj", "{E60895E5-79C4-447D-88B7-85CB5BA336A4}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Lion.AbpPro.BasicManagement.Application.Tests", "test\Lion.AbpPro.BasicManagement.Application.Tests\Lion.AbpPro.BasicManagement.Application.Tests.csproj", "{90CB5DC4-C040-45C7-8900-9688B26405BC}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Lion.AbpPro.BasicManagement.HttpApi.Host", "host\Lion.AbpPro.BasicManagement.HttpApi.Host\Lion.AbpPro.BasicManagement.HttpApi.Host.csproj", "{37B135B0-DAFE-4616-B25C-1BDF32FC44A2}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Lion.AbpPro.BasicManagement.HttpApi.Client.ConsoleTestApp", "test\Lion.AbpPro.BasicManagement.HttpApi.Client.ConsoleTestApp\Lion.AbpPro.BasicManagement.HttpApi.Client.ConsoleTestApp.csproj", "{1EDCD6D4-DF3A-4E3B-ABB6-C0D0B373EAB8}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
Release|Any CPU = Release|Any CPU
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
{D64C1577-4929-4B60-939E-96DE1534891A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{D64C1577-4929-4B60-939E-96DE1534891A}.Debug|Any CPU.Build.0 = Debug|Any CPU
{D64C1577-4929-4B60-939E-96DE1534891A}.Release|Any CPU.ActiveCfg = Release|Any CPU
{D64C1577-4929-4B60-939E-96DE1534891A}.Release|Any CPU.Build.0 = Release|Any CPU
{F2840BC7-0188-4606-9126-DADD0F5ABF7A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{F2840BC7-0188-4606-9126-DADD0F5ABF7A}.Debug|Any CPU.Build.0 = Debug|Any CPU
{F2840BC7-0188-4606-9126-DADD0F5ABF7A}.Release|Any CPU.ActiveCfg = Release|Any CPU
{F2840BC7-0188-4606-9126-DADD0F5ABF7A}.Release|Any CPU.Build.0 = Release|Any CPU
{BD65D04F-08D5-40C1-8C24-77CA0BACB877}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{BD65D04F-08D5-40C1-8C24-77CA0BACB877}.Debug|Any CPU.Build.0 = Debug|Any CPU
{BD65D04F-08D5-40C1-8C24-77CA0BACB877}.Release|Any CPU.ActiveCfg = Release|Any CPU
{BD65D04F-08D5-40C1-8C24-77CA0BACB877}.Release|Any CPU.Build.0 = Release|Any CPU
{78040F9E-3501-4A40-82DF-00A597710F35}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{78040F9E-3501-4A40-82DF-00A597710F35}.Debug|Any CPU.Build.0 = Debug|Any CPU
{78040F9E-3501-4A40-82DF-00A597710F35}.Release|Any CPU.ActiveCfg = Release|Any CPU
{78040F9E-3501-4A40-82DF-00A597710F35}.Release|Any CPU.Build.0 = Release|Any CPU
{0CE86223-D31D-4315-A1F5-87BA3EE1B844}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{0CE86223-D31D-4315-A1F5-87BA3EE1B844}.Debug|Any CPU.Build.0 = Debug|Any CPU
{0CE86223-D31D-4315-A1F5-87BA3EE1B844}.Release|Any CPU.ActiveCfg = Release|Any CPU
{0CE86223-D31D-4315-A1F5-87BA3EE1B844}.Release|Any CPU.Build.0 = Release|Any CPU
{077AA5F8-8B61-420C-A6B5-0150A66FDB34}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{077AA5F8-8B61-420C-A6B5-0150A66FDB34}.Debug|Any CPU.Build.0 = Debug|Any CPU
{077AA5F8-8B61-420C-A6B5-0150A66FDB34}.Release|Any CPU.ActiveCfg = Release|Any CPU
{077AA5F8-8B61-420C-A6B5-0150A66FDB34}.Release|Any CPU.Build.0 = Release|Any CPU
{36E2735F-CEAB-44C8-A6D1-2CDAFF399751}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{36E2735F-CEAB-44C8-A6D1-2CDAFF399751}.Debug|Any CPU.Build.0 = Debug|Any CPU
{36E2735F-CEAB-44C8-A6D1-2CDAFF399751}.Release|Any CPU.ActiveCfg = Release|Any CPU
{36E2735F-CEAB-44C8-A6D1-2CDAFF399751}.Release|Any CPU.Build.0 = Release|Any CPU
{C5BB573D-3030-4BCB-88B7-F6A85C32766C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{C5BB573D-3030-4BCB-88B7-F6A85C32766C}.Debug|Any CPU.Build.0 = Debug|Any CPU
{C5BB573D-3030-4BCB-88B7-F6A85C32766C}.Release|Any CPU.ActiveCfg = Release|Any CPU
{C5BB573D-3030-4BCB-88B7-F6A85C32766C}.Release|Any CPU.Build.0 = Release|Any CPU
{527F645C-C1FC-406E-8479-81386C8ECF13}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{527F645C-C1FC-406E-8479-81386C8ECF13}.Debug|Any CPU.Build.0 = Debug|Any CPU
{527F645C-C1FC-406E-8479-81386C8ECF13}.Release|Any CPU.ActiveCfg = Release|Any CPU
{527F645C-C1FC-406E-8479-81386C8ECF13}.Release|Any CPU.Build.0 = Release|Any CPU
{E60895E5-79C4-447D-88B7-85CB5BA336A4}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{E60895E5-79C4-447D-88B7-85CB5BA336A4}.Debug|Any CPU.Build.0 = Debug|Any CPU
{E60895E5-79C4-447D-88B7-85CB5BA336A4}.Release|Any CPU.ActiveCfg = Release|Any CPU
{E60895E5-79C4-447D-88B7-85CB5BA336A4}.Release|Any CPU.Build.0 = Release|Any CPU
{90CB5DC4-C040-45C7-8900-9688B26405BC}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{90CB5DC4-C040-45C7-8900-9688B26405BC}.Debug|Any CPU.Build.0 = Debug|Any CPU
{90CB5DC4-C040-45C7-8900-9688B26405BC}.Release|Any CPU.ActiveCfg = Release|Any CPU
{90CB5DC4-C040-45C7-8900-9688B26405BC}.Release|Any CPU.Build.0 = Release|Any CPU
{37B135B0-DAFE-4616-B25C-1BDF32FC44A2}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{37B135B0-DAFE-4616-B25C-1BDF32FC44A2}.Debug|Any CPU.Build.0 = Debug|Any CPU
{37B135B0-DAFE-4616-B25C-1BDF32FC44A2}.Release|Any CPU.ActiveCfg = Release|Any CPU
{37B135B0-DAFE-4616-B25C-1BDF32FC44A2}.Release|Any CPU.Build.0 = Release|Any CPU
{1EDCD6D4-DF3A-4E3B-ABB6-C0D0B373EAB8}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{1EDCD6D4-DF3A-4E3B-ABB6-C0D0B373EAB8}.Debug|Any CPU.Build.0 = Debug|Any CPU
{1EDCD6D4-DF3A-4E3B-ABB6-C0D0B373EAB8}.Release|Any CPU.ActiveCfg = Release|Any CPU
{1EDCD6D4-DF3A-4E3B-ABB6-C0D0B373EAB8}.Release|Any CPU.Build.0 = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
EndGlobalSection
GlobalSection(NestedProjects) = preSolution
{D64C1577-4929-4B60-939E-96DE1534891A} = {649A3FFA-182F-4E56-9717-E6A9A2BEC545}
{F2840BC7-0188-4606-9126-DADD0F5ABF7A} = {649A3FFA-182F-4E56-9717-E6A9A2BEC545}
{BD65D04F-08D5-40C1-8C24-77CA0BACB877} = {649A3FFA-182F-4E56-9717-E6A9A2BEC545}
{78040F9E-3501-4A40-82DF-00A597710F35} = {649A3FFA-182F-4E56-9717-E6A9A2BEC545}
{0CE86223-D31D-4315-A1F5-87BA3EE1B844} = {649A3FFA-182F-4E56-9717-E6A9A2BEC545}
{077AA5F8-8B61-420C-A6B5-0150A66FDB34} = {649A3FFA-182F-4E56-9717-E6A9A2BEC545}
{36E2735F-CEAB-44C8-A6D1-2CDAFF399751} = {649A3FFA-182F-4E56-9717-E6A9A2BEC545}
{C5BB573D-3030-4BCB-88B7-F6A85C32766C} = {CCD2960C-23CC-4AB4-B84D-60C7AAA52F4D}
{527F645C-C1FC-406E-8479-81386C8ECF13} = {CCD2960C-23CC-4AB4-B84D-60C7AAA52F4D}
{E60895E5-79C4-447D-88B7-85CB5BA336A4} = {CCD2960C-23CC-4AB4-B84D-60C7AAA52F4D}
{90CB5DC4-C040-45C7-8900-9688B26405BC} = {CCD2960C-23CC-4AB4-B84D-60C7AAA52F4D}
{37B135B0-DAFE-4616-B25C-1BDF32FC44A2} = {E400416D-2895-4512-9D17-90681EEC7E0A}
{1EDCD6D4-DF3A-4E3B-ABB6-C0D0B373EAB8} = {CCD2960C-23CC-4AB4-B84D-60C7AAA52F4D}
EndGlobalSection
GlobalSection(ExtensibilityGlobals) = postSolution
SolutionGuid = {4324B3B4-B60B-4E3C-91D8-59576B4E26DD}
EndGlobalSection
EndGlobal

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

@ -0,0 +1,223 @@
using System.Text;
using Microsoft.AspNetCore.Authentication.JwtBearer;
using Microsoft.AspNetCore.DataProtection;
using Lion.AbpPro.BasicManagement.EntityFrameworkCore;
using Lion.AbpPro.Shared.Hosting.Microservices;
using Lion.AbpPro.Shared.Hosting.Microservices.Swaggers;
using Microsoft.AspNetCore.Mvc;
using Microsoft.IdentityModel.Tokens;
using StackExchange.Redis;
using Microsoft.OpenApi.Models;
using Swashbuckle.AspNetCore.SwaggerUI;
using Volo.Abp;
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.Modularity;
using Volo.Abp.Swashbuckle;
namespace Lion.AbpPro.BasicManagement;
[DependsOn(
typeof(BasicManagementApplicationModule),
typeof(BasicManagementEntityFrameworkCoreModule),
typeof(BasicManagementHttpApiModule),
typeof(AbpAspNetCoreMvcUiMultiTenancyModule),
typeof(AbpAutofacModule),
typeof(AbpCachingStackExchangeRedisModule),
typeof(AbpEntityFrameworkCoreMySQLModule),
typeof(AbpAspNetCoreSerilogModule),
typeof(AbpSwashbuckleModule),
typeof(SharedHostingMicroserviceModule)
)]
public class BasicManagementHttpApiHostModule : AbpModule
{
private const string DefaultCorsPolicyName = "Default";
public override void ConfigureServices(ServiceConfigurationContext context)
{
ConfigureCache(context);
ConfigureSwaggerServices(context);
ConfigureJwtAuthentication(context);
Configure<AbpDbContextOptions>(options => { options.UseMySQL(); });
}
public override void OnApplicationInitialization(ApplicationInitializationContext context)
{
var app = context.GetApplicationBuilder();
app.UseHttpsRedirection();
app.UseCorrelationId();
app.UseStaticFiles();
app.UseRouting();
app.UseCors();
app.UseAuthentication();
app.UseMultiTenancy();
app.UseAbpRequestLocalization();
app.UseAuthorization();
app.UseSwagger();
app.UseAbpSwaggerUI(options =>
{
options.SwaggerEndpoint("/swagger/BasicManagement/swagger.json", "BasicManagement API");
options.DocExpansion(DocExpansion.None);
options.DefaultModelsExpandDepth(-1);
});
app.UseAuditing();
app.UseAbpSerilogEnrichers();
app.UseConfiguredEndpoints();
}
/// <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.Add("Authorization", $"Bearer {accessToken}");
return Task.CompletedTask;
}
};
});
}
}

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

@ -0,0 +1,12 @@
using Microsoft.AspNetCore.Mvc;
using Volo.Abp.AspNetCore.Mvc;
namespace Lion.AbpPro.BasicManagement.Controllers;
public class HomeController : AbpController
{
public ActionResult Index()
{
return Redirect("~/swagger");
}
}

18
aspnet-core/modules/BasicManagement/host/Lion.AbpPro.BasicManagement.HttpApi.Host/Dockerfile

@ -0,0 +1,18 @@
FROM mcr.microsoft.com/dotnet/core/aspnet:3.0-buster-slim AS base
WORKDIR /app
EXPOSE 80
FROM mcr.microsoft.com/dotnet/core/sdk:3.0-buster AS build
WORKDIR /src
COPY . .
WORKDIR /src/templates/service/host/Lion.AbpPro.BasicManagement.HttpApi.Host
RUN dotnet restore -nowarn:msb3202,nu1503
RUN dotnet build --no-restore -c Release -o /app
FROM build AS publish
RUN dotnet publish --no-restore -c Release -o /app
FROM base AS final
WORKDIR /app
COPY --from=publish /app .
ENTRYPOINT ["dotnet", "Lion.AbpPro.BasicManagement.HttpApi.Host.dll"]

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

@ -0,0 +1,20 @@
using Microsoft.EntityFrameworkCore;
using Volo.Abp.EntityFrameworkCore;
namespace Lion.AbpPro.BasicManagement.EntityFrameworkCore;
public class BasicManagementHttpApiHostMigrationsDbContext : AbpDbContext<BasicManagementHttpApiHostMigrationsDbContext>
{
public BasicManagementHttpApiHostMigrationsDbContext(DbContextOptions<BasicManagementHttpApiHostMigrationsDbContext> options)
: base(options)
{
}
protected override void OnModelCreating(ModelBuilder modelBuilder)
{
base.OnModelCreating(modelBuilder);
modelBuilder.ConfigureBasicManagement();
}
}

28
aspnet-core/modules/BasicManagement/host/Lion.AbpPro.BasicManagement.HttpApi.Host/EntityFrameworkCore/BasicManagementHttpApiHostMigrationsDbContextFactory.cs

@ -0,0 +1,28 @@
using System.IO;
using Microsoft.EntityFrameworkCore;
using Microsoft.EntityFrameworkCore.Design;
using Microsoft.Extensions.Configuration;
namespace Lion.AbpPro.BasicManagement.EntityFrameworkCore;
public class BasicManagementHttpApiHostMigrationsDbContextFactory : IDesignTimeDbContextFactory<BasicManagementHttpApiHostMigrationsDbContext>
{
public BasicManagementHttpApiHostMigrationsDbContext CreateDbContext(string[] args)
{
var configuration = BuildConfiguration();
var builder = new DbContextOptionsBuilder<BasicManagementHttpApiHostMigrationsDbContext>()
.UseMySql(configuration.GetConnectionString("Default"), MySqlServerVersion.LatestSupportedServerVersion);
return new BasicManagementHttpApiHostMigrationsDbContext(builder.Options);
}
private static IConfigurationRoot BuildConfiguration()
{
var builder = new ConfigurationBuilder()
.SetBasePath(Directory.GetCurrentDirectory())
.AddJsonFile("appsettings.json", optional: false);
return builder.Build();
}
}

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

@ -0,0 +1,3 @@
<Weavers xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="FodyWeavers.xsd">
<ConfigureAwait ContinueOnCapturedContext="false" />
</Weavers>

30
aspnet-core/modules/BasicManagement/host/Lion.AbpPro.BasicManagement.HttpApi.Host/FodyWeavers.xsd

@ -0,0 +1,30 @@
<?xml version="1.0" encoding="utf-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
<!-- This file was generated by Fody. Manual changes to this file will be lost when your project is rebuilt. -->
<xs:element name="Weavers">
<xs:complexType>
<xs:all>
<xs:element name="ConfigureAwait" minOccurs="0" maxOccurs="1">
<xs:complexType>
<xs:attribute name="ContinueOnCapturedContext" type="xs:boolean" />
</xs:complexType>
</xs:element>
</xs:all>
<xs:attribute name="VerifyAssembly" type="xs:boolean">
<xs:annotation>
<xs:documentation>'true' to run assembly verification (PEVerify) on the target assembly after all weavers have been executed.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="VerifyIgnoreCodes" type="xs:string">
<xs:annotation>
<xs:documentation>A comma-separated list of error codes that can be safely ignored in assembly verification.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="GenerateXsd" type="xs:boolean">
<xs:annotation>
<xs:documentation>'false' to turn off automatic generation of the XML Schema file.</xs:documentation>
</xs:annotation>
</xs:attribute>
</xs:complexType>
</xs:element>
</xs:schema>

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

@ -0,0 +1,43 @@
<Project Sdk="Microsoft.NET.Sdk.Web">
<PropertyGroup>
<TargetFramework>net6.0</TargetFramework>
<RootNamespace>Lion.AbpPro.BasicManagement</RootNamespace>
<PreserveCompilationReferences>true</PreserveCompilationReferences>
<UserSecretsId>Lion.AbpPro.BasicManagement-c2d31439-b723-48e2-b061-5ebd7aeb6010</UserSecretsId>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="Serilog.AspNetCore" />
<PackageReference Include="Serilog.Sinks.Async" />
<PackageReference Include="IdentityModel" />
<PackageReference Include="Microsoft.AspNetCore.Authentication.JwtBearer" />
<PackageReference Include="Microsoft.AspNetCore.DataProtection.StackExchangeRedis" />
<PackageReference Include="Microsoft.EntityFrameworkCore.Tools" />
<PackageReference Include="Volo.Abp.Autofac" />
<PackageReference Include="Volo.Abp.Caching.StackExchangeRedis" />
<PackageReference Include="Volo.Abp.AspNetCore.Mvc.UI.MultiTenancy" />
<PackageReference Include="Volo.Abp.EntityFrameworkCore.MySQL" />
<PackageReference Include="Volo.Abp.AspNetCore.Serilog" />
<PackageReference Include="Volo.Abp.Swashbuckle" />
<PackageReference Include="Volo.Abp.PermissionManagement.EntityFrameworkCore" />
<PackageReference Include="Volo.Abp.SettingManagement.EntityFrameworkCore" />
<PackageReference Include="Volo.Abp.AuditLogging.EntityFrameworkCore" />
<PackageReference Include="Volo.Abp.TenantManagement.EntityFrameworkCore" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\..\..\..\shared\Lion.AbpPro.Shared.Hosting.Microservices\Lion.AbpPro.Shared.Hosting.Microservices.csproj" />
<ProjectReference Include="..\..\src\Lion.AbpPro.BasicManagement.HttpApi\Lion.AbpPro.BasicManagement.HttpApi.csproj" />
<ProjectReference Include="..\..\src\Lion.AbpPro.BasicManagement.Application\Lion.AbpPro.BasicManagement.Application.csproj" />
<ProjectReference Include="..\..\src\Lion.AbpPro.BasicManagement.EntityFrameworkCore\Lion.AbpPro.BasicManagement.EntityFrameworkCore.csproj" />
</ItemGroup>
<ItemGroup>
<Compile Remove="Logs\**" />
<Content Remove="Logs\**" />
<EmbeddedResource Remove="Logs\**" />
<None Remove="Logs\**" />
</ItemGroup>
</Project>

876
aspnet-core/modules/BasicManagement/host/Lion.AbpPro.BasicManagement.HttpApi.Host/Logs/logs-20220823.txt

@ -0,0 +1,876 @@
2022-08-23 22:20:03.435 +08:00 [INF] Loaded ABP modules:
2022-08-23 22:20:03.463 +08:00 [INF] - Lion.AbpPro.BasicManagement.BasicManagementHttpApiHostModule
2022-08-23 22:20:03.464 +08:00 [INF] - Lion.AbpPro.BasicManagement.BasicManagementApplicationModule
2022-08-23 22:20:03.464 +08:00 [INF] - Lion.AbpPro.BasicManagement.BasicManagementDomainModule
2022-08-23 22:20:03.465 +08:00 [INF] - Volo.Abp.Domain.AbpDddDomainModule
2022-08-23 22:20:03.465 +08:00 [INF] - Volo.Abp.Auditing.AbpAuditingModule
2022-08-23 22:20:03.466 +08:00 [INF] - Volo.Abp.Data.AbpDataModule
2022-08-23 22:20:03.468 +08:00 [INF] - Volo.Abp.ObjectExtending.AbpObjectExtendingModule
2022-08-23 22:20:03.469 +08:00 [INF] - Volo.Abp.Localization.AbpLocalizationAbstractionsModule
2022-08-23 22:20:03.481 +08:00 [INF] - Volo.Abp.Validation.AbpValidationAbstractionsModule
2022-08-23 22:20:03.482 +08:00 [INF] - Volo.Abp.Uow.AbpUnitOfWorkModule
2022-08-23 22:20:03.483 +08:00 [INF] - Volo.Abp.EventBus.Abstractions.AbpEventBusAbstractionsModule
2022-08-23 22:20:03.484 +08:00 [INF] - Volo.Abp.Json.AbpJsonModule
2022-08-23 22:20:03.484 +08:00 [INF] - Volo.Abp.Timing.AbpTimingModule
2022-08-23 22:20:03.485 +08:00 [INF] - Volo.Abp.Localization.AbpLocalizationModule
2022-08-23 22:20:03.485 +08:00 [INF] - Volo.Abp.VirtualFileSystem.AbpVirtualFileSystemModule
2022-08-23 22:20:03.486 +08:00 [INF] - Volo.Abp.Settings.AbpSettingsModule
2022-08-23 22:20:03.487 +08:00 [INF] - Volo.Abp.Security.AbpSecurityModule
2022-08-23 22:20:03.487 +08:00 [INF] - Volo.Abp.MultiTenancy.AbpMultiTenancyModule
2022-08-23 22:20:03.488 +08:00 [INF] - Volo.Abp.Threading.AbpThreadingModule
2022-08-23 22:20:03.488 +08:00 [INF] - Volo.Abp.Auditing.AbpAuditingContractsModule
2022-08-23 22:20:03.489 +08:00 [INF] - Volo.Abp.EventBus.AbpEventBusModule
2022-08-23 22:20:03.490 +08:00 [INF] - Volo.Abp.Guids.AbpGuidsModule
2022-08-23 22:20:03.490 +08:00 [INF] - Volo.Abp.BackgroundWorkers.AbpBackgroundWorkersModule
2022-08-23 22:20:03.491 +08:00 [INF] - Volo.Abp.DistributedLocking.AbpDistributedLockingAbstractionsModule
2022-08-23 22:20:03.491 +08:00 [INF] - Volo.Abp.ObjectMapping.AbpObjectMappingModule
2022-08-23 22:20:03.492 +08:00 [INF] - Volo.Abp.ExceptionHandling.AbpExceptionHandlingModule
2022-08-23 22:20:03.492 +08:00 [INF] - Volo.Abp.Specifications.AbpSpecificationsModule
2022-08-23 22:20:03.493 +08:00 [INF] - Lion.AbpPro.BasicManagement.BasicManagementDomainSharedModule
2022-08-23 22:20:03.493 +08:00 [INF] - Volo.Abp.AuditLogging.AbpAuditLoggingDomainSharedModule
2022-08-23 22:20:03.494 +08:00 [INF] - Volo.Abp.BackgroundJobs.AbpBackgroundJobsDomainSharedModule
2022-08-23 22:20:03.494 +08:00 [INF] - Volo.Abp.FeatureManagement.AbpFeatureManagementDomainSharedModule
2022-08-23 22:20:03.495 +08:00 [INF] - Volo.Abp.Validation.AbpValidationModule
2022-08-23 22:20:03.496 +08:00 [INF] - Volo.Abp.Identity.AbpIdentityDomainSharedModule
2022-08-23 22:20:03.496 +08:00 [INF] - Volo.Abp.Users.AbpUsersDomainSharedModule
2022-08-23 22:20:03.497 +08:00 [INF] - Volo.Abp.Features.AbpFeaturesModule
2022-08-23 22:20:03.499 +08:00 [INF] - Volo.Abp.Authorization.AbpAuthorizationAbstractionsModule
2022-08-23 22:20:03.501 +08:00 [INF] - Volo.Abp.PermissionManagement.AbpPermissionManagementDomainSharedModule
2022-08-23 22:20:03.502 +08:00 [INF] - Volo.Abp.SettingManagement.AbpSettingManagementDomainSharedModule
2022-08-23 22:20:03.502 +08:00 [INF] - Volo.Abp.TenantManagement.AbpTenantManagementDomainSharedModule
2022-08-23 22:20:03.503 +08:00 [INF] - Volo.Abp.AuditLogging.AbpAuditLoggingDomainModule
2022-08-23 22:20:03.503 +08:00 [INF] - Volo.Abp.BackgroundJobs.AbpBackgroundJobsDomainModule
2022-08-23 22:20:03.504 +08:00 [INF] - Volo.Abp.BackgroundJobs.AbpBackgroundJobsModule
2022-08-23 22:20:03.505 +08:00 [INF] - Volo.Abp.BackgroundJobs.AbpBackgroundJobsAbstractionsModule
2022-08-23 22:20:03.505 +08:00 [INF] - Volo.Abp.AutoMapper.AbpAutoMapperModule
2022-08-23 22:20:03.506 +08:00 [INF] - Volo.Abp.FeatureManagement.AbpFeatureManagementDomainModule
2022-08-23 22:20:03.507 +08:00 [INF] - Volo.Abp.Caching.AbpCachingModule
2022-08-23 22:20:03.507 +08:00 [INF] - Volo.Abp.Serialization.AbpSerializationModule
2022-08-23 22:20:03.508 +08:00 [INF] - Volo.Abp.Identity.AbpIdentityDomainModule
2022-08-23 22:20:03.509 +08:00 [INF] - Volo.Abp.Users.AbpUsersDomainModule
2022-08-23 22:20:03.509 +08:00 [INF] - Volo.Abp.Users.AbpUsersAbstractionModule
2022-08-23 22:20:03.510 +08:00 [INF] - Volo.Abp.PermissionManagement.Identity.AbpPermissionManagementDomainIdentityModule
2022-08-23 22:20:03.510 +08:00 [INF] - Volo.Abp.PermissionManagement.AbpPermissionManagementDomainModule
2022-08-23 22:20:03.511 +08:00 [INF] - Volo.Abp.Authorization.AbpAuthorizationModule
2022-08-23 22:20:03.512 +08:00 [INF] - Volo.Abp.SettingManagement.AbpSettingManagementDomainModule
2022-08-23 22:20:03.512 +08:00 [INF] - Volo.Abp.TenantManagement.AbpTenantManagementDomainModule
2022-08-23 22:20:03.515 +08:00 [INF] - Lion.AbpPro.BasicManagement.BasicManagementApplicationContractsModule
2022-08-23 22:20:03.515 +08:00 [INF] - Volo.Abp.Application.AbpDddApplicationContractsModule
2022-08-23 22:20:03.516 +08:00 [INF] - Volo.Abp.Account.AbpAccountApplicationContractsModule
2022-08-23 22:20:03.517 +08:00 [INF] - Volo.Abp.Identity.AbpIdentityApplicationContractsModule
2022-08-23 22:20:03.517 +08:00 [INF] - Volo.Abp.PermissionManagement.AbpPermissionManagementApplicationContractsModule
2022-08-23 22:20:03.518 +08:00 [INF] - Volo.Abp.FeatureManagement.AbpFeatureManagementApplicationContractsModule
2022-08-23 22:20:03.519 +08:00 [INF] - Volo.Abp.SettingManagement.AbpSettingManagementApplicationContractsModule
2022-08-23 22:20:03.519 +08:00 [INF] - Volo.Abp.TenantManagement.AbpTenantManagementApplicationContractsModule
2022-08-23 22:20:03.520 +08:00 [INF] - Volo.Abp.Application.AbpDddApplicationModule
2022-08-23 22:20:03.520 +08:00 [INF] - Volo.Abp.Http.AbpHttpAbstractionsModule
2022-08-23 22:20:03.521 +08:00 [INF] - Volo.Abp.GlobalFeatures.AbpGlobalFeaturesModule
2022-08-23 22:20:03.521 +08:00 [INF] - Volo.Abp.Account.AbpAccountApplicationModule
2022-08-23 22:20:03.522 +08:00 [INF] - Volo.Abp.Identity.AbpIdentityApplicationModule
2022-08-23 22:20:03.523 +08:00 [INF] - Volo.Abp.PermissionManagement.AbpPermissionManagementApplicationModule
2022-08-23 22:20:03.523 +08:00 [INF] - Volo.Abp.UI.Navigation.AbpUiNavigationModule
2022-08-23 22:20:03.524 +08:00 [INF] - Volo.Abp.UI.AbpUiModule
2022-08-23 22:20:03.524 +08:00 [INF] - Volo.Abp.Emailing.AbpEmailingModule
2022-08-23 22:20:03.525 +08:00 [INF] - Volo.Abp.TextTemplating.AbpTextTemplatingModule
2022-08-23 22:20:03.526 +08:00 [INF] - Volo.Abp.TextTemplating.Scriban.AbpTextTemplatingScribanModule
2022-08-23 22:20:03.526 +08:00 [INF] - Volo.Abp.TextTemplating.AbpTextTemplatingCoreModule
2022-08-23 22:20:03.527 +08:00 [INF] - Volo.Abp.TenantManagement.AbpTenantManagementApplicationModule
2022-08-23 22:20:03.527 +08:00 [INF] - Volo.Abp.FeatureManagement.AbpFeatureManagementApplicationModule
2022-08-23 22:20:03.532 +08:00 [INF] - Volo.Abp.SettingManagement.AbpSettingManagementApplicationModule
2022-08-23 22:20:03.533 +08:00 [INF] - Lion.AbpPro.BasicManagement.EntityFrameworkCore.BasicManagementEntityFrameworkCoreModule
2022-08-23 22:20:03.533 +08:00 [INF] - Volo.Abp.EntityFrameworkCore.AbpEntityFrameworkCoreModule
2022-08-23 22:20:03.534 +08:00 [INF] - Volo.Abp.Identity.EntityFrameworkCore.AbpIdentityEntityFrameworkCoreModule
2022-08-23 22:20:03.534 +08:00 [INF] - Volo.Abp.Users.EntityFrameworkCore.AbpUsersEntityFrameworkCoreModule
2022-08-23 22:20:03.535 +08:00 [INF] - Volo.Abp.PermissionManagement.EntityFrameworkCore.AbpPermissionManagementEntityFrameworkCoreModule
2022-08-23 22:20:03.536 +08:00 [INF] - Volo.Abp.SettingManagement.EntityFrameworkCore.AbpSettingManagementEntityFrameworkCoreModule
2022-08-23 22:20:03.536 +08:00 [INF] - Volo.Abp.BackgroundJobs.EntityFrameworkCore.AbpBackgroundJobsEntityFrameworkCoreModule
2022-08-23 22:20:03.537 +08:00 [INF] - Volo.Abp.AuditLogging.EntityFrameworkCore.AbpAuditLoggingEntityFrameworkCoreModule
2022-08-23 22:20:03.537 +08:00 [INF] - Volo.Abp.TenantManagement.EntityFrameworkCore.AbpTenantManagementEntityFrameworkCoreModule
2022-08-23 22:20:03.538 +08:00 [INF] - Volo.Abp.FeatureManagement.EntityFrameworkCore.AbpFeatureManagementEntityFrameworkCoreModule
2022-08-23 22:20:03.539 +08:00 [INF] - Lion.AbpPro.BasicManagement.BasicManagementHttpApiModule
2022-08-23 22:20:03.539 +08:00 [INF] - Volo.Abp.AspNetCore.Mvc.AbpAspNetCoreMvcModule
2022-08-23 22:20:03.540 +08:00 [INF] - Volo.Abp.AspNetCore.AbpAspNetCoreModule
2022-08-23 22:20:03.540 +08:00 [INF] - Volo.Abp.Http.AbpHttpModule
2022-08-23 22:20:03.541 +08:00 [INF] - Volo.Abp.Minify.AbpMinifyModule
2022-08-23 22:20:03.541 +08:00 [INF] - Volo.Abp.ApiVersioning.AbpApiVersioningAbstractionsModule
2022-08-23 22:20:03.542 +08:00 [INF] - Volo.Abp.AspNetCore.Mvc.AbpAspNetCoreMvcContractsModule
2022-08-23 22:20:03.543 +08:00 [INF] - Volo.Abp.AspNetCore.Mvc.UI.MultiTenancy.AbpAspNetCoreMvcUiMultiTenancyModule
2022-08-23 22:20:03.546 +08:00 [INF] - Volo.Abp.AspNetCore.Mvc.UI.Theme.Shared.AbpAspNetCoreMvcUiThemeSharedModule
2022-08-23 22:20:03.547 +08:00 [INF] - Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.AbpAspNetCoreMvcUiBootstrapModule
2022-08-23 22:20:03.547 +08:00 [INF] - Volo.Abp.AspNetCore.Mvc.UI.AbpAspNetCoreMvcUiModule
2022-08-23 22:20:03.548 +08:00 [INF] - Volo.Abp.AspNetCore.Mvc.UI.Packages.AbpAspNetCoreMvcUiPackagesModule
2022-08-23 22:20:03.549 +08:00 [INF] - Volo.Abp.AspNetCore.Mvc.UI.Bundling.AbpAspNetCoreMvcUiBundlingAbstractionsModule
2022-08-23 22:20:03.549 +08:00 [INF] - Volo.Abp.AspNetCore.Mvc.UI.Widgets.AbpAspNetCoreMvcUiWidgetsModule
2022-08-23 22:20:03.550 +08:00 [INF] - Volo.Abp.AspNetCore.Mvc.UI.Bundling.AbpAspNetCoreMvcUiBundlingModule
2022-08-23 22:20:03.551 +08:00 [INF] - Volo.Abp.AspNetCore.MultiTenancy.AbpAspNetCoreMultiTenancyModule
2022-08-23 22:20:03.551 +08:00 [INF] - Volo.Abp.Autofac.AbpAutofacModule
2022-08-23 22:20:03.552 +08:00 [INF] - Volo.Abp.Castle.AbpCastleCoreModule
2022-08-23 22:20:03.553 +08:00 [INF] - Volo.Abp.Caching.StackExchangeRedis.AbpCachingStackExchangeRedisModule
2022-08-23 22:20:03.553 +08:00 [INF] - Volo.Abp.EntityFrameworkCore.MySQL.AbpEntityFrameworkCoreMySQLModule
2022-08-23 22:20:03.554 +08:00 [INF] - Volo.Abp.AspNetCore.Serilog.AbpAspNetCoreSerilogModule
2022-08-23 22:20:03.554 +08:00 [INF] - Volo.Abp.Swashbuckle.AbpSwashbuckleModule
2022-08-23 22:20:03.555 +08:00 [INF] - Lion.AbpPro.Shared.Hosting.Microservices.SharedHostingMicroserviceModule
2022-08-23 22:20:04.009 +08:00 [INF] Initialized all ABP modules.
2022-08-23 22:20:04.060 +08:00 [INF] Now listening on: http://localhost:44324
2022-08-23 22:20:04.062 +08:00 [INF] Application started. Press Ctrl+C to shut down.
2022-08-23 22:20:04.064 +08:00 [INF] Hosting environment: Development
2022-08-23 22:20:04.065 +08:00 [INF] Content root path: D:\github\WangJunZzz\abp-vnext-pro\aspnet-core\modules\BasicManagement\host\Lion.AbpPro.BasicManagement.HttpApi.Host
2022-08-23 22:20:04.402 +08:00 [INF] Request starting HTTP/1.1 GET http://localhost:44324/ - -
2022-08-23 22:20:04.409 +08:00 [WRN] Failed to determine the https port for redirect.
2022-08-23 22:20:05.138 +08:00 [ERR] Connection id "0HMK52A99DPT6", Request id "0HMK52A99DPT6:00000002": An unhandled exception was thrown by the application.
Autofac.Core.DependencyResolutionException: An exception was thrown while activating Volo.Abp.AspNetCore.MultiTenancy.MultiTenancyMiddleware -> Volo.Abp.MultiTenancy.TenantConfigurationProvider -> Volo.Abp.TenantManagement.TenantStore -> Volo.Abp.ObjectMapping.DefaultObjectMapper`1[[Volo.Abp.TenantManagement.AbpTenantManagementDomainModule, Volo.Abp.TenantManagement.Domain, Version=5.3.2.0, Culture=neutral, PublicKeyToken=null]] -> Volo.Abp.AutoMapper.AutoMapperAutoObjectMappingProvider`1[[Volo.Abp.TenantManagement.AbpTenantManagementDomainModule, Volo.Abp.TenantManagement.Domain, Version=5.3.2.0, Culture=neutral, PublicKeyToken=null]] -> λ:Volo.Abp.AutoMapper.IMapperAccessor -> λ:Volo.Abp.AutoMapper.MapperAccessor.
---> AutoMapper.AutoMapperConfigurationException:
Unmapped members were found. Review the types and members below.
Add a custom mapping expression, ignore, add a custom resolver, or modify the source/destination type
For no matching constructor, add a no-arg ctor, add optional arguments, or map all of the constructor parameters
=====================================================================================
IdentityUser -> LoginOutput (Destination member list)
Volo.Abp.Identity.IdentityUser -> Lion.AbpPro.BasicManagement.Users.Dtos.LoginOutput (Destination member list)
Unmapped properties:
Token
at Volo.Abp.AutoMapper.AbpAutoMapperModule.<>c__DisplayClass2_1.<CreateMappings>g__ValidateAll|2(IConfigurationProvider config)
at Volo.Abp.AutoMapper.AbpAutoMapperModule.CreateMappings(IServiceProvider serviceProvider)
at Autofac.Extensions.DependencyInjection.AutofacRegistration.<>c__DisplayClass3_0.<Register>b__0(IComponentContext context, IEnumerable`1 parameters)
at Autofac.Core.Activators.Delegate.DelegateActivator.ActivateInstance(IComponentContext context, IEnumerable`1 parameters)
at Autofac.Core.Activators.Delegate.DelegateActivator.<ConfigurePipeline>b__2_0(ResolveRequestContext ctxt, Action`1 next)
at Autofac.Core.Resolving.Middleware.DelegateMiddleware.Execute(ResolveRequestContext context, Action`1 next)
at Autofac.Core.Resolving.Pipeline.ResolvePipelineBuilder.<>c__DisplayClass14_0.<BuildPipeline>b__1(ResolveRequestContext ctxt)
at Autofac.Core.Resolving.Middleware.DisposalTrackingMiddleware.Execute(ResolveRequestContext context, Action`1 next)
at Autofac.Core.Resolving.Pipeline.ResolvePipelineBuilder.<>c__DisplayClass14_0.<BuildPipeline>b__1(ResolveRequestContext ctxt)
at Autofac.Core.Resolving.Middleware.ActivatorErrorHandlingMiddleware.Execute(ResolveRequestContext context, Action`1 next)
--- End of inner exception stack trace ---
at Autofac.Core.Resolving.Middleware.ActivatorErrorHandlingMiddleware.Execute(ResolveRequestContext context, Action`1 next)
at Autofac.Core.Resolving.Pipeline.ResolvePipelineBuilder.<>c__DisplayClass14_0.<BuildPipeline>b__1(ResolveRequestContext ctxt)
at Autofac.Core.Pipeline.ResolvePipeline.Invoke(ResolveRequestContext ctxt)
at Autofac.Core.Resolving.Middleware.RegistrationPipelineInvokeMiddleware.Execute(ResolveRequestContext context, Action`1 next)
at Autofac.Core.Resolving.Pipeline.ResolvePipelineBuilder.<>c__DisplayClass14_0.<BuildPipeline>b__1(ResolveRequestContext ctxt)
at Autofac.Core.Resolving.Middleware.SharingMiddleware.Execute(ResolveRequestContext context, Action`1 next)
at Autofac.Core.Resolving.Pipeline.ResolvePipelineBuilder.<>c__DisplayClass14_0.<BuildPipeline>b__1(ResolveRequestContext ctxt)
at Autofac.Core.Resolving.Middleware.ScopeSelectionMiddleware.Execute(ResolveRequestContext context, Action`1 next)
at Autofac.Core.Resolving.Pipeline.ResolvePipelineBuilder.<>c__DisplayClass14_0.<BuildPipeline>b__1(ResolveRequestContext ctxt)
at Autofac.Core.Resolving.Middleware.CircularDependencyDetectorMiddleware.Execute(ResolveRequestContext context, Action`1 next)
at Autofac.Core.Resolving.Pipeline.ResolvePipelineBuilder.<>c__DisplayClass14_0.<BuildPipeline>b__1(ResolveRequestContext ctxt)
at Autofac.Core.Pipeline.ResolvePipeline.Invoke(ResolveRequestContext ctxt)
at Autofac.Core.Resolving.ResolveOperation.GetOrCreateInstance(ISharingLifetimeScope currentOperationScope, ResolveRequest request)
at Autofac.Core.Resolving.ResolveOperation.ExecuteOperation(ResolveRequest request)
at Autofac.Core.Resolving.ResolveOperation.Execute(ResolveRequest request)
at Autofac.Core.Lifetime.LifetimeScope.ResolveComponent(ResolveRequest request)
at Autofac.ResolutionExtensions.TryResolveService(IComponentContext context, Service service, IEnumerable`1 parameters, Object& instance)
at Autofac.ResolutionExtensions.ResolveService(IComponentContext context, Service service, IEnumerable`1 parameters)
at Autofac.ResolutionExtensions.Resolve(IComponentContext context, Type serviceType, IEnumerable`1 parameters)
at Autofac.ResolutionExtensions.Resolve(IComponentContext context, Type serviceType)
at Autofac.Extensions.DependencyInjection.AutofacServiceProvider.GetRequiredService(Type serviceType)
at Microsoft.Extensions.DependencyInjection.ServiceProviderServiceExtensions.GetRequiredService(IServiceProvider provider, Type serviceType)
at Microsoft.AspNetCore.Http.MiddlewareFactory.Create(Type middlewareType)
at Microsoft.AspNetCore.Builder.UseMiddlewareExtensions.<>c__DisplayClass6_1.<<UseMiddlewareInterface>b__1>d.MoveNext()
--- End of stack trace from previous location ---
at Microsoft.AspNetCore.Authentication.AuthenticationMiddleware.Invoke(HttpContext context)
at Volo.Abp.AspNetCore.Tracing.AbpCorrelationIdMiddleware.InvokeAsync(HttpContext context, RequestDelegate next)
at Microsoft.AspNetCore.Builder.UseMiddlewareExtensions.<>c__DisplayClass6_1.<<UseMiddlewareInterface>b__1>d.MoveNext()
--- End of stack trace from previous location ---
at Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Http.HttpProtocol.ProcessRequests[TContext](IHttpApplication`1 application)
2022-08-23 22:20:05.306 +08:00 [INF] Request finished HTTP/1.1 GET http://localhost:44324/ - - - 500 0 - 904.5064ms
2022-08-23 22:20:08.779 +08:00 [ERR] An exception was thrown while activating Volo.Abp.BackgroundJobs.BackgroundJobStore -> Volo.Abp.ObjectMapping.DefaultObjectMapper`1[[Volo.Abp.BackgroundJobs.AbpBackgroundJobsDomainModule, Volo.Abp.BackgroundJobs.Domain, Version=5.3.2.0, Culture=neutral, PublicKeyToken=null]] -> Volo.Abp.AutoMapper.AutoMapperAutoObjectMappingProvider`1[[Volo.Abp.BackgroundJobs.AbpBackgroundJobsDomainModule, Volo.Abp.BackgroundJobs.Domain, Version=5.3.2.0, Culture=neutral, PublicKeyToken=null]] -> λ:Volo.Abp.AutoMapper.IMapperAccessor -> λ:Volo.Abp.AutoMapper.MapperAccessor.
Autofac.Core.DependencyResolutionException: An exception was thrown while activating Volo.Abp.BackgroundJobs.BackgroundJobStore -> Volo.Abp.ObjectMapping.DefaultObjectMapper`1[[Volo.Abp.BackgroundJobs.AbpBackgroundJobsDomainModule, Volo.Abp.BackgroundJobs.Domain, Version=5.3.2.0, Culture=neutral, PublicKeyToken=null]] -> Volo.Abp.AutoMapper.AutoMapperAutoObjectMappingProvider`1[[Volo.Abp.BackgroundJobs.AbpBackgroundJobsDomainModule, Volo.Abp.BackgroundJobs.Domain, Version=5.3.2.0, Culture=neutral, PublicKeyToken=null]] -> λ:Volo.Abp.AutoMapper.IMapperAccessor -> λ:Volo.Abp.AutoMapper.MapperAccessor.
---> AutoMapper.AutoMapperConfigurationException:
Unmapped members were found. Review the types and members below.
Add a custom mapping expression, ignore, add a custom resolver, or modify the source/destination type
For no matching constructor, add a no-arg ctor, add optional arguments, or map all of the constructor parameters
=====================================================================================
IdentityUser -> LoginOutput (Destination member list)
Volo.Abp.Identity.IdentityUser -> Lion.AbpPro.BasicManagement.Users.Dtos.LoginOutput (Destination member list)
Unmapped properties:
Token
at Volo.Abp.AutoMapper.AbpAutoMapperModule.<>c__DisplayClass2_1.<CreateMappings>g__ValidateAll|2(IConfigurationProvider config)
at Volo.Abp.AutoMapper.AbpAutoMapperModule.CreateMappings(IServiceProvider serviceProvider)
at Autofac.Extensions.DependencyInjection.AutofacRegistration.<>c__DisplayClass3_0.<Register>b__0(IComponentContext context, IEnumerable`1 parameters)
at Autofac.Core.Activators.Delegate.DelegateActivator.ActivateInstance(IComponentContext context, IEnumerable`1 parameters)
at Autofac.Core.Activators.Delegate.DelegateActivator.<ConfigurePipeline>b__2_0(ResolveRequestContext ctxt, Action`1 next)
at Autofac.Core.Resolving.Middleware.DelegateMiddleware.Execute(ResolveRequestContext context, Action`1 next)
at Autofac.Core.Resolving.Pipeline.ResolvePipelineBuilder.<>c__DisplayClass14_0.<BuildPipeline>b__1(ResolveRequestContext ctxt)
at Autofac.Core.Resolving.Middleware.DisposalTrackingMiddleware.Execute(ResolveRequestContext context, Action`1 next)
at Autofac.Core.Resolving.Pipeline.ResolvePipelineBuilder.<>c__DisplayClass14_0.<BuildPipeline>b__1(ResolveRequestContext ctxt)
at Autofac.Core.Resolving.Middleware.ActivatorErrorHandlingMiddleware.Execute(ResolveRequestContext context, Action`1 next)
--- End of inner exception stack trace ---
at Autofac.Core.Resolving.Middleware.ActivatorErrorHandlingMiddleware.Execute(ResolveRequestContext context, Action`1 next)
at Autofac.Core.Resolving.Pipeline.ResolvePipelineBuilder.<>c__DisplayClass14_0.<BuildPipeline>b__1(ResolveRequestContext ctxt)
at Autofac.Core.Pipeline.ResolvePipeline.Invoke(ResolveRequestContext ctxt)
at Autofac.Core.Resolving.Middleware.RegistrationPipelineInvokeMiddleware.Execute(ResolveRequestContext context, Action`1 next)
at Autofac.Core.Resolving.Pipeline.ResolvePipelineBuilder.<>c__DisplayClass14_0.<BuildPipeline>b__1(ResolveRequestContext ctxt)
at Autofac.Core.Resolving.Middleware.SharingMiddleware.Execute(ResolveRequestContext context, Action`1 next)
at Autofac.Core.Resolving.Pipeline.ResolvePipelineBuilder.<>c__DisplayClass14_0.<BuildPipeline>b__1(ResolveRequestContext ctxt)
at Autofac.Core.Resolving.Middleware.ScopeSelectionMiddleware.Execute(ResolveRequestContext context, Action`1 next)
at Autofac.Core.Resolving.Pipeline.ResolvePipelineBuilder.<>c__DisplayClass14_0.<BuildPipeline>b__1(ResolveRequestContext ctxt)
at Autofac.Core.Resolving.Middleware.CircularDependencyDetectorMiddleware.Execute(ResolveRequestContext context, Action`1 next)
at Autofac.Core.Resolving.Pipeline.ResolvePipelineBuilder.<>c__DisplayClass14_0.<BuildPipeline>b__1(ResolveRequestContext ctxt)
at Autofac.Core.Pipeline.ResolvePipeline.Invoke(ResolveRequestContext ctxt)
at Autofac.Core.Resolving.ResolveOperation.GetOrCreateInstance(ISharingLifetimeScope currentOperationScope, ResolveRequest request)
at Autofac.Core.Resolving.ResolveOperation.ExecuteOperation(ResolveRequest request)
at Autofac.Core.Resolving.ResolveOperation.Execute(ResolveRequest request)
at Autofac.Core.Lifetime.LifetimeScope.ResolveComponent(ResolveRequest request)
at Autofac.ResolutionExtensions.TryResolveService(IComponentContext context, Service service, IEnumerable`1 parameters, Object& instance)
at Autofac.ResolutionExtensions.ResolveService(IComponentContext context, Service service, IEnumerable`1 parameters)
at Autofac.ResolutionExtensions.Resolve(IComponentContext context, Type serviceType, IEnumerable`1 parameters)
at Autofac.ResolutionExtensions.Resolve(IComponentContext context, Type serviceType)
at Autofac.Extensions.DependencyInjection.AutofacServiceProvider.GetRequiredService(Type serviceType)
at Microsoft.Extensions.DependencyInjection.ServiceProviderServiceExtensions.GetRequiredService(IServiceProvider provider, Type serviceType)
at Microsoft.Extensions.DependencyInjection.ServiceProviderServiceExtensions.GetRequiredService[T](IServiceProvider provider)
at Volo.Abp.BackgroundJobs.BackgroundJobWorker.DoWorkAsync(PeriodicBackgroundWorkerContext workerContext)
at Volo.Abp.BackgroundJobs.BackgroundJobWorker.DoWorkAsync(PeriodicBackgroundWorkerContext workerContext)
at Volo.Abp.BackgroundWorkers.AsyncPeriodicBackgroundWorkerBase.DoWorkAsync()
2022-08-23 22:20:08.803 +08:00 [ERR] ---------- Exception Data ----------
ActivatorChain = Volo.Abp.BackgroundJobs.BackgroundJobStore -> Volo.Abp.ObjectMapping.DefaultObjectMapper`1[[Volo.Abp.BackgroundJobs.AbpBackgroundJobsDomainModule, Volo.Abp.BackgroundJobs.Domain, Version=5.3.2.0, Culture=neutral, PublicKeyToken=null]] -> Volo.Abp.AutoMapper.AutoMapperAutoObjectMappingProvider`1[[Volo.Abp.BackgroundJobs.AbpBackgroundJobsDomainModule, Volo.Abp.BackgroundJobs.Domain, Version=5.3.2.0, Culture=neutral, PublicKeyToken=null]] -> λ:Volo.Abp.AutoMapper.IMapperAccessor -> λ:Volo.Abp.AutoMapper.MapperAccessor
2022-08-23 22:20:13.839 +08:00 [ERR] An exception was thrown while activating Volo.Abp.BackgroundJobs.BackgroundJobStore -> Volo.Abp.ObjectMapping.DefaultObjectMapper`1[[Volo.Abp.BackgroundJobs.AbpBackgroundJobsDomainModule, Volo.Abp.BackgroundJobs.Domain, Version=5.3.2.0, Culture=neutral, PublicKeyToken=null]] -> Volo.Abp.AutoMapper.AutoMapperAutoObjectMappingProvider`1[[Volo.Abp.BackgroundJobs.AbpBackgroundJobsDomainModule, Volo.Abp.BackgroundJobs.Domain, Version=5.3.2.0, Culture=neutral, PublicKeyToken=null]] -> λ:Volo.Abp.AutoMapper.IMapperAccessor -> λ:Volo.Abp.AutoMapper.MapperAccessor.
Autofac.Core.DependencyResolutionException: An exception was thrown while activating Volo.Abp.BackgroundJobs.BackgroundJobStore -> Volo.Abp.ObjectMapping.DefaultObjectMapper`1[[Volo.Abp.BackgroundJobs.AbpBackgroundJobsDomainModule, Volo.Abp.BackgroundJobs.Domain, Version=5.3.2.0, Culture=neutral, PublicKeyToken=null]] -> Volo.Abp.AutoMapper.AutoMapperAutoObjectMappingProvider`1[[Volo.Abp.BackgroundJobs.AbpBackgroundJobsDomainModule, Volo.Abp.BackgroundJobs.Domain, Version=5.3.2.0, Culture=neutral, PublicKeyToken=null]] -> λ:Volo.Abp.AutoMapper.IMapperAccessor -> λ:Volo.Abp.AutoMapper.MapperAccessor.
---> AutoMapper.AutoMapperConfigurationException:
Unmapped members were found. Review the types and members below.
Add a custom mapping expression, ignore, add a custom resolver, or modify the source/destination type
For no matching constructor, add a no-arg ctor, add optional arguments, or map all of the constructor parameters
=====================================================================================
IdentityUser -> LoginOutput (Destination member list)
Volo.Abp.Identity.IdentityUser -> Lion.AbpPro.BasicManagement.Users.Dtos.LoginOutput (Destination member list)
Unmapped properties:
Token
at Volo.Abp.AutoMapper.AbpAutoMapperModule.<>c__DisplayClass2_1.<CreateMappings>g__ValidateAll|2(IConfigurationProvider config)
at Volo.Abp.AutoMapper.AbpAutoMapperModule.CreateMappings(IServiceProvider serviceProvider)
at Autofac.Extensions.DependencyInjection.AutofacRegistration.<>c__DisplayClass3_0.<Register>b__0(IComponentContext context, IEnumerable`1 parameters)
at Autofac.Core.Activators.Delegate.DelegateActivator.ActivateInstance(IComponentContext context, IEnumerable`1 parameters)
at Autofac.Core.Activators.Delegate.DelegateActivator.<ConfigurePipeline>b__2_0(ResolveRequestContext ctxt, Action`1 next)
at Autofac.Core.Resolving.Middleware.DelegateMiddleware.Execute(ResolveRequestContext context, Action`1 next)
at Autofac.Core.Resolving.Pipeline.ResolvePipelineBuilder.<>c__DisplayClass14_0.<BuildPipeline>b__1(ResolveRequestContext ctxt)
at Autofac.Core.Resolving.Middleware.DisposalTrackingMiddleware.Execute(ResolveRequestContext context, Action`1 next)
at Autofac.Core.Resolving.Pipeline.ResolvePipelineBuilder.<>c__DisplayClass14_0.<BuildPipeline>b__1(ResolveRequestContext ctxt)
at Autofac.Core.Resolving.Middleware.ActivatorErrorHandlingMiddleware.Execute(ResolveRequestContext context, Action`1 next)
--- End of inner exception stack trace ---
at Autofac.Core.Resolving.Middleware.ActivatorErrorHandlingMiddleware.Execute(ResolveRequestContext context, Action`1 next)
at Autofac.Core.Resolving.Pipeline.ResolvePipelineBuilder.<>c__DisplayClass14_0.<BuildPipeline>b__1(ResolveRequestContext ctxt)
at Autofac.Core.Pipeline.ResolvePipeline.Invoke(ResolveRequestContext ctxt)
at Autofac.Core.Resolving.Middleware.RegistrationPipelineInvokeMiddleware.Execute(ResolveRequestContext context, Action`1 next)
at Autofac.Core.Resolving.Pipeline.ResolvePipelineBuilder.<>c__DisplayClass14_0.<BuildPipeline>b__1(ResolveRequestContext ctxt)
at Autofac.Core.Resolving.Middleware.SharingMiddleware.Execute(ResolveRequestContext context, Action`1 next)
at Autofac.Core.Resolving.Pipeline.ResolvePipelineBuilder.<>c__DisplayClass14_0.<BuildPipeline>b__1(ResolveRequestContext ctxt)
at Autofac.Core.Resolving.Middleware.ScopeSelectionMiddleware.Execute(ResolveRequestContext context, Action`1 next)
at Autofac.Core.Resolving.Pipeline.ResolvePipelineBuilder.<>c__DisplayClass14_0.<BuildPipeline>b__1(ResolveRequestContext ctxt)
at Autofac.Core.Resolving.Middleware.CircularDependencyDetectorMiddleware.Execute(ResolveRequestContext context, Action`1 next)
at Autofac.Core.Resolving.Pipeline.ResolvePipelineBuilder.<>c__DisplayClass14_0.<BuildPipeline>b__1(ResolveRequestContext ctxt)
at Autofac.Core.Pipeline.ResolvePipeline.Invoke(ResolveRequestContext ctxt)
at Autofac.Core.Resolving.ResolveOperation.GetOrCreateInstance(ISharingLifetimeScope currentOperationScope, ResolveRequest request)
at Autofac.Core.Resolving.ResolveOperation.ExecuteOperation(ResolveRequest request)
at Autofac.Core.Resolving.ResolveOperation.Execute(ResolveRequest request)
at Autofac.Core.Lifetime.LifetimeScope.ResolveComponent(ResolveRequest request)
at Autofac.ResolutionExtensions.TryResolveService(IComponentContext context, Service service, IEnumerable`1 parameters, Object& instance)
at Autofac.ResolutionExtensions.ResolveService(IComponentContext context, Service service, IEnumerable`1 parameters)
at Autofac.ResolutionExtensions.Resolve(IComponentContext context, Type serviceType, IEnumerable`1 parameters)
at Autofac.ResolutionExtensions.Resolve(IComponentContext context, Type serviceType)
at Autofac.Extensions.DependencyInjection.AutofacServiceProvider.GetRequiredService(Type serviceType)
at Microsoft.Extensions.DependencyInjection.ServiceProviderServiceExtensions.GetRequiredService(IServiceProvider provider, Type serviceType)
at Microsoft.Extensions.DependencyInjection.ServiceProviderServiceExtensions.GetRequiredService[T](IServiceProvider provider)
at Volo.Abp.BackgroundJobs.BackgroundJobWorker.DoWorkAsync(PeriodicBackgroundWorkerContext workerContext)
at Volo.Abp.BackgroundJobs.BackgroundJobWorker.DoWorkAsync(PeriodicBackgroundWorkerContext workerContext)
at Volo.Abp.BackgroundWorkers.AsyncPeriodicBackgroundWorkerBase.DoWorkAsync()
2022-08-23 22:20:13.865 +08:00 [ERR] ---------- Exception Data ----------
ActivatorChain = Volo.Abp.BackgroundJobs.BackgroundJobStore -> Volo.Abp.ObjectMapping.DefaultObjectMapper`1[[Volo.Abp.BackgroundJobs.AbpBackgroundJobsDomainModule, Volo.Abp.BackgroundJobs.Domain, Version=5.3.2.0, Culture=neutral, PublicKeyToken=null]] -> Volo.Abp.AutoMapper.AutoMapperAutoObjectMappingProvider`1[[Volo.Abp.BackgroundJobs.AbpBackgroundJobsDomainModule, Volo.Abp.BackgroundJobs.Domain, Version=5.3.2.0, Culture=neutral, PublicKeyToken=null]] -> λ:Volo.Abp.AutoMapper.IMapperAccessor -> λ:Volo.Abp.AutoMapper.MapperAccessor
2022-08-23 22:20:18.884 +08:00 [ERR] An exception was thrown while activating Volo.Abp.BackgroundJobs.BackgroundJobStore -> Volo.Abp.ObjectMapping.DefaultObjectMapper`1[[Volo.Abp.BackgroundJobs.AbpBackgroundJobsDomainModule, Volo.Abp.BackgroundJobs.Domain, Version=5.3.2.0, Culture=neutral, PublicKeyToken=null]] -> Volo.Abp.AutoMapper.AutoMapperAutoObjectMappingProvider`1[[Volo.Abp.BackgroundJobs.AbpBackgroundJobsDomainModule, Volo.Abp.BackgroundJobs.Domain, Version=5.3.2.0, Culture=neutral, PublicKeyToken=null]] -> λ:Volo.Abp.AutoMapper.IMapperAccessor -> λ:Volo.Abp.AutoMapper.MapperAccessor.
Autofac.Core.DependencyResolutionException: An exception was thrown while activating Volo.Abp.BackgroundJobs.BackgroundJobStore -> Volo.Abp.ObjectMapping.DefaultObjectMapper`1[[Volo.Abp.BackgroundJobs.AbpBackgroundJobsDomainModule, Volo.Abp.BackgroundJobs.Domain, Version=5.3.2.0, Culture=neutral, PublicKeyToken=null]] -> Volo.Abp.AutoMapper.AutoMapperAutoObjectMappingProvider`1[[Volo.Abp.BackgroundJobs.AbpBackgroundJobsDomainModule, Volo.Abp.BackgroundJobs.Domain, Version=5.3.2.0, Culture=neutral, PublicKeyToken=null]] -> λ:Volo.Abp.AutoMapper.IMapperAccessor -> λ:Volo.Abp.AutoMapper.MapperAccessor.
---> AutoMapper.AutoMapperConfigurationException:
Unmapped members were found. Review the types and members below.
Add a custom mapping expression, ignore, add a custom resolver, or modify the source/destination type
For no matching constructor, add a no-arg ctor, add optional arguments, or map all of the constructor parameters
=====================================================================================
IdentityUser -> LoginOutput (Destination member list)
Volo.Abp.Identity.IdentityUser -> Lion.AbpPro.BasicManagement.Users.Dtos.LoginOutput (Destination member list)
Unmapped properties:
Token
at Volo.Abp.AutoMapper.AbpAutoMapperModule.<>c__DisplayClass2_1.<CreateMappings>g__ValidateAll|2(IConfigurationProvider config)
at Volo.Abp.AutoMapper.AbpAutoMapperModule.CreateMappings(IServiceProvider serviceProvider)
at Autofac.Extensions.DependencyInjection.AutofacRegistration.<>c__DisplayClass3_0.<Register>b__0(IComponentContext context, IEnumerable`1 parameters)
at Autofac.Core.Activators.Delegate.DelegateActivator.ActivateInstance(IComponentContext context, IEnumerable`1 parameters)
at Autofac.Core.Activators.Delegate.DelegateActivator.<ConfigurePipeline>b__2_0(ResolveRequestContext ctxt, Action`1 next)
at Autofac.Core.Resolving.Middleware.DelegateMiddleware.Execute(ResolveRequestContext context, Action`1 next)
at Autofac.Core.Resolving.Pipeline.ResolvePipelineBuilder.<>c__DisplayClass14_0.<BuildPipeline>b__1(ResolveRequestContext ctxt)
at Autofac.Core.Resolving.Middleware.DisposalTrackingMiddleware.Execute(ResolveRequestContext context, Action`1 next)
at Autofac.Core.Resolving.Pipeline.ResolvePipelineBuilder.<>c__DisplayClass14_0.<BuildPipeline>b__1(ResolveRequestContext ctxt)
at Autofac.Core.Resolving.Middleware.ActivatorErrorHandlingMiddleware.Execute(ResolveRequestContext context, Action`1 next)
--- End of inner exception stack trace ---
at Autofac.Core.Resolving.Middleware.ActivatorErrorHandlingMiddleware.Execute(ResolveRequestContext context, Action`1 next)
at Autofac.Core.Resolving.Pipeline.ResolvePipelineBuilder.<>c__DisplayClass14_0.<BuildPipeline>b__1(ResolveRequestContext ctxt)
at Autofac.Core.Pipeline.ResolvePipeline.Invoke(ResolveRequestContext ctxt)
at Autofac.Core.Resolving.Middleware.RegistrationPipelineInvokeMiddleware.Execute(ResolveRequestContext context, Action`1 next)
at Autofac.Core.Resolving.Pipeline.ResolvePipelineBuilder.<>c__DisplayClass14_0.<BuildPipeline>b__1(ResolveRequestContext ctxt)
at Autofac.Core.Resolving.Middleware.SharingMiddleware.Execute(ResolveRequestContext context, Action`1 next)
at Autofac.Core.Resolving.Pipeline.ResolvePipelineBuilder.<>c__DisplayClass14_0.<BuildPipeline>b__1(ResolveRequestContext ctxt)
at Autofac.Core.Resolving.Middleware.ScopeSelectionMiddleware.Execute(ResolveRequestContext context, Action`1 next)
at Autofac.Core.Resolving.Pipeline.ResolvePipelineBuilder.<>c__DisplayClass14_0.<BuildPipeline>b__1(ResolveRequestContext ctxt)
at Autofac.Core.Resolving.Middleware.CircularDependencyDetectorMiddleware.Execute(ResolveRequestContext context, Action`1 next)
at Autofac.Core.Resolving.Pipeline.ResolvePipelineBuilder.<>c__DisplayClass14_0.<BuildPipeline>b__1(ResolveRequestContext ctxt)
at Autofac.Core.Pipeline.ResolvePipeline.Invoke(ResolveRequestContext ctxt)
at Autofac.Core.Resolving.ResolveOperation.GetOrCreateInstance(ISharingLifetimeScope currentOperationScope, ResolveRequest request)
at Autofac.Core.Resolving.ResolveOperation.ExecuteOperation(ResolveRequest request)
at Autofac.Core.Resolving.ResolveOperation.Execute(ResolveRequest request)
at Autofac.Core.Lifetime.LifetimeScope.ResolveComponent(ResolveRequest request)
at Autofac.ResolutionExtensions.TryResolveService(IComponentContext context, Service service, IEnumerable`1 parameters, Object& instance)
at Autofac.ResolutionExtensions.ResolveService(IComponentContext context, Service service, IEnumerable`1 parameters)
at Autofac.ResolutionExtensions.Resolve(IComponentContext context, Type serviceType, IEnumerable`1 parameters)
at Autofac.ResolutionExtensions.Resolve(IComponentContext context, Type serviceType)
at Autofac.Extensions.DependencyInjection.AutofacServiceProvider.GetRequiredService(Type serviceType)
at Microsoft.Extensions.DependencyInjection.ServiceProviderServiceExtensions.GetRequiredService(IServiceProvider provider, Type serviceType)
at Microsoft.Extensions.DependencyInjection.ServiceProviderServiceExtensions.GetRequiredService[T](IServiceProvider provider)
at Volo.Abp.BackgroundJobs.BackgroundJobWorker.DoWorkAsync(PeriodicBackgroundWorkerContext workerContext)
at Volo.Abp.BackgroundJobs.BackgroundJobWorker.DoWorkAsync(PeriodicBackgroundWorkerContext workerContext)
at Volo.Abp.BackgroundWorkers.AsyncPeriodicBackgroundWorkerBase.DoWorkAsync()
2022-08-23 22:20:18.910 +08:00 [ERR] ---------- Exception Data ----------
ActivatorChain = Volo.Abp.BackgroundJobs.BackgroundJobStore -> Volo.Abp.ObjectMapping.DefaultObjectMapper`1[[Volo.Abp.BackgroundJobs.AbpBackgroundJobsDomainModule, Volo.Abp.BackgroundJobs.Domain, Version=5.3.2.0, Culture=neutral, PublicKeyToken=null]] -> Volo.Abp.AutoMapper.AutoMapperAutoObjectMappingProvider`1[[Volo.Abp.BackgroundJobs.AbpBackgroundJobsDomainModule, Volo.Abp.BackgroundJobs.Domain, Version=5.3.2.0, Culture=neutral, PublicKeyToken=null]] -> λ:Volo.Abp.AutoMapper.IMapperAccessor -> λ:Volo.Abp.AutoMapper.MapperAccessor
2022-08-23 22:20:23.921 +08:00 [ERR] An exception was thrown while activating Volo.Abp.BackgroundJobs.BackgroundJobStore -> Volo.Abp.ObjectMapping.DefaultObjectMapper`1[[Volo.Abp.BackgroundJobs.AbpBackgroundJobsDomainModule, Volo.Abp.BackgroundJobs.Domain, Version=5.3.2.0, Culture=neutral, PublicKeyToken=null]] -> Volo.Abp.AutoMapper.AutoMapperAutoObjectMappingProvider`1[[Volo.Abp.BackgroundJobs.AbpBackgroundJobsDomainModule, Volo.Abp.BackgroundJobs.Domain, Version=5.3.2.0, Culture=neutral, PublicKeyToken=null]] -> λ:Volo.Abp.AutoMapper.IMapperAccessor -> λ:Volo.Abp.AutoMapper.MapperAccessor.
Autofac.Core.DependencyResolutionException: An exception was thrown while activating Volo.Abp.BackgroundJobs.BackgroundJobStore -> Volo.Abp.ObjectMapping.DefaultObjectMapper`1[[Volo.Abp.BackgroundJobs.AbpBackgroundJobsDomainModule, Volo.Abp.BackgroundJobs.Domain, Version=5.3.2.0, Culture=neutral, PublicKeyToken=null]] -> Volo.Abp.AutoMapper.AutoMapperAutoObjectMappingProvider`1[[Volo.Abp.BackgroundJobs.AbpBackgroundJobsDomainModule, Volo.Abp.BackgroundJobs.Domain, Version=5.3.2.0, Culture=neutral, PublicKeyToken=null]] -> λ:Volo.Abp.AutoMapper.IMapperAccessor -> λ:Volo.Abp.AutoMapper.MapperAccessor.
---> AutoMapper.AutoMapperConfigurationException:
Unmapped members were found. Review the types and members below.
Add a custom mapping expression, ignore, add a custom resolver, or modify the source/destination type
For no matching constructor, add a no-arg ctor, add optional arguments, or map all of the constructor parameters
=====================================================================================
IdentityUser -> LoginOutput (Destination member list)
Volo.Abp.Identity.IdentityUser -> Lion.AbpPro.BasicManagement.Users.Dtos.LoginOutput (Destination member list)
Unmapped properties:
Token
at Volo.Abp.AutoMapper.AbpAutoMapperModule.<>c__DisplayClass2_1.<CreateMappings>g__ValidateAll|2(IConfigurationProvider config)
at Volo.Abp.AutoMapper.AbpAutoMapperModule.CreateMappings(IServiceProvider serviceProvider)
at Autofac.Extensions.DependencyInjection.AutofacRegistration.<>c__DisplayClass3_0.<Register>b__0(IComponentContext context, IEnumerable`1 parameters)
at Autofac.Core.Activators.Delegate.DelegateActivator.ActivateInstance(IComponentContext context, IEnumerable`1 parameters)
at Autofac.Core.Activators.Delegate.DelegateActivator.<ConfigurePipeline>b__2_0(ResolveRequestContext ctxt, Action`1 next)
at Autofac.Core.Resolving.Middleware.DelegateMiddleware.Execute(ResolveRequestContext context, Action`1 next)
at Autofac.Core.Resolving.Pipeline.ResolvePipelineBuilder.<>c__DisplayClass14_0.<BuildPipeline>b__1(ResolveRequestContext ctxt)
at Autofac.Core.Resolving.Middleware.DisposalTrackingMiddleware.Execute(ResolveRequestContext context, Action`1 next)
at Autofac.Core.Resolving.Pipeline.ResolvePipelineBuilder.<>c__DisplayClass14_0.<BuildPipeline>b__1(ResolveRequestContext ctxt)
at Autofac.Core.Resolving.Middleware.ActivatorErrorHandlingMiddleware.Execute(ResolveRequestContext context, Action`1 next)
--- End of inner exception stack trace ---
at Autofac.Core.Resolving.Middleware.ActivatorErrorHandlingMiddleware.Execute(ResolveRequestContext context, Action`1 next)
at Autofac.Core.Resolving.Pipeline.ResolvePipelineBuilder.<>c__DisplayClass14_0.<BuildPipeline>b__1(ResolveRequestContext ctxt)
at Autofac.Core.Pipeline.ResolvePipeline.Invoke(ResolveRequestContext ctxt)
at Autofac.Core.Resolving.Middleware.RegistrationPipelineInvokeMiddleware.Execute(ResolveRequestContext context, Action`1 next)
at Autofac.Core.Resolving.Pipeline.ResolvePipelineBuilder.<>c__DisplayClass14_0.<BuildPipeline>b__1(ResolveRequestContext ctxt)
at Autofac.Core.Resolving.Middleware.SharingMiddleware.Execute(ResolveRequestContext context, Action`1 next)
at Autofac.Core.Resolving.Pipeline.ResolvePipelineBuilder.<>c__DisplayClass14_0.<BuildPipeline>b__1(ResolveRequestContext ctxt)
at Autofac.Core.Resolving.Middleware.ScopeSelectionMiddleware.Execute(ResolveRequestContext context, Action`1 next)
at Autofac.Core.Resolving.Pipeline.ResolvePipelineBuilder.<>c__DisplayClass14_0.<BuildPipeline>b__1(ResolveRequestContext ctxt)
at Autofac.Core.Resolving.Middleware.CircularDependencyDetectorMiddleware.Execute(ResolveRequestContext context, Action`1 next)
at Autofac.Core.Resolving.Pipeline.ResolvePipelineBuilder.<>c__DisplayClass14_0.<BuildPipeline>b__1(ResolveRequestContext ctxt)
at Autofac.Core.Pipeline.ResolvePipeline.Invoke(ResolveRequestContext ctxt)
at Autofac.Core.Resolving.ResolveOperation.GetOrCreateInstance(ISharingLifetimeScope currentOperationScope, ResolveRequest request)
at Autofac.Core.Resolving.ResolveOperation.ExecuteOperation(ResolveRequest request)
at Autofac.Core.Resolving.ResolveOperation.Execute(ResolveRequest request)
at Autofac.Core.Lifetime.LifetimeScope.ResolveComponent(ResolveRequest request)
at Autofac.ResolutionExtensions.TryResolveService(IComponentContext context, Service service, IEnumerable`1 parameters, Object& instance)
at Autofac.ResolutionExtensions.ResolveService(IComponentContext context, Service service, IEnumerable`1 parameters)
at Autofac.ResolutionExtensions.Resolve(IComponentContext context, Type serviceType, IEnumerable`1 parameters)
at Autofac.ResolutionExtensions.Resolve(IComponentContext context, Type serviceType)
at Autofac.Extensions.DependencyInjection.AutofacServiceProvider.GetRequiredService(Type serviceType)
at Microsoft.Extensions.DependencyInjection.ServiceProviderServiceExtensions.GetRequiredService(IServiceProvider provider, Type serviceType)
at Microsoft.Extensions.DependencyInjection.ServiceProviderServiceExtensions.GetRequiredService[T](IServiceProvider provider)
at Volo.Abp.BackgroundJobs.BackgroundJobWorker.DoWorkAsync(PeriodicBackgroundWorkerContext workerContext)
at Volo.Abp.BackgroundJobs.BackgroundJobWorker.DoWorkAsync(PeriodicBackgroundWorkerContext workerContext)
at Volo.Abp.BackgroundWorkers.AsyncPeriodicBackgroundWorkerBase.DoWorkAsync()
2022-08-23 22:20:23.937 +08:00 [ERR] ---------- Exception Data ----------
ActivatorChain = Volo.Abp.BackgroundJobs.BackgroundJobStore -> Volo.Abp.ObjectMapping.DefaultObjectMapper`1[[Volo.Abp.BackgroundJobs.AbpBackgroundJobsDomainModule, Volo.Abp.BackgroundJobs.Domain, Version=5.3.2.0, Culture=neutral, PublicKeyToken=null]] -> Volo.Abp.AutoMapper.AutoMapperAutoObjectMappingProvider`1[[Volo.Abp.BackgroundJobs.AbpBackgroundJobsDomainModule, Volo.Abp.BackgroundJobs.Domain, Version=5.3.2.0, Culture=neutral, PublicKeyToken=null]] -> λ:Volo.Abp.AutoMapper.IMapperAccessor -> λ:Volo.Abp.AutoMapper.MapperAccessor
2022-08-23 22:20:28.965 +08:00 [ERR] An exception was thrown while activating Volo.Abp.BackgroundJobs.BackgroundJobStore -> Volo.Abp.ObjectMapping.DefaultObjectMapper`1[[Volo.Abp.BackgroundJobs.AbpBackgroundJobsDomainModule, Volo.Abp.BackgroundJobs.Domain, Version=5.3.2.0, Culture=neutral, PublicKeyToken=null]] -> Volo.Abp.AutoMapper.AutoMapperAutoObjectMappingProvider`1[[Volo.Abp.BackgroundJobs.AbpBackgroundJobsDomainModule, Volo.Abp.BackgroundJobs.Domain, Version=5.3.2.0, Culture=neutral, PublicKeyToken=null]] -> λ:Volo.Abp.AutoMapper.IMapperAccessor -> λ:Volo.Abp.AutoMapper.MapperAccessor.
Autofac.Core.DependencyResolutionException: An exception was thrown while activating Volo.Abp.BackgroundJobs.BackgroundJobStore -> Volo.Abp.ObjectMapping.DefaultObjectMapper`1[[Volo.Abp.BackgroundJobs.AbpBackgroundJobsDomainModule, Volo.Abp.BackgroundJobs.Domain, Version=5.3.2.0, Culture=neutral, PublicKeyToken=null]] -> Volo.Abp.AutoMapper.AutoMapperAutoObjectMappingProvider`1[[Volo.Abp.BackgroundJobs.AbpBackgroundJobsDomainModule, Volo.Abp.BackgroundJobs.Domain, Version=5.3.2.0, Culture=neutral, PublicKeyToken=null]] -> λ:Volo.Abp.AutoMapper.IMapperAccessor -> λ:Volo.Abp.AutoMapper.MapperAccessor.
---> AutoMapper.AutoMapperConfigurationException:
Unmapped members were found. Review the types and members below.
Add a custom mapping expression, ignore, add a custom resolver, or modify the source/destination type
For no matching constructor, add a no-arg ctor, add optional arguments, or map all of the constructor parameters
=====================================================================================
IdentityUser -> LoginOutput (Destination member list)
Volo.Abp.Identity.IdentityUser -> Lion.AbpPro.BasicManagement.Users.Dtos.LoginOutput (Destination member list)
Unmapped properties:
Token
at Volo.Abp.AutoMapper.AbpAutoMapperModule.<>c__DisplayClass2_1.<CreateMappings>g__ValidateAll|2(IConfigurationProvider config)
at Volo.Abp.AutoMapper.AbpAutoMapperModule.CreateMappings(IServiceProvider serviceProvider)
at Autofac.Extensions.DependencyInjection.AutofacRegistration.<>c__DisplayClass3_0.<Register>b__0(IComponentContext context, IEnumerable`1 parameters)
at Autofac.Core.Activators.Delegate.DelegateActivator.ActivateInstance(IComponentContext context, IEnumerable`1 parameters)
at Autofac.Core.Activators.Delegate.DelegateActivator.<ConfigurePipeline>b__2_0(ResolveRequestContext ctxt, Action`1 next)
at Autofac.Core.Resolving.Middleware.DelegateMiddleware.Execute(ResolveRequestContext context, Action`1 next)
at Autofac.Core.Resolving.Pipeline.ResolvePipelineBuilder.<>c__DisplayClass14_0.<BuildPipeline>b__1(ResolveRequestContext ctxt)
at Autofac.Core.Resolving.Middleware.DisposalTrackingMiddleware.Execute(ResolveRequestContext context, Action`1 next)
at Autofac.Core.Resolving.Pipeline.ResolvePipelineBuilder.<>c__DisplayClass14_0.<BuildPipeline>b__1(ResolveRequestContext ctxt)
at Autofac.Core.Resolving.Middleware.ActivatorErrorHandlingMiddleware.Execute(ResolveRequestContext context, Action`1 next)
--- End of inner exception stack trace ---
at Autofac.Core.Resolving.Middleware.ActivatorErrorHandlingMiddleware.Execute(ResolveRequestContext context, Action`1 next)
at Autofac.Core.Resolving.Pipeline.ResolvePipelineBuilder.<>c__DisplayClass14_0.<BuildPipeline>b__1(ResolveRequestContext ctxt)
at Autofac.Core.Pipeline.ResolvePipeline.Invoke(ResolveRequestContext ctxt)
at Autofac.Core.Resolving.Middleware.RegistrationPipelineInvokeMiddleware.Execute(ResolveRequestContext context, Action`1 next)
at Autofac.Core.Resolving.Pipeline.ResolvePipelineBuilder.<>c__DisplayClass14_0.<BuildPipeline>b__1(ResolveRequestContext ctxt)
at Autofac.Core.Resolving.Middleware.SharingMiddleware.Execute(ResolveRequestContext context, Action`1 next)
at Autofac.Core.Resolving.Pipeline.ResolvePipelineBuilder.<>c__DisplayClass14_0.<BuildPipeline>b__1(ResolveRequestContext ctxt)
at Autofac.Core.Resolving.Middleware.ScopeSelectionMiddleware.Execute(ResolveRequestContext context, Action`1 next)
at Autofac.Core.Resolving.Pipeline.ResolvePipelineBuilder.<>c__DisplayClass14_0.<BuildPipeline>b__1(ResolveRequestContext ctxt)
at Autofac.Core.Resolving.Middleware.CircularDependencyDetectorMiddleware.Execute(ResolveRequestContext context, Action`1 next)
at Autofac.Core.Resolving.Pipeline.ResolvePipelineBuilder.<>c__DisplayClass14_0.<BuildPipeline>b__1(ResolveRequestContext ctxt)
at Autofac.Core.Pipeline.ResolvePipeline.Invoke(ResolveRequestContext ctxt)
at Autofac.Core.Resolving.ResolveOperation.GetOrCreateInstance(ISharingLifetimeScope currentOperationScope, ResolveRequest request)
at Autofac.Core.Resolving.ResolveOperation.ExecuteOperation(ResolveRequest request)
at Autofac.Core.Resolving.ResolveOperation.Execute(ResolveRequest request)
at Autofac.Core.Lifetime.LifetimeScope.ResolveComponent(ResolveRequest request)
at Autofac.ResolutionExtensions.TryResolveService(IComponentContext context, Service service, IEnumerable`1 parameters, Object& instance)
at Autofac.ResolutionExtensions.ResolveService(IComponentContext context, Service service, IEnumerable`1 parameters)
at Autofac.ResolutionExtensions.Resolve(IComponentContext context, Type serviceType, IEnumerable`1 parameters)
at Autofac.ResolutionExtensions.Resolve(IComponentContext context, Type serviceType)
at Autofac.Extensions.DependencyInjection.AutofacServiceProvider.GetRequiredService(Type serviceType)
at Microsoft.Extensions.DependencyInjection.ServiceProviderServiceExtensions.GetRequiredService(IServiceProvider provider, Type serviceType)
at Microsoft.Extensions.DependencyInjection.ServiceProviderServiceExtensions.GetRequiredService[T](IServiceProvider provider)
at Volo.Abp.BackgroundJobs.BackgroundJobWorker.DoWorkAsync(PeriodicBackgroundWorkerContext workerContext)
at Volo.Abp.BackgroundJobs.BackgroundJobWorker.DoWorkAsync(PeriodicBackgroundWorkerContext workerContext)
at Volo.Abp.BackgroundWorkers.AsyncPeriodicBackgroundWorkerBase.DoWorkAsync()
2022-08-23 22:20:28.994 +08:00 [ERR] ---------- Exception Data ----------
ActivatorChain = Volo.Abp.BackgroundJobs.BackgroundJobStore -> Volo.Abp.ObjectMapping.DefaultObjectMapper`1[[Volo.Abp.BackgroundJobs.AbpBackgroundJobsDomainModule, Volo.Abp.BackgroundJobs.Domain, Version=5.3.2.0, Culture=neutral, PublicKeyToken=null]] -> Volo.Abp.AutoMapper.AutoMapperAutoObjectMappingProvider`1[[Volo.Abp.BackgroundJobs.AbpBackgroundJobsDomainModule, Volo.Abp.BackgroundJobs.Domain, Version=5.3.2.0, Culture=neutral, PublicKeyToken=null]] -> λ:Volo.Abp.AutoMapper.IMapperAccessor -> λ:Volo.Abp.AutoMapper.MapperAccessor
2022-08-23 22:20:34.011 +08:00 [ERR] An exception was thrown while activating Volo.Abp.BackgroundJobs.BackgroundJobStore -> Volo.Abp.ObjectMapping.DefaultObjectMapper`1[[Volo.Abp.BackgroundJobs.AbpBackgroundJobsDomainModule, Volo.Abp.BackgroundJobs.Domain, Version=5.3.2.0, Culture=neutral, PublicKeyToken=null]] -> Volo.Abp.AutoMapper.AutoMapperAutoObjectMappingProvider`1[[Volo.Abp.BackgroundJobs.AbpBackgroundJobsDomainModule, Volo.Abp.BackgroundJobs.Domain, Version=5.3.2.0, Culture=neutral, PublicKeyToken=null]] -> λ:Volo.Abp.AutoMapper.IMapperAccessor -> λ:Volo.Abp.AutoMapper.MapperAccessor.
Autofac.Core.DependencyResolutionException: An exception was thrown while activating Volo.Abp.BackgroundJobs.BackgroundJobStore -> Volo.Abp.ObjectMapping.DefaultObjectMapper`1[[Volo.Abp.BackgroundJobs.AbpBackgroundJobsDomainModule, Volo.Abp.BackgroundJobs.Domain, Version=5.3.2.0, Culture=neutral, PublicKeyToken=null]] -> Volo.Abp.AutoMapper.AutoMapperAutoObjectMappingProvider`1[[Volo.Abp.BackgroundJobs.AbpBackgroundJobsDomainModule, Volo.Abp.BackgroundJobs.Domain, Version=5.3.2.0, Culture=neutral, PublicKeyToken=null]] -> λ:Volo.Abp.AutoMapper.IMapperAccessor -> λ:Volo.Abp.AutoMapper.MapperAccessor.
---> AutoMapper.AutoMapperConfigurationException:
Unmapped members were found. Review the types and members below.
Add a custom mapping expression, ignore, add a custom resolver, or modify the source/destination type
For no matching constructor, add a no-arg ctor, add optional arguments, or map all of the constructor parameters
=====================================================================================
IdentityUser -> LoginOutput (Destination member list)
Volo.Abp.Identity.IdentityUser -> Lion.AbpPro.BasicManagement.Users.Dtos.LoginOutput (Destination member list)
Unmapped properties:
Token
at Volo.Abp.AutoMapper.AbpAutoMapperModule.<>c__DisplayClass2_1.<CreateMappings>g__ValidateAll|2(IConfigurationProvider config)
at Volo.Abp.AutoMapper.AbpAutoMapperModule.CreateMappings(IServiceProvider serviceProvider)
at Autofac.Extensions.DependencyInjection.AutofacRegistration.<>c__DisplayClass3_0.<Register>b__0(IComponentContext context, IEnumerable`1 parameters)
at Autofac.Core.Activators.Delegate.DelegateActivator.ActivateInstance(IComponentContext context, IEnumerable`1 parameters)
at Autofac.Core.Activators.Delegate.DelegateActivator.<ConfigurePipeline>b__2_0(ResolveRequestContext ctxt, Action`1 next)
at Autofac.Core.Resolving.Middleware.DelegateMiddleware.Execute(ResolveRequestContext context, Action`1 next)
at Autofac.Core.Resolving.Pipeline.ResolvePipelineBuilder.<>c__DisplayClass14_0.<BuildPipeline>b__1(ResolveRequestContext ctxt)
at Autofac.Core.Resolving.Middleware.DisposalTrackingMiddleware.Execute(ResolveRequestContext context, Action`1 next)
at Autofac.Core.Resolving.Pipeline.ResolvePipelineBuilder.<>c__DisplayClass14_0.<BuildPipeline>b__1(ResolveRequestContext ctxt)
at Autofac.Core.Resolving.Middleware.ActivatorErrorHandlingMiddleware.Execute(ResolveRequestContext context, Action`1 next)
--- End of inner exception stack trace ---
at Autofac.Core.Resolving.Middleware.ActivatorErrorHandlingMiddleware.Execute(ResolveRequestContext context, Action`1 next)
at Autofac.Core.Resolving.Pipeline.ResolvePipelineBuilder.<>c__DisplayClass14_0.<BuildPipeline>b__1(ResolveRequestContext ctxt)
at Autofac.Core.Pipeline.ResolvePipeline.Invoke(ResolveRequestContext ctxt)
at Autofac.Core.Resolving.Middleware.RegistrationPipelineInvokeMiddleware.Execute(ResolveRequestContext context, Action`1 next)
at Autofac.Core.Resolving.Pipeline.ResolvePipelineBuilder.<>c__DisplayClass14_0.<BuildPipeline>b__1(ResolveRequestContext ctxt)
at Autofac.Core.Resolving.Middleware.SharingMiddleware.Execute(ResolveRequestContext context, Action`1 next)
at Autofac.Core.Resolving.Pipeline.ResolvePipelineBuilder.<>c__DisplayClass14_0.<BuildPipeline>b__1(ResolveRequestContext ctxt)
at Autofac.Core.Resolving.Middleware.ScopeSelectionMiddleware.Execute(ResolveRequestContext context, Action`1 next)
at Autofac.Core.Resolving.Pipeline.ResolvePipelineBuilder.<>c__DisplayClass14_0.<BuildPipeline>b__1(ResolveRequestContext ctxt)
at Autofac.Core.Resolving.Middleware.CircularDependencyDetectorMiddleware.Execute(ResolveRequestContext context, Action`1 next)
at Autofac.Core.Resolving.Pipeline.ResolvePipelineBuilder.<>c__DisplayClass14_0.<BuildPipeline>b__1(ResolveRequestContext ctxt)
at Autofac.Core.Pipeline.ResolvePipeline.Invoke(ResolveRequestContext ctxt)
at Autofac.Core.Resolving.ResolveOperation.GetOrCreateInstance(ISharingLifetimeScope currentOperationScope, ResolveRequest request)
at Autofac.Core.Resolving.ResolveOperation.ExecuteOperation(ResolveRequest request)
at Autofac.Core.Resolving.ResolveOperation.Execute(ResolveRequest request)
at Autofac.Core.Lifetime.LifetimeScope.ResolveComponent(ResolveRequest request)
at Autofac.ResolutionExtensions.TryResolveService(IComponentContext context, Service service, IEnumerable`1 parameters, Object& instance)
at Autofac.ResolutionExtensions.ResolveService(IComponentContext context, Service service, IEnumerable`1 parameters)
at Autofac.ResolutionExtensions.Resolve(IComponentContext context, Type serviceType, IEnumerable`1 parameters)
at Autofac.ResolutionExtensions.Resolve(IComponentContext context, Type serviceType)
at Autofac.Extensions.DependencyInjection.AutofacServiceProvider.GetRequiredService(Type serviceType)
at Microsoft.Extensions.DependencyInjection.ServiceProviderServiceExtensions.GetRequiredService(IServiceProvider provider, Type serviceType)
at Microsoft.Extensions.DependencyInjection.ServiceProviderServiceExtensions.GetRequiredService[T](IServiceProvider provider)
at Volo.Abp.BackgroundJobs.BackgroundJobWorker.DoWorkAsync(PeriodicBackgroundWorkerContext workerContext)
at Volo.Abp.BackgroundJobs.BackgroundJobWorker.DoWorkAsync(PeriodicBackgroundWorkerContext workerContext)
at Volo.Abp.BackgroundWorkers.AsyncPeriodicBackgroundWorkerBase.DoWorkAsync()
2022-08-23 22:20:34.040 +08:00 [ERR] ---------- Exception Data ----------
ActivatorChain = Volo.Abp.BackgroundJobs.BackgroundJobStore -> Volo.Abp.ObjectMapping.DefaultObjectMapper`1[[Volo.Abp.BackgroundJobs.AbpBackgroundJobsDomainModule, Volo.Abp.BackgroundJobs.Domain, Version=5.3.2.0, Culture=neutral, PublicKeyToken=null]] -> Volo.Abp.AutoMapper.AutoMapperAutoObjectMappingProvider`1[[Volo.Abp.BackgroundJobs.AbpBackgroundJobsDomainModule, Volo.Abp.BackgroundJobs.Domain, Version=5.3.2.0, Culture=neutral, PublicKeyToken=null]] -> λ:Volo.Abp.AutoMapper.IMapperAccessor -> λ:Volo.Abp.AutoMapper.MapperAccessor
2022-08-23 22:20:39.058 +08:00 [ERR] An exception was thrown while activating Volo.Abp.BackgroundJobs.BackgroundJobStore -> Volo.Abp.ObjectMapping.DefaultObjectMapper`1[[Volo.Abp.BackgroundJobs.AbpBackgroundJobsDomainModule, Volo.Abp.BackgroundJobs.Domain, Version=5.3.2.0, Culture=neutral, PublicKeyToken=null]] -> Volo.Abp.AutoMapper.AutoMapperAutoObjectMappingProvider`1[[Volo.Abp.BackgroundJobs.AbpBackgroundJobsDomainModule, Volo.Abp.BackgroundJobs.Domain, Version=5.3.2.0, Culture=neutral, PublicKeyToken=null]] -> λ:Volo.Abp.AutoMapper.IMapperAccessor -> λ:Volo.Abp.AutoMapper.MapperAccessor.
Autofac.Core.DependencyResolutionException: An exception was thrown while activating Volo.Abp.BackgroundJobs.BackgroundJobStore -> Volo.Abp.ObjectMapping.DefaultObjectMapper`1[[Volo.Abp.BackgroundJobs.AbpBackgroundJobsDomainModule, Volo.Abp.BackgroundJobs.Domain, Version=5.3.2.0, Culture=neutral, PublicKeyToken=null]] -> Volo.Abp.AutoMapper.AutoMapperAutoObjectMappingProvider`1[[Volo.Abp.BackgroundJobs.AbpBackgroundJobsDomainModule, Volo.Abp.BackgroundJobs.Domain, Version=5.3.2.0, Culture=neutral, PublicKeyToken=null]] -> λ:Volo.Abp.AutoMapper.IMapperAccessor -> λ:Volo.Abp.AutoMapper.MapperAccessor.
---> AutoMapper.AutoMapperConfigurationException:
Unmapped members were found. Review the types and members below.
Add a custom mapping expression, ignore, add a custom resolver, or modify the source/destination type
For no matching constructor, add a no-arg ctor, add optional arguments, or map all of the constructor parameters
=====================================================================================
IdentityUser -> LoginOutput (Destination member list)
Volo.Abp.Identity.IdentityUser -> Lion.AbpPro.BasicManagement.Users.Dtos.LoginOutput (Destination member list)
Unmapped properties:
Token
at Volo.Abp.AutoMapper.AbpAutoMapperModule.<>c__DisplayClass2_1.<CreateMappings>g__ValidateAll|2(IConfigurationProvider config)
at Volo.Abp.AutoMapper.AbpAutoMapperModule.CreateMappings(IServiceProvider serviceProvider)
at Autofac.Extensions.DependencyInjection.AutofacRegistration.<>c__DisplayClass3_0.<Register>b__0(IComponentContext context, IEnumerable`1 parameters)
at Autofac.Core.Activators.Delegate.DelegateActivator.ActivateInstance(IComponentContext context, IEnumerable`1 parameters)
at Autofac.Core.Activators.Delegate.DelegateActivator.<ConfigurePipeline>b__2_0(ResolveRequestContext ctxt, Action`1 next)
at Autofac.Core.Resolving.Middleware.DelegateMiddleware.Execute(ResolveRequestContext context, Action`1 next)
at Autofac.Core.Resolving.Pipeline.ResolvePipelineBuilder.<>c__DisplayClass14_0.<BuildPipeline>b__1(ResolveRequestContext ctxt)
at Autofac.Core.Resolving.Middleware.DisposalTrackingMiddleware.Execute(ResolveRequestContext context, Action`1 next)
at Autofac.Core.Resolving.Pipeline.ResolvePipelineBuilder.<>c__DisplayClass14_0.<BuildPipeline>b__1(ResolveRequestContext ctxt)
at Autofac.Core.Resolving.Middleware.ActivatorErrorHandlingMiddleware.Execute(ResolveRequestContext context, Action`1 next)
--- End of inner exception stack trace ---
at Autofac.Core.Resolving.Middleware.ActivatorErrorHandlingMiddleware.Execute(ResolveRequestContext context, Action`1 next)
at Autofac.Core.Resolving.Pipeline.ResolvePipelineBuilder.<>c__DisplayClass14_0.<BuildPipeline>b__1(ResolveRequestContext ctxt)
at Autofac.Core.Pipeline.ResolvePipeline.Invoke(ResolveRequestContext ctxt)
at Autofac.Core.Resolving.Middleware.RegistrationPipelineInvokeMiddleware.Execute(ResolveRequestContext context, Action`1 next)
at Autofac.Core.Resolving.Pipeline.ResolvePipelineBuilder.<>c__DisplayClass14_0.<BuildPipeline>b__1(ResolveRequestContext ctxt)
at Autofac.Core.Resolving.Middleware.SharingMiddleware.Execute(ResolveRequestContext context, Action`1 next)
at Autofac.Core.Resolving.Pipeline.ResolvePipelineBuilder.<>c__DisplayClass14_0.<BuildPipeline>b__1(ResolveRequestContext ctxt)
at Autofac.Core.Resolving.Middleware.ScopeSelectionMiddleware.Execute(ResolveRequestContext context, Action`1 next)
at Autofac.Core.Resolving.Pipeline.ResolvePipelineBuilder.<>c__DisplayClass14_0.<BuildPipeline>b__1(ResolveRequestContext ctxt)
at Autofac.Core.Resolving.Middleware.CircularDependencyDetectorMiddleware.Execute(ResolveRequestContext context, Action`1 next)
at Autofac.Core.Resolving.Pipeline.ResolvePipelineBuilder.<>c__DisplayClass14_0.<BuildPipeline>b__1(ResolveRequestContext ctxt)
at Autofac.Core.Pipeline.ResolvePipeline.Invoke(ResolveRequestContext ctxt)
at Autofac.Core.Resolving.ResolveOperation.GetOrCreateInstance(ISharingLifetimeScope currentOperationScope, ResolveRequest request)
at Autofac.Core.Resolving.ResolveOperation.ExecuteOperation(ResolveRequest request)
at Autofac.Core.Resolving.ResolveOperation.Execute(ResolveRequest request)
at Autofac.Core.Lifetime.LifetimeScope.ResolveComponent(ResolveRequest request)
at Autofac.ResolutionExtensions.TryResolveService(IComponentContext context, Service service, IEnumerable`1 parameters, Object& instance)
at Autofac.ResolutionExtensions.ResolveService(IComponentContext context, Service service, IEnumerable`1 parameters)
at Autofac.ResolutionExtensions.Resolve(IComponentContext context, Type serviceType, IEnumerable`1 parameters)
at Autofac.ResolutionExtensions.Resolve(IComponentContext context, Type serviceType)
at Autofac.Extensions.DependencyInjection.AutofacServiceProvider.GetRequiredService(Type serviceType)
at Microsoft.Extensions.DependencyInjection.ServiceProviderServiceExtensions.GetRequiredService(IServiceProvider provider, Type serviceType)
at Microsoft.Extensions.DependencyInjection.ServiceProviderServiceExtensions.GetRequiredService[T](IServiceProvider provider)
at Volo.Abp.BackgroundJobs.BackgroundJobWorker.DoWorkAsync(PeriodicBackgroundWorkerContext workerContext)
at Volo.Abp.BackgroundJobs.BackgroundJobWorker.DoWorkAsync(PeriodicBackgroundWorkerContext workerContext)
at Volo.Abp.BackgroundWorkers.AsyncPeriodicBackgroundWorkerBase.DoWorkAsync()
2022-08-23 22:20:39.083 +08:00 [ERR] ---------- Exception Data ----------
ActivatorChain = Volo.Abp.BackgroundJobs.BackgroundJobStore -> Volo.Abp.ObjectMapping.DefaultObjectMapper`1[[Volo.Abp.BackgroundJobs.AbpBackgroundJobsDomainModule, Volo.Abp.BackgroundJobs.Domain, Version=5.3.2.0, Culture=neutral, PublicKeyToken=null]] -> Volo.Abp.AutoMapper.AutoMapperAutoObjectMappingProvider`1[[Volo.Abp.BackgroundJobs.AbpBackgroundJobsDomainModule, Volo.Abp.BackgroundJobs.Domain, Version=5.3.2.0, Culture=neutral, PublicKeyToken=null]] -> λ:Volo.Abp.AutoMapper.IMapperAccessor -> λ:Volo.Abp.AutoMapper.MapperAccessor
2022-08-23 22:20:44.107 +08:00 [ERR] An exception was thrown while activating Volo.Abp.BackgroundJobs.BackgroundJobStore -> Volo.Abp.ObjectMapping.DefaultObjectMapper`1[[Volo.Abp.BackgroundJobs.AbpBackgroundJobsDomainModule, Volo.Abp.BackgroundJobs.Domain, Version=5.3.2.0, Culture=neutral, PublicKeyToken=null]] -> Volo.Abp.AutoMapper.AutoMapperAutoObjectMappingProvider`1[[Volo.Abp.BackgroundJobs.AbpBackgroundJobsDomainModule, Volo.Abp.BackgroundJobs.Domain, Version=5.3.2.0, Culture=neutral, PublicKeyToken=null]] -> λ:Volo.Abp.AutoMapper.IMapperAccessor -> λ:Volo.Abp.AutoMapper.MapperAccessor.
Autofac.Core.DependencyResolutionException: An exception was thrown while activating Volo.Abp.BackgroundJobs.BackgroundJobStore -> Volo.Abp.ObjectMapping.DefaultObjectMapper`1[[Volo.Abp.BackgroundJobs.AbpBackgroundJobsDomainModule, Volo.Abp.BackgroundJobs.Domain, Version=5.3.2.0, Culture=neutral, PublicKeyToken=null]] -> Volo.Abp.AutoMapper.AutoMapperAutoObjectMappingProvider`1[[Volo.Abp.BackgroundJobs.AbpBackgroundJobsDomainModule, Volo.Abp.BackgroundJobs.Domain, Version=5.3.2.0, Culture=neutral, PublicKeyToken=null]] -> λ:Volo.Abp.AutoMapper.IMapperAccessor -> λ:Volo.Abp.AutoMapper.MapperAccessor.
---> AutoMapper.AutoMapperConfigurationException:
Unmapped members were found. Review the types and members below.
Add a custom mapping expression, ignore, add a custom resolver, or modify the source/destination type
For no matching constructor, add a no-arg ctor, add optional arguments, or map all of the constructor parameters
=====================================================================================
IdentityUser -> LoginOutput (Destination member list)
Volo.Abp.Identity.IdentityUser -> Lion.AbpPro.BasicManagement.Users.Dtos.LoginOutput (Destination member list)
Unmapped properties:
Token
at Volo.Abp.AutoMapper.AbpAutoMapperModule.<>c__DisplayClass2_1.<CreateMappings>g__ValidateAll|2(IConfigurationProvider config)
at Volo.Abp.AutoMapper.AbpAutoMapperModule.CreateMappings(IServiceProvider serviceProvider)
at Autofac.Extensions.DependencyInjection.AutofacRegistration.<>c__DisplayClass3_0.<Register>b__0(IComponentContext context, IEnumerable`1 parameters)
at Autofac.Core.Activators.Delegate.DelegateActivator.ActivateInstance(IComponentContext context, IEnumerable`1 parameters)
at Autofac.Core.Activators.Delegate.DelegateActivator.<ConfigurePipeline>b__2_0(ResolveRequestContext ctxt, Action`1 next)
at Autofac.Core.Resolving.Middleware.DelegateMiddleware.Execute(ResolveRequestContext context, Action`1 next)
at Autofac.Core.Resolving.Pipeline.ResolvePipelineBuilder.<>c__DisplayClass14_0.<BuildPipeline>b__1(ResolveRequestContext ctxt)
at Autofac.Core.Resolving.Middleware.DisposalTrackingMiddleware.Execute(ResolveRequestContext context, Action`1 next)
at Autofac.Core.Resolving.Pipeline.ResolvePipelineBuilder.<>c__DisplayClass14_0.<BuildPipeline>b__1(ResolveRequestContext ctxt)
at Autofac.Core.Resolving.Middleware.ActivatorErrorHandlingMiddleware.Execute(ResolveRequestContext context, Action`1 next)
--- End of inner exception stack trace ---
at Autofac.Core.Resolving.Middleware.ActivatorErrorHandlingMiddleware.Execute(ResolveRequestContext context, Action`1 next)
at Autofac.Core.Resolving.Pipeline.ResolvePipelineBuilder.<>c__DisplayClass14_0.<BuildPipeline>b__1(ResolveRequestContext ctxt)
at Autofac.Core.Pipeline.ResolvePipeline.Invoke(ResolveRequestContext ctxt)
at Autofac.Core.Resolving.Middleware.RegistrationPipelineInvokeMiddleware.Execute(ResolveRequestContext context, Action`1 next)
at Autofac.Core.Resolving.Pipeline.ResolvePipelineBuilder.<>c__DisplayClass14_0.<BuildPipeline>b__1(ResolveRequestContext ctxt)
at Autofac.Core.Resolving.Middleware.SharingMiddleware.Execute(ResolveRequestContext context, Action`1 next)
at Autofac.Core.Resolving.Pipeline.ResolvePipelineBuilder.<>c__DisplayClass14_0.<BuildPipeline>b__1(ResolveRequestContext ctxt)
at Autofac.Core.Resolving.Middleware.ScopeSelectionMiddleware.Execute(ResolveRequestContext context, Action`1 next)
at Autofac.Core.Resolving.Pipeline.ResolvePipelineBuilder.<>c__DisplayClass14_0.<BuildPipeline>b__1(ResolveRequestContext ctxt)
at Autofac.Core.Resolving.Middleware.CircularDependencyDetectorMiddleware.Execute(ResolveRequestContext context, Action`1 next)
at Autofac.Core.Resolving.Pipeline.ResolvePipelineBuilder.<>c__DisplayClass14_0.<BuildPipeline>b__1(ResolveRequestContext ctxt)
at Autofac.Core.Pipeline.ResolvePipeline.Invoke(ResolveRequestContext ctxt)
at Autofac.Core.Resolving.ResolveOperation.GetOrCreateInstance(ISharingLifetimeScope currentOperationScope, ResolveRequest request)
at Autofac.Core.Resolving.ResolveOperation.ExecuteOperation(ResolveRequest request)
at Autofac.Core.Resolving.ResolveOperation.Execute(ResolveRequest request)
at Autofac.Core.Lifetime.LifetimeScope.ResolveComponent(ResolveRequest request)
at Autofac.ResolutionExtensions.TryResolveService(IComponentContext context, Service service, IEnumerable`1 parameters, Object& instance)
at Autofac.ResolutionExtensions.ResolveService(IComponentContext context, Service service, IEnumerable`1 parameters)
at Autofac.ResolutionExtensions.Resolve(IComponentContext context, Type serviceType, IEnumerable`1 parameters)
at Autofac.ResolutionExtensions.Resolve(IComponentContext context, Type serviceType)
at Autofac.Extensions.DependencyInjection.AutofacServiceProvider.GetRequiredService(Type serviceType)
at Microsoft.Extensions.DependencyInjection.ServiceProviderServiceExtensions.GetRequiredService(IServiceProvider provider, Type serviceType)
at Microsoft.Extensions.DependencyInjection.ServiceProviderServiceExtensions.GetRequiredService[T](IServiceProvider provider)
at Volo.Abp.BackgroundJobs.BackgroundJobWorker.DoWorkAsync(PeriodicBackgroundWorkerContext workerContext)
at Volo.Abp.BackgroundJobs.BackgroundJobWorker.DoWorkAsync(PeriodicBackgroundWorkerContext workerContext)
at Volo.Abp.BackgroundWorkers.AsyncPeriodicBackgroundWorkerBase.DoWorkAsync()
2022-08-23 22:20:44.124 +08:00 [ERR] ---------- Exception Data ----------
ActivatorChain = Volo.Abp.BackgroundJobs.BackgroundJobStore -> Volo.Abp.ObjectMapping.DefaultObjectMapper`1[[Volo.Abp.BackgroundJobs.AbpBackgroundJobsDomainModule, Volo.Abp.BackgroundJobs.Domain, Version=5.3.2.0, Culture=neutral, PublicKeyToken=null]] -> Volo.Abp.AutoMapper.AutoMapperAutoObjectMappingProvider`1[[Volo.Abp.BackgroundJobs.AbpBackgroundJobsDomainModule, Volo.Abp.BackgroundJobs.Domain, Version=5.3.2.0, Culture=neutral, PublicKeyToken=null]] -> λ:Volo.Abp.AutoMapper.IMapperAccessor -> λ:Volo.Abp.AutoMapper.MapperAccessor
2022-08-23 22:20:49.136 +08:00 [ERR] An exception was thrown while activating Volo.Abp.BackgroundJobs.BackgroundJobStore -> Volo.Abp.ObjectMapping.DefaultObjectMapper`1[[Volo.Abp.BackgroundJobs.AbpBackgroundJobsDomainModule, Volo.Abp.BackgroundJobs.Domain, Version=5.3.2.0, Culture=neutral, PublicKeyToken=null]] -> Volo.Abp.AutoMapper.AutoMapperAutoObjectMappingProvider`1[[Volo.Abp.BackgroundJobs.AbpBackgroundJobsDomainModule, Volo.Abp.BackgroundJobs.Domain, Version=5.3.2.0, Culture=neutral, PublicKeyToken=null]] -> λ:Volo.Abp.AutoMapper.IMapperAccessor -> λ:Volo.Abp.AutoMapper.MapperAccessor.
Autofac.Core.DependencyResolutionException: An exception was thrown while activating Volo.Abp.BackgroundJobs.BackgroundJobStore -> Volo.Abp.ObjectMapping.DefaultObjectMapper`1[[Volo.Abp.BackgroundJobs.AbpBackgroundJobsDomainModule, Volo.Abp.BackgroundJobs.Domain, Version=5.3.2.0, Culture=neutral, PublicKeyToken=null]] -> Volo.Abp.AutoMapper.AutoMapperAutoObjectMappingProvider`1[[Volo.Abp.BackgroundJobs.AbpBackgroundJobsDomainModule, Volo.Abp.BackgroundJobs.Domain, Version=5.3.2.0, Culture=neutral, PublicKeyToken=null]] -> λ:Volo.Abp.AutoMapper.IMapperAccessor -> λ:Volo.Abp.AutoMapper.MapperAccessor.
---> AutoMapper.AutoMapperConfigurationException:
Unmapped members were found. Review the types and members below.
Add a custom mapping expression, ignore, add a custom resolver, or modify the source/destination type
For no matching constructor, add a no-arg ctor, add optional arguments, or map all of the constructor parameters
=====================================================================================
IdentityUser -> LoginOutput (Destination member list)
Volo.Abp.Identity.IdentityUser -> Lion.AbpPro.BasicManagement.Users.Dtos.LoginOutput (Destination member list)
Unmapped properties:
Token
at Volo.Abp.AutoMapper.AbpAutoMapperModule.<>c__DisplayClass2_1.<CreateMappings>g__ValidateAll|2(IConfigurationProvider config)
at Volo.Abp.AutoMapper.AbpAutoMapperModule.CreateMappings(IServiceProvider serviceProvider)
at Autofac.Extensions.DependencyInjection.AutofacRegistration.<>c__DisplayClass3_0.<Register>b__0(IComponentContext context, IEnumerable`1 parameters)
at Autofac.Core.Activators.Delegate.DelegateActivator.ActivateInstance(IComponentContext context, IEnumerable`1 parameters)
at Autofac.Core.Activators.Delegate.DelegateActivator.<ConfigurePipeline>b__2_0(ResolveRequestContext ctxt, Action`1 next)
at Autofac.Core.Resolving.Middleware.DelegateMiddleware.Execute(ResolveRequestContext context, Action`1 next)
at Autofac.Core.Resolving.Pipeline.ResolvePipelineBuilder.<>c__DisplayClass14_0.<BuildPipeline>b__1(ResolveRequestContext ctxt)
at Autofac.Core.Resolving.Middleware.DisposalTrackingMiddleware.Execute(ResolveRequestContext context, Action`1 next)
at Autofac.Core.Resolving.Pipeline.ResolvePipelineBuilder.<>c__DisplayClass14_0.<BuildPipeline>b__1(ResolveRequestContext ctxt)
at Autofac.Core.Resolving.Middleware.ActivatorErrorHandlingMiddleware.Execute(ResolveRequestContext context, Action`1 next)
--- End of inner exception stack trace ---
at Autofac.Core.Resolving.Middleware.ActivatorErrorHandlingMiddleware.Execute(ResolveRequestContext context, Action`1 next)
at Autofac.Core.Resolving.Pipeline.ResolvePipelineBuilder.<>c__DisplayClass14_0.<BuildPipeline>b__1(ResolveRequestContext ctxt)
at Autofac.Core.Pipeline.ResolvePipeline.Invoke(ResolveRequestContext ctxt)
at Autofac.Core.Resolving.Middleware.RegistrationPipelineInvokeMiddleware.Execute(ResolveRequestContext context, Action`1 next)
at Autofac.Core.Resolving.Pipeline.ResolvePipelineBuilder.<>c__DisplayClass14_0.<BuildPipeline>b__1(ResolveRequestContext ctxt)
at Autofac.Core.Resolving.Middleware.SharingMiddleware.Execute(ResolveRequestContext context, Action`1 next)
at Autofac.Core.Resolving.Pipeline.ResolvePipelineBuilder.<>c__DisplayClass14_0.<BuildPipeline>b__1(ResolveRequestContext ctxt)
at Autofac.Core.Resolving.Middleware.ScopeSelectionMiddleware.Execute(ResolveRequestContext context, Action`1 next)
at Autofac.Core.Resolving.Pipeline.ResolvePipelineBuilder.<>c__DisplayClass14_0.<BuildPipeline>b__1(ResolveRequestContext ctxt)
at Autofac.Core.Resolving.Middleware.CircularDependencyDetectorMiddleware.Execute(ResolveRequestContext context, Action`1 next)
at Autofac.Core.Resolving.Pipeline.ResolvePipelineBuilder.<>c__DisplayClass14_0.<BuildPipeline>b__1(ResolveRequestContext ctxt)
at Autofac.Core.Pipeline.ResolvePipeline.Invoke(ResolveRequestContext ctxt)
at Autofac.Core.Resolving.ResolveOperation.GetOrCreateInstance(ISharingLifetimeScope currentOperationScope, ResolveRequest request)
at Autofac.Core.Resolving.ResolveOperation.ExecuteOperation(ResolveRequest request)
at Autofac.Core.Resolving.ResolveOperation.Execute(ResolveRequest request)
at Autofac.Core.Lifetime.LifetimeScope.ResolveComponent(ResolveRequest request)
at Autofac.ResolutionExtensions.TryResolveService(IComponentContext context, Service service, IEnumerable`1 parameters, Object& instance)
at Autofac.ResolutionExtensions.ResolveService(IComponentContext context, Service service, IEnumerable`1 parameters)
at Autofac.ResolutionExtensions.Resolve(IComponentContext context, Type serviceType, IEnumerable`1 parameters)
at Autofac.ResolutionExtensions.Resolve(IComponentContext context, Type serviceType)
at Autofac.Extensions.DependencyInjection.AutofacServiceProvider.GetRequiredService(Type serviceType)
at Microsoft.Extensions.DependencyInjection.ServiceProviderServiceExtensions.GetRequiredService(IServiceProvider provider, Type serviceType)
at Microsoft.Extensions.DependencyInjection.ServiceProviderServiceExtensions.GetRequiredService[T](IServiceProvider provider)
at Volo.Abp.BackgroundJobs.BackgroundJobWorker.DoWorkAsync(PeriodicBackgroundWorkerContext workerContext)
at Volo.Abp.BackgroundJobs.BackgroundJobWorker.DoWorkAsync(PeriodicBackgroundWorkerContext workerContext)
at Volo.Abp.BackgroundWorkers.AsyncPeriodicBackgroundWorkerBase.DoWorkAsync()
2022-08-23 22:20:49.152 +08:00 [ERR] ---------- Exception Data ----------
ActivatorChain = Volo.Abp.BackgroundJobs.BackgroundJobStore -> Volo.Abp.ObjectMapping.DefaultObjectMapper`1[[Volo.Abp.BackgroundJobs.AbpBackgroundJobsDomainModule, Volo.Abp.BackgroundJobs.Domain, Version=5.3.2.0, Culture=neutral, PublicKeyToken=null]] -> Volo.Abp.AutoMapper.AutoMapperAutoObjectMappingProvider`1[[Volo.Abp.BackgroundJobs.AbpBackgroundJobsDomainModule, Volo.Abp.BackgroundJobs.Domain, Version=5.3.2.0, Culture=neutral, PublicKeyToken=null]] -> λ:Volo.Abp.AutoMapper.IMapperAccessor -> λ:Volo.Abp.AutoMapper.MapperAccessor
2022-08-23 22:21:24.843 +08:00 [INF] Loaded ABP modules:
2022-08-23 22:21:24.869 +08:00 [INF] - Lion.AbpPro.BasicManagement.BasicManagementHttpApiHostModule
2022-08-23 22:21:24.870 +08:00 [INF] - Lion.AbpPro.BasicManagement.BasicManagementApplicationModule
2022-08-23 22:21:24.870 +08:00 [INF] - Lion.AbpPro.BasicManagement.BasicManagementDomainModule
2022-08-23 22:21:24.871 +08:00 [INF] - Volo.Abp.Domain.AbpDddDomainModule
2022-08-23 22:21:24.871 +08:00 [INF] - Volo.Abp.Auditing.AbpAuditingModule
2022-08-23 22:21:24.872 +08:00 [INF] - Volo.Abp.Data.AbpDataModule
2022-08-23 22:21:24.872 +08:00 [INF] - Volo.Abp.ObjectExtending.AbpObjectExtendingModule
2022-08-23 22:21:24.873 +08:00 [INF] - Volo.Abp.Localization.AbpLocalizationAbstractionsModule
2022-08-23 22:21:24.873 +08:00 [INF] - Volo.Abp.Validation.AbpValidationAbstractionsModule
2022-08-23 22:21:24.873 +08:00 [INF] - Volo.Abp.Uow.AbpUnitOfWorkModule
2022-08-23 22:21:24.874 +08:00 [INF] - Volo.Abp.EventBus.Abstractions.AbpEventBusAbstractionsModule
2022-08-23 22:21:24.874 +08:00 [INF] - Volo.Abp.Json.AbpJsonModule
2022-08-23 22:21:24.875 +08:00 [INF] - Volo.Abp.Timing.AbpTimingModule
2022-08-23 22:21:24.875 +08:00 [INF] - Volo.Abp.Localization.AbpLocalizationModule
2022-08-23 22:21:24.876 +08:00 [INF] - Volo.Abp.VirtualFileSystem.AbpVirtualFileSystemModule
2022-08-23 22:21:24.876 +08:00 [INF] - Volo.Abp.Settings.AbpSettingsModule
2022-08-23 22:21:24.877 +08:00 [INF] - Volo.Abp.Security.AbpSecurityModule
2022-08-23 22:21:24.877 +08:00 [INF] - Volo.Abp.MultiTenancy.AbpMultiTenancyModule
2022-08-23 22:21:24.878 +08:00 [INF] - Volo.Abp.Threading.AbpThreadingModule
2022-08-23 22:21:24.880 +08:00 [INF] - Volo.Abp.Auditing.AbpAuditingContractsModule
2022-08-23 22:21:24.882 +08:00 [INF] - Volo.Abp.EventBus.AbpEventBusModule
2022-08-23 22:21:24.882 +08:00 [INF] - Volo.Abp.Guids.AbpGuidsModule
2022-08-23 22:21:24.883 +08:00 [INF] - Volo.Abp.BackgroundWorkers.AbpBackgroundWorkersModule
2022-08-23 22:21:24.883 +08:00 [INF] - Volo.Abp.DistributedLocking.AbpDistributedLockingAbstractionsModule
2022-08-23 22:21:24.884 +08:00 [INF] - Volo.Abp.ObjectMapping.AbpObjectMappingModule
2022-08-23 22:21:24.884 +08:00 [INF] - Volo.Abp.ExceptionHandling.AbpExceptionHandlingModule
2022-08-23 22:21:24.885 +08:00 [INF] - Volo.Abp.Specifications.AbpSpecificationsModule
2022-08-23 22:21:24.885 +08:00 [INF] - Lion.AbpPro.BasicManagement.BasicManagementDomainSharedModule
2022-08-23 22:21:24.886 +08:00 [INF] - Volo.Abp.AuditLogging.AbpAuditLoggingDomainSharedModule
2022-08-23 22:21:24.887 +08:00 [INF] - Volo.Abp.BackgroundJobs.AbpBackgroundJobsDomainSharedModule
2022-08-23 22:21:24.887 +08:00 [INF] - Volo.Abp.FeatureManagement.AbpFeatureManagementDomainSharedModule
2022-08-23 22:21:24.888 +08:00 [INF] - Volo.Abp.Validation.AbpValidationModule
2022-08-23 22:21:24.888 +08:00 [INF] - Volo.Abp.Identity.AbpIdentityDomainSharedModule
2022-08-23 22:21:24.889 +08:00 [INF] - Volo.Abp.Users.AbpUsersDomainSharedModule
2022-08-23 22:21:24.889 +08:00 [INF] - Volo.Abp.Features.AbpFeaturesModule
2022-08-23 22:21:24.890 +08:00 [INF] - Volo.Abp.Authorization.AbpAuthorizationAbstractionsModule
2022-08-23 22:21:24.890 +08:00 [INF] - Volo.Abp.PermissionManagement.AbpPermissionManagementDomainSharedModule
2022-08-23 22:21:24.891 +08:00 [INF] - Volo.Abp.SettingManagement.AbpSettingManagementDomainSharedModule
2022-08-23 22:21:24.891 +08:00 [INF] - Volo.Abp.TenantManagement.AbpTenantManagementDomainSharedModule
2022-08-23 22:21:24.892 +08:00 [INF] - Volo.Abp.AuditLogging.AbpAuditLoggingDomainModule
2022-08-23 22:21:24.892 +08:00 [INF] - Volo.Abp.BackgroundJobs.AbpBackgroundJobsDomainModule
2022-08-23 22:21:24.893 +08:00 [INF] - Volo.Abp.BackgroundJobs.AbpBackgroundJobsModule
2022-08-23 22:21:24.893 +08:00 [INF] - Volo.Abp.BackgroundJobs.AbpBackgroundJobsAbstractionsModule
2022-08-23 22:21:24.894 +08:00 [INF] - Volo.Abp.AutoMapper.AbpAutoMapperModule
2022-08-23 22:21:24.896 +08:00 [INF] - Volo.Abp.FeatureManagement.AbpFeatureManagementDomainModule
2022-08-23 22:21:24.897 +08:00 [INF] - Volo.Abp.Caching.AbpCachingModule
2022-08-23 22:21:24.897 +08:00 [INF] - Volo.Abp.Serialization.AbpSerializationModule
2022-08-23 22:21:24.898 +08:00 [INF] - Volo.Abp.Identity.AbpIdentityDomainModule
2022-08-23 22:21:24.898 +08:00 [INF] - Volo.Abp.Users.AbpUsersDomainModule
2022-08-23 22:21:24.899 +08:00 [INF] - Volo.Abp.Users.AbpUsersAbstractionModule
2022-08-23 22:21:24.900 +08:00 [INF] - Volo.Abp.PermissionManagement.Identity.AbpPermissionManagementDomainIdentityModule
2022-08-23 22:21:24.900 +08:00 [INF] - Volo.Abp.PermissionManagement.AbpPermissionManagementDomainModule
2022-08-23 22:21:24.901 +08:00 [INF] - Volo.Abp.Authorization.AbpAuthorizationModule
2022-08-23 22:21:24.901 +08:00 [INF] - Volo.Abp.SettingManagement.AbpSettingManagementDomainModule
2022-08-23 22:21:24.902 +08:00 [INF] - Volo.Abp.TenantManagement.AbpTenantManagementDomainModule
2022-08-23 22:21:24.902 +08:00 [INF] - Lion.AbpPro.BasicManagement.BasicManagementApplicationContractsModule
2022-08-23 22:21:24.903 +08:00 [INF] - Volo.Abp.Application.AbpDddApplicationContractsModule
2022-08-23 22:21:24.903 +08:00 [INF] - Volo.Abp.Account.AbpAccountApplicationContractsModule
2022-08-23 22:21:24.904 +08:00 [INF] - Volo.Abp.Identity.AbpIdentityApplicationContractsModule
2022-08-23 22:21:24.905 +08:00 [INF] - Volo.Abp.PermissionManagement.AbpPermissionManagementApplicationContractsModule
2022-08-23 22:21:24.905 +08:00 [INF] - Volo.Abp.FeatureManagement.AbpFeatureManagementApplicationContractsModule
2022-08-23 22:21:24.906 +08:00 [INF] - Volo.Abp.SettingManagement.AbpSettingManagementApplicationContractsModule
2022-08-23 22:21:24.906 +08:00 [INF] - Volo.Abp.TenantManagement.AbpTenantManagementApplicationContractsModule
2022-08-23 22:21:24.907 +08:00 [INF] - Volo.Abp.Application.AbpDddApplicationModule
2022-08-23 22:21:24.907 +08:00 [INF] - Volo.Abp.Http.AbpHttpAbstractionsModule
2022-08-23 22:21:24.908 +08:00 [INF] - Volo.Abp.GlobalFeatures.AbpGlobalFeaturesModule
2022-08-23 22:21:24.908 +08:00 [INF] - Volo.Abp.Account.AbpAccountApplicationModule
2022-08-23 22:21:24.909 +08:00 [INF] - Volo.Abp.Identity.AbpIdentityApplicationModule
2022-08-23 22:21:24.909 +08:00 [INF] - Volo.Abp.PermissionManagement.AbpPermissionManagementApplicationModule
2022-08-23 22:21:24.910 +08:00 [INF] - Volo.Abp.UI.Navigation.AbpUiNavigationModule
2022-08-23 22:21:24.915 +08:00 [INF] - Volo.Abp.UI.AbpUiModule
2022-08-23 22:21:24.915 +08:00 [INF] - Volo.Abp.Emailing.AbpEmailingModule
2022-08-23 22:21:24.916 +08:00 [INF] - Volo.Abp.TextTemplating.AbpTextTemplatingModule
2022-08-23 22:21:24.916 +08:00 [INF] - Volo.Abp.TextTemplating.Scriban.AbpTextTemplatingScribanModule
2022-08-23 22:21:24.917 +08:00 [INF] - Volo.Abp.TextTemplating.AbpTextTemplatingCoreModule
2022-08-23 22:21:24.917 +08:00 [INF] - Volo.Abp.TenantManagement.AbpTenantManagementApplicationModule
2022-08-23 22:21:24.918 +08:00 [INF] - Volo.Abp.FeatureManagement.AbpFeatureManagementApplicationModule
2022-08-23 22:21:24.918 +08:00 [INF] - Volo.Abp.SettingManagement.AbpSettingManagementApplicationModule
2022-08-23 22:21:24.919 +08:00 [INF] - Lion.AbpPro.BasicManagement.EntityFrameworkCore.BasicManagementEntityFrameworkCoreModule
2022-08-23 22:21:24.920 +08:00 [INF] - Volo.Abp.EntityFrameworkCore.AbpEntityFrameworkCoreModule
2022-08-23 22:21:24.920 +08:00 [INF] - Volo.Abp.Identity.EntityFrameworkCore.AbpIdentityEntityFrameworkCoreModule
2022-08-23 22:21:24.921 +08:00 [INF] - Volo.Abp.Users.EntityFrameworkCore.AbpUsersEntityFrameworkCoreModule
2022-08-23 22:21:24.921 +08:00 [INF] - Volo.Abp.PermissionManagement.EntityFrameworkCore.AbpPermissionManagementEntityFrameworkCoreModule
2022-08-23 22:21:24.922 +08:00 [INF] - Volo.Abp.SettingManagement.EntityFrameworkCore.AbpSettingManagementEntityFrameworkCoreModule
2022-08-23 22:21:24.922 +08:00 [INF] - Volo.Abp.BackgroundJobs.EntityFrameworkCore.AbpBackgroundJobsEntityFrameworkCoreModule
2022-08-23 22:21:24.923 +08:00 [INF] - Volo.Abp.AuditLogging.EntityFrameworkCore.AbpAuditLoggingEntityFrameworkCoreModule
2022-08-23 22:21:24.923 +08:00 [INF] - Volo.Abp.TenantManagement.EntityFrameworkCore.AbpTenantManagementEntityFrameworkCoreModule
2022-08-23 22:21:24.924 +08:00 [INF] - Volo.Abp.FeatureManagement.EntityFrameworkCore.AbpFeatureManagementEntityFrameworkCoreModule
2022-08-23 22:21:24.925 +08:00 [INF] - Lion.AbpPro.BasicManagement.BasicManagementHttpApiModule
2022-08-23 22:21:24.925 +08:00 [INF] - Volo.Abp.AspNetCore.Mvc.AbpAspNetCoreMvcModule
2022-08-23 22:21:24.928 +08:00 [INF] - Volo.Abp.AspNetCore.AbpAspNetCoreModule
2022-08-23 22:21:24.928 +08:00 [INF] - Volo.Abp.Http.AbpHttpModule
2022-08-23 22:21:24.929 +08:00 [INF] - Volo.Abp.Minify.AbpMinifyModule
2022-08-23 22:21:24.930 +08:00 [INF] - Volo.Abp.ApiVersioning.AbpApiVersioningAbstractionsModule
2022-08-23 22:21:24.931 +08:00 [INF] - Volo.Abp.AspNetCore.Mvc.AbpAspNetCoreMvcContractsModule
2022-08-23 22:21:24.931 +08:00 [INF] - Volo.Abp.AspNetCore.Mvc.UI.MultiTenancy.AbpAspNetCoreMvcUiMultiTenancyModule
2022-08-23 22:21:24.932 +08:00 [INF] - Volo.Abp.AspNetCore.Mvc.UI.Theme.Shared.AbpAspNetCoreMvcUiThemeSharedModule
2022-08-23 22:21:24.932 +08:00 [INF] - Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.AbpAspNetCoreMvcUiBootstrapModule
2022-08-23 22:21:24.933 +08:00 [INF] - Volo.Abp.AspNetCore.Mvc.UI.AbpAspNetCoreMvcUiModule
2022-08-23 22:21:24.934 +08:00 [INF] - Volo.Abp.AspNetCore.Mvc.UI.Packages.AbpAspNetCoreMvcUiPackagesModule
2022-08-23 22:21:24.934 +08:00 [INF] - Volo.Abp.AspNetCore.Mvc.UI.Bundling.AbpAspNetCoreMvcUiBundlingAbstractionsModule
2022-08-23 22:21:24.935 +08:00 [INF] - Volo.Abp.AspNetCore.Mvc.UI.Widgets.AbpAspNetCoreMvcUiWidgetsModule
2022-08-23 22:21:24.935 +08:00 [INF] - Volo.Abp.AspNetCore.Mvc.UI.Bundling.AbpAspNetCoreMvcUiBundlingModule
2022-08-23 22:21:24.936 +08:00 [INF] - Volo.Abp.AspNetCore.MultiTenancy.AbpAspNetCoreMultiTenancyModule
2022-08-23 22:21:24.936 +08:00 [INF] - Volo.Abp.Autofac.AbpAutofacModule
2022-08-23 22:21:24.937 +08:00 [INF] - Volo.Abp.Castle.AbpCastleCoreModule
2022-08-23 22:21:24.937 +08:00 [INF] - Volo.Abp.Caching.StackExchangeRedis.AbpCachingStackExchangeRedisModule
2022-08-23 22:21:24.938 +08:00 [INF] - Volo.Abp.EntityFrameworkCore.MySQL.AbpEntityFrameworkCoreMySQLModule
2022-08-23 22:21:24.938 +08:00 [INF] - Volo.Abp.AspNetCore.Serilog.AbpAspNetCoreSerilogModule
2022-08-23 22:21:24.939 +08:00 [INF] - Volo.Abp.Swashbuckle.AbpSwashbuckleModule
2022-08-23 22:21:24.939 +08:00 [INF] - Lion.AbpPro.Shared.Hosting.Microservices.SharedHostingMicroserviceModule
2022-08-23 22:21:25.334 +08:00 [INF] Initialized all ABP modules.
2022-08-23 22:21:25.376 +08:00 [INF] Now listening on: http://localhost:44324
2022-08-23 22:21:25.378 +08:00 [INF] Application started. Press Ctrl+C to shut down.
2022-08-23 22:21:25.379 +08:00 [INF] Hosting environment: Development
2022-08-23 22:21:25.379 +08:00 [INF] Content root path: D:\github\WangJunZzz\abp-vnext-pro\aspnet-core\modules\BasicManagement\host\Lion.AbpPro.BasicManagement.HttpApi.Host
2022-08-23 22:21:25.784 +08:00 [INF] Request starting HTTP/1.1 GET http://localhost:44324/ - -
2022-08-23 22:21:25.792 +08:00 [WRN] Failed to determine the https port for redirect.
2022-08-23 22:21:28.295 +08:00 [INF] Executing endpoint 'Lion.AbpPro.BasicManagement.Controllers.HomeController.Index (Lion.AbpPro.BasicManagement.HttpApi.Host)'
2022-08-23 22:21:28.317 +08:00 [INF] Route matched with {action = "Index", controller = "Home", area = "", page = ""}. Executing controller action with signature Microsoft.AspNetCore.Mvc.ActionResult Index() on controller Lion.AbpPro.BasicManagement.Controllers.HomeController (Lion.AbpPro.BasicManagement.HttpApi.Host).
2022-08-23 22:21:28.351 +08:00 [INF] Executing RedirectResult, redirecting to /swagger.
2022-08-23 22:21:28.360 +08:00 [INF] Executed action Lion.AbpPro.BasicManagement.Controllers.HomeController.Index (Lion.AbpPro.BasicManagement.HttpApi.Host) in 36.344ms
2022-08-23 22:21:28.364 +08:00 [INF] Executed endpoint 'Lion.AbpPro.BasicManagement.Controllers.HomeController.Index (Lion.AbpPro.BasicManagement.HttpApi.Host)'
2022-08-23 22:21:28.383 +08:00 [INF] Request finished HTTP/1.1 GET http://localhost:44324/ - - - 302 0 - 2599.4371ms
2022-08-23 22:21:28.390 +08:00 [INF] Request starting HTTP/1.1 GET http://localhost:44324/swagger - -
2022-08-23 22:21:28.396 +08:00 [INF] Request finished HTTP/1.1 GET http://localhost:44324/swagger - - - 301 0 - 5.4534ms
2022-08-23 22:21:28.402 +08:00 [INF] Request starting HTTP/1.1 GET http://localhost:44324/swagger/index.html - -
2022-08-23 22:21:28.476 +08:00 [INF] Request finished HTTP/1.1 GET http://localhost:44324/swagger/index.html - - - 200 - text/html;charset=utf-8 73.9537ms
2022-08-23 22:21:28.521 +08:00 [INF] Request starting HTTP/1.1 GET http://localhost:44324/swagger/swagger-ui.css - -
2022-08-23 22:21:28.522 +08:00 [INF] Request starting HTTP/1.1 GET http://localhost:44324/swagger/ui/abp.js - -
2022-08-23 22:21:28.527 +08:00 [INF] Request starting HTTP/1.1 GET http://localhost:44324/swagger/ui/abp.swagger.js - -
2022-08-23 22:21:28.528 +08:00 [INF] Request starting HTTP/1.1 GET http://localhost:44324/swagger/swagger-ui-bundle.js - -
2022-08-23 22:21:28.530 +08:00 [INF] Request starting HTTP/1.1 GET http://localhost:44324/swagger/swagger-ui-standalone-preset.js - -
2022-08-23 22:21:28.547 +08:00 [INF] Sending file. Request path: '/swagger/ui/abp.js'. Physical path: 'N/A'
2022-08-23 22:21:28.547 +08:00 [INF] Sending file. Request path: '/swagger/ui/abp.swagger.js'. Physical path: 'N/A'
2022-08-23 22:21:28.553 +08:00 [INF] Request finished HTTP/1.1 GET http://localhost:44324/swagger/ui/abp.js - - - 200 3122 application/javascript 30.6392ms
2022-08-23 22:21:28.560 +08:00 [INF] Request finished HTTP/1.1 GET http://localhost:44324/swagger/ui/abp.swagger.js - - - 200 1246 application/javascript 33.7304ms
2022-08-23 22:21:28.571 +08:00 [INF] Sending file. Request path: '/swagger-ui.css'. Physical path: 'N/A'
2022-08-23 22:21:28.580 +08:00 [INF] Sending file. Request path: '/swagger-ui-standalone-preset.js'. Physical path: 'N/A'
2022-08-23 22:21:28.584 +08:00 [INF] Request finished HTTP/1.1 GET http://localhost:44324/swagger/swagger-ui.css - - - 200 143943 text/css 63.6951ms
2022-08-23 22:21:28.585 +08:00 [INF] Request finished HTTP/1.1 GET http://localhost:44324/swagger/swagger-ui-standalone-preset.js - - - 200 339486 application/javascript 55.0516ms
2022-08-23 22:21:28.595 +08:00 [INF] Sending file. Request path: '/swagger-ui-bundle.js'. Physical path: 'N/A'
2022-08-23 22:21:28.597 +08:00 [INF] Request finished HTTP/1.1 GET http://localhost:44324/swagger/swagger-ui-bundle.js - - - 200 1095087 application/javascript 68.6634ms
2022-08-23 22:21:28.885 +08:00 [INF] Request starting HTTP/1.1 GET http://localhost:44324/swagger/BasicManagement/swagger.json - -
2022-08-23 22:21:28.932 +08:00 [INF] Request starting HTTP/1.1 GET http://localhost:44324/swagger/favicon-32x32.png - -
2022-08-23 22:21:28.948 +08:00 [INF] Sending file. Request path: '/favicon-32x32.png'. Physical path: 'N/A'
2022-08-23 22:21:28.951 +08:00 [INF] Request finished HTTP/1.1 GET http://localhost:44324/swagger/favicon-32x32.png - - - 200 628 image/png 18.9267ms
2022-08-23 22:21:29.159 +08:00 [INF] Request finished HTTP/1.1 GET http://localhost:44324/swagger/BasicManagement/swagger.json - - - 200 - application/json;charset=utf-8 273.8320ms
2022-08-23 22:21:39.697 +08:00 [INF] Request starting HTTP/1.1 GET http://localhost:44324/abp/Swashbuckle/SetCsrfCookie application/json -
2022-08-23 22:21:39.700 +08:00 [INF] Executing endpoint 'Volo.Abp.Swashbuckle.AbpSwashbuckleController.SetCsrfCookie (Volo.Abp.Swashbuckle)'
2022-08-23 22:21:39.702 +08:00 [INF] Route matched with {area = "Abp", action = "SetCsrfCookie", controller = "AbpSwashbuckle", page = ""}. Executing controller action with signature Void SetCsrfCookie() on controller Volo.Abp.Swashbuckle.AbpSwashbuckleController (Volo.Abp.Swashbuckle).
2022-08-23 22:21:39.713 +08:00 [WRN] The cookie 'XSRF-TOKEN' has set 'SameSite=None' and must also set 'Secure'.
2022-08-23 22:21:39.714 +08:00 [INF] Executed action Volo.Abp.Swashbuckle.AbpSwashbuckleController.SetCsrfCookie (Volo.Abp.Swashbuckle) in 10.3525ms
2022-08-23 22:21:39.715 +08:00 [INF] Executed endpoint 'Volo.Abp.Swashbuckle.AbpSwashbuckleController.SetCsrfCookie (Volo.Abp.Swashbuckle)'
2022-08-23 22:21:39.716 +08:00 [INF] Request finished HTTP/1.1 GET http://localhost:44324/abp/Swashbuckle/SetCsrfCookie application/json - - 204 - - 18.5906ms
2022-08-23 22:21:39.751 +08:00 [INF] Request starting HTTP/1.1 POST http://localhost:44324/api/app/account/login application/json 46
2022-08-23 22:21:39.753 +08:00 [INF] No CORS policy found for the specified request.
2022-08-23 22:21:39.754 +08:00 [INF] Executing endpoint 'Lion.AbpPro.BasicManagement.Systems.AccountController.LoginAsync (Lion.AbpPro.BasicManagement.HttpApi)'
2022-08-23 22:21:39.763 +08:00 [INF] Route matched with {action = "Login", controller = "Account", area = "", page = ""}. Executing controller action with signature System.Threading.Tasks.Task`1[Lion.AbpPro.BasicManagement.Users.Dtos.LoginOutput] LoginAsync(Lion.AbpPro.BasicManagement.Users.Dtos.LoginInput) on controller Lion.AbpPro.BasicManagement.Systems.AccountController (Lion.AbpPro.BasicManagement.HttpApi).
2022-08-23 22:21:39.801 +08:00 [ERR] ---------- RemoteServiceErrorInfo ----------
{
"code": null,
"message": "对不起,在处理你的请求期间,产生了一个服务器内部错误!",
"details": null,
"data": {
"ActivatorChain": "Lion.AbpPro.BasicManagement.Systems.AccountController -> Lion.AbpPro.BasicManagement.Users.AccountAppService"
},
"validationErrors": null
}
2022-08-23 22:21:39.803 +08:00 [ERR] An exception was thrown while activating Lion.AbpPro.BasicManagement.Systems.AccountController -> Lion.AbpPro.BasicManagement.Users.AccountAppService.
Autofac.Core.DependencyResolutionException: An exception was thrown while activating Lion.AbpPro.BasicManagement.Systems.AccountController -> Lion.AbpPro.BasicManagement.Users.AccountAppService.
---> Autofac.Core.DependencyResolutionException: None of the constructors found with 'Autofac.Core.Activators.Reflection.DefaultConstructorFinder' on type 'Lion.AbpPro.BasicManagement.Users.AccountAppService' can be invoked with the available services and parameters:
Cannot resolve parameter 'Microsoft.AspNetCore.Identity.SignInManager`1[Volo.Abp.Identity.IdentityUser] signInManager' of constructor 'Void .ctor(Volo.Abp.Identity.IdentityUserManager, Microsoft.Extensions.Options.IOptionsSnapshot`1[Lion.AbpPro.BasicManagement.ConfigurationOptions.JwtOptions], Microsoft.AspNetCore.Identity.SignInManager`1[Volo.Abp.Identity.IdentityUser])'.
at Autofac.Core.Activators.Reflection.ReflectionActivator.GetAllBindings(ConstructorBinder[] availableConstructors, IComponentContext context, IEnumerable`1 parameters)
at Autofac.Core.Activators.Reflection.ReflectionActivator.ActivateInstance(IComponentContext context, IEnumerable`1 parameters)
at Autofac.Core.Activators.Reflection.ReflectionActivator.<ConfigurePipeline>b__11_0(ResolveRequestContext ctxt, Action`1 next)
at Autofac.Core.Resolving.Middleware.DelegateMiddleware.Execute(ResolveRequestContext context, Action`1 next)
at Autofac.Core.Resolving.Pipeline.ResolvePipelineBuilder.<>c__DisplayClass14_0.<BuildPipeline>b__1(ResolveRequestContext ctxt)
at Autofac.Core.Resolving.Middleware.DisposalTrackingMiddleware.Execute(ResolveRequestContext context, Action`1 next)
at Autofac.Core.Resolving.Pipeline.ResolvePipelineBuilder.<>c__DisplayClass14_0.<BuildPipeline>b__1(ResolveRequestContext ctxt)
at Autofac.Builder.RegistrationBuilder`3.<>c__DisplayClass41_0.<PropertiesAutowired>b__0(ResolveRequestContext ctxt, Action`1 next)
at Autofac.Core.Resolving.Middleware.DelegateMiddleware.Execute(ResolveRequestContext context, Action`1 next)
at Autofac.Core.Resolving.Pipeline.ResolvePipelineBuilder.<>c__DisplayClass14_0.<BuildPipeline>b__1(ResolveRequestContext ctxt)
at Autofac.Extras.DynamicProxy.RegistrationExtensions.<>c__DisplayClass8_0`3.<EnableInterfaceInterceptors>b__1(ResolveRequestContext ctxt, Action`1 next)
at Autofac.Core.Resolving.Middleware.DelegateMiddleware.Execute(ResolveRequestContext context, Action`1 next)
at Autofac.Core.Resolving.Pipeline.ResolvePipelineBuilder.<>c__DisplayClass14_0.<BuildPipeline>b__1(ResolveRequestContext ctxt)
at Autofac.Core.Resolving.Middleware.ActivatorErrorHandlingMiddleware.Execute(ResolveRequestContext context, Action`1 next)
--- End of inner exception stack trace ---
at Autofac.Core.Resolving.Middleware.ActivatorErrorHandlingMiddleware.Execute(ResolveRequestContext context, Action`1 next)
at Autofac.Core.Resolving.Pipeline.ResolvePipelineBuilder.<>c__DisplayClass14_0.<BuildPipeline>b__1(ResolveRequestContext ctxt)
at Autofac.Core.Pipeline.ResolvePipeline.Invoke(ResolveRequestContext ctxt)
at Autofac.Core.Resolving.Middleware.RegistrationPipelineInvokeMiddleware.Execute(ResolveRequestContext context, Action`1 next)
at Autofac.Core.Resolving.Pipeline.ResolvePipelineBuilder.<>c__DisplayClass14_0.<BuildPipeline>b__1(ResolveRequestContext ctxt)
at Autofac.Core.Resolving.Middleware.SharingMiddleware.Execute(ResolveRequestContext context, Action`1 next)
at Autofac.Core.Resolving.Pipeline.ResolvePipelineBuilder.<>c__DisplayClass14_0.<BuildPipeline>b__1(ResolveRequestContext ctxt)
at Autofac.Core.Resolving.Middleware.ScopeSelectionMiddleware.Execute(ResolveRequestContext context, Action`1 next)
at Autofac.Core.Resolving.Pipeline.ResolvePipelineBuilder.<>c__DisplayClass14_0.<BuildPipeline>b__1(ResolveRequestContext ctxt)
at Autofac.Core.Resolving.Middleware.CircularDependencyDetectorMiddleware.Execute(ResolveRequestContext context, Action`1 next)
at Autofac.Core.Resolving.Pipeline.ResolvePipelineBuilder.<>c__DisplayClass14_0.<BuildPipeline>b__1(ResolveRequestContext ctxt)
at Autofac.Core.Pipeline.ResolvePipeline.Invoke(ResolveRequestContext ctxt)
at Autofac.Core.Resolving.ResolveOperation.GetOrCreateInstance(ISharingLifetimeScope currentOperationScope, ResolveRequest request)
at Autofac.Core.Resolving.ResolveOperation.ExecuteOperation(ResolveRequest request)
at Autofac.Core.Resolving.ResolveOperation.Execute(ResolveRequest request)
at Autofac.Core.Lifetime.LifetimeScope.ResolveComponent(ResolveRequest request)
at Autofac.ResolutionExtensions.TryResolveService(IComponentContext context, Service service, IEnumerable`1 parameters, Object& instance)
at Autofac.ResolutionExtensions.ResolveService(IComponentContext context, Service service, IEnumerable`1 parameters)
at Autofac.ResolutionExtensions.Resolve(IComponentContext context, Type serviceType, IEnumerable`1 parameters)
at Autofac.ResolutionExtensions.Resolve(IComponentContext context, Type serviceType)
at Autofac.Extensions.DependencyInjection.AutofacServiceProvider.GetRequiredService(Type serviceType)
at Microsoft.Extensions.DependencyInjection.ServiceProviderServiceExtensions.GetRequiredService(IServiceProvider provider, Type serviceType)
at Microsoft.AspNetCore.Mvc.Controllers.ServiceBasedControllerActivator.Create(ControllerContext actionContext)
at Microsoft.AspNetCore.Mvc.Controllers.ControllerFactoryProvider.<>c__DisplayClass6_0.<CreateControllerFactory>g__CreateController|0(ControllerContext controllerContext)
at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.Next(State& next, Scope& scope, Object& state, Boolean& isCompleted)
at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.InvokeInnerFilterAsync()
--- End of stack trace from previous location ---
at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.<InvokeNextExceptionFilterAsync>g__Awaited|26_0(ResourceInvoker invoker, Task lastTask, State next, Scope scope, Object state, Boolean isCompleted)
2022-08-23 22:21:39.845 +08:00 [ERR] ---------- Exception Data ----------
ActivatorChain = Lion.AbpPro.BasicManagement.Systems.AccountController -> Lion.AbpPro.BasicManagement.Users.AccountAppService
2022-08-23 22:21:39.853 +08:00 [INF] Executing ObjectResult, writing value of type 'Volo.Abp.Http.RemoteServiceErrorResponse'.
2022-08-23 22:21:39.858 +08:00 [INF] Executed action Lion.AbpPro.BasicManagement.Systems.AccountController.LoginAsync (Lion.AbpPro.BasicManagement.HttpApi) in 93.438ms
2022-08-23 22:21:39.862 +08:00 [INF] Executed endpoint 'Lion.AbpPro.BasicManagement.Systems.AccountController.LoginAsync (Lion.AbpPro.BasicManagement.HttpApi)'
2022-08-23 22:21:40.175 +08:00 [INF] Request finished HTTP/1.1 POST http://localhost:44324/api/app/account/login application/json 46 - 500 - application/json;+charset=utf-8 424.1464ms

16
aspnet-core/modules/BasicManagement/host/Lion.AbpPro.BasicManagement.HttpApi.Host/Logs/logs.txt

@ -0,0 +1,16 @@
2022-08-23 22:11:33.863 +08:00 [INF] Starting web host.
2022-08-23 22:11:39.197 +08:00 [FTL] Host terminated unexpectedly!
Microsoft.Extensions.Hosting.HostFactoryResolver+HostingListener+StopTheHostException: Exception of type 'Microsoft.Extensions.Hosting.HostFactoryResolver+HostingListener+StopTheHostException' was thrown.
at Microsoft.Extensions.Hosting.HostFactoryResolver.HostingListener.OnNext(KeyValuePair`2 value)
at System.Diagnostics.DiagnosticListener.Write(String name, Object value)
at Microsoft.Extensions.Hosting.HostBuilder.Build()
at Microsoft.AspNetCore.Builder.WebApplicationBuilder.Build()
at Lion.AbpPro.BasicManagement.Program.Main(String[] args) in D:\github\WangJunZzz\abp-vnext-pro\aspnet-core\modules\BasicManagement\host\Lion.AbpPro.BasicManagement.HttpApi.Host\Program.cs:line 36
2022-08-23 22:13:21.209 +08:00 [INF] Starting web host.
2022-08-23 22:13:22.124 +08:00 [FTL] Host terminated unexpectedly!
Microsoft.Extensions.Hosting.HostFactoryResolver+HostingListener+StopTheHostException: Exception of type 'Microsoft.Extensions.Hosting.HostFactoryResolver+HostingListener+StopTheHostException' was thrown.
at Microsoft.Extensions.Hosting.HostFactoryResolver.HostingListener.OnNext(KeyValuePair`2 value)
at System.Diagnostics.DiagnosticListener.Write(String name, Object value)
at Microsoft.Extensions.Hosting.HostBuilder.Build()
at Microsoft.AspNetCore.Builder.WebApplicationBuilder.Build()
at Lion.AbpPro.BasicManagement.Program.Main(String[] args) in D:\github\WangJunZzz\abp-vnext-pro\aspnet-core\modules\BasicManagement\host\Lion.AbpPro.BasicManagement.HttpApi.Host\Program.cs:line 36

1295
aspnet-core/modules/BasicManagement/host/Lion.AbpPro.BasicManagement.HttpApi.Host/Migrations/20220823141140_Init.Designer.cs

File diff suppressed because it is too large

880
aspnet-core/modules/BasicManagement/host/Lion.AbpPro.BasicManagement.HttpApi.Host/Migrations/20220823141140_Init.cs

@ -0,0 +1,880 @@
using System;
using Microsoft.EntityFrameworkCore.Migrations;
#nullable disable
namespace Lion.AbpPro.BasicManagement.Migrations
{
public partial class Init : Migration
{
protected override void Up(MigrationBuilder migrationBuilder)
{
migrationBuilder.AlterDatabase()
.Annotation("MySql:CharSet", "utf8mb4");
migrationBuilder.CreateTable(
name: "AbpAuditLogs",
columns: table => new
{
Id = table.Column<Guid>(type: "char(36)", nullable: false, collation: "ascii_general_ci"),
ApplicationName = table.Column<string>(type: "varchar(96)", maxLength: 96, nullable: true)
.Annotation("MySql:CharSet", "utf8mb4"),
UserId = table.Column<Guid>(type: "char(36)", nullable: true, collation: "ascii_general_ci"),
UserName = table.Column<string>(type: "varchar(256)", maxLength: 256, nullable: true)
.Annotation("MySql:CharSet", "utf8mb4"),
TenantId = table.Column<Guid>(type: "char(36)", nullable: true, collation: "ascii_general_ci"),
TenantName = table.Column<string>(type: "varchar(64)", maxLength: 64, nullable: true)
.Annotation("MySql:CharSet", "utf8mb4"),
ImpersonatorUserId = table.Column<Guid>(type: "char(36)", nullable: true, collation: "ascii_general_ci"),
ImpersonatorUserName = table.Column<string>(type: "varchar(256)", maxLength: 256, nullable: true)
.Annotation("MySql:CharSet", "utf8mb4"),
ImpersonatorTenantId = table.Column<Guid>(type: "char(36)", nullable: true, collation: "ascii_general_ci"),
ImpersonatorTenantName = table.Column<string>(type: "varchar(64)", maxLength: 64, nullable: true)
.Annotation("MySql:CharSet", "utf8mb4"),
ExecutionTime = table.Column<DateTime>(type: "datetime(6)", nullable: false),
ExecutionDuration = table.Column<int>(type: "int", nullable: false),
ClientIpAddress = table.Column<string>(type: "varchar(64)", maxLength: 64, nullable: true)
.Annotation("MySql:CharSet", "utf8mb4"),
ClientName = table.Column<string>(type: "varchar(128)", maxLength: 128, nullable: true)
.Annotation("MySql:CharSet", "utf8mb4"),
ClientId = table.Column<string>(type: "varchar(64)", maxLength: 64, nullable: true)
.Annotation("MySql:CharSet", "utf8mb4"),
CorrelationId = table.Column<string>(type: "varchar(64)", maxLength: 64, nullable: true)
.Annotation("MySql:CharSet", "utf8mb4"),
BrowserInfo = table.Column<string>(type: "varchar(512)", maxLength: 512, nullable: true)
.Annotation("MySql:CharSet", "utf8mb4"),
HttpMethod = table.Column<string>(type: "varchar(16)", maxLength: 16, nullable: true)
.Annotation("MySql:CharSet", "utf8mb4"),
Url = table.Column<string>(type: "varchar(256)", maxLength: 256, nullable: true)
.Annotation("MySql:CharSet", "utf8mb4"),
Exceptions = table.Column<string>(type: "longtext", nullable: true)
.Annotation("MySql:CharSet", "utf8mb4"),
Comments = table.Column<string>(type: "varchar(256)", maxLength: 256, nullable: true)
.Annotation("MySql:CharSet", "utf8mb4"),
HttpStatusCode = table.Column<int>(type: "int", nullable: true),
ExtraProperties = table.Column<string>(type: "longtext", nullable: true)
.Annotation("MySql:CharSet", "utf8mb4"),
ConcurrencyStamp = table.Column<string>(type: "varchar(40)", maxLength: 40, nullable: true)
.Annotation("MySql:CharSet", "utf8mb4")
},
constraints: table =>
{
table.PrimaryKey("PK_AbpAuditLogs", x => x.Id);
})
.Annotation("MySql:CharSet", "utf8mb4");
migrationBuilder.CreateTable(
name: "AbpBackgroundJobs",
columns: table => new
{
Id = table.Column<Guid>(type: "char(36)", nullable: false, collation: "ascii_general_ci"),
JobName = table.Column<string>(type: "varchar(128)", maxLength: 128, nullable: false)
.Annotation("MySql:CharSet", "utf8mb4"),
JobArgs = table.Column<string>(type: "longtext", maxLength: 1048576, nullable: false)
.Annotation("MySql:CharSet", "utf8mb4"),
TryCount = table.Column<short>(type: "smallint", nullable: false, defaultValue: (short)0),
CreationTime = table.Column<DateTime>(type: "datetime(6)", nullable: false),
NextTryTime = table.Column<DateTime>(type: "datetime(6)", nullable: false),
LastTryTime = table.Column<DateTime>(type: "datetime(6)", nullable: true),
IsAbandoned = table.Column<bool>(type: "tinyint(1)", nullable: false, defaultValue: false),
Priority = table.Column<byte>(type: "tinyint unsigned", nullable: false, defaultValue: (byte)15),
ExtraProperties = table.Column<string>(type: "longtext", nullable: true)
.Annotation("MySql:CharSet", "utf8mb4"),
ConcurrencyStamp = table.Column<string>(type: "varchar(40)", maxLength: 40, nullable: true)
.Annotation("MySql:CharSet", "utf8mb4")
},
constraints: table =>
{
table.PrimaryKey("PK_AbpBackgroundJobs", x => x.Id);
})
.Annotation("MySql:CharSet", "utf8mb4");
migrationBuilder.CreateTable(
name: "AbpClaimTypes",
columns: table => new
{
Id = table.Column<Guid>(type: "char(36)", nullable: false, collation: "ascii_general_ci"),
Name = table.Column<string>(type: "varchar(256)", maxLength: 256, nullable: false)
.Annotation("MySql:CharSet", "utf8mb4"),
Required = table.Column<bool>(type: "tinyint(1)", nullable: false),
IsStatic = table.Column<bool>(type: "tinyint(1)", nullable: false),
Regex = table.Column<string>(type: "varchar(512)", maxLength: 512, nullable: true)
.Annotation("MySql:CharSet", "utf8mb4"),
RegexDescription = table.Column<string>(type: "varchar(128)", maxLength: 128, nullable: true)
.Annotation("MySql:CharSet", "utf8mb4"),
Description = table.Column<string>(type: "varchar(256)", maxLength: 256, nullable: true)
.Annotation("MySql:CharSet", "utf8mb4"),
ValueType = table.Column<int>(type: "int", nullable: false),
ExtraProperties = table.Column<string>(type: "longtext", nullable: true)
.Annotation("MySql:CharSet", "utf8mb4"),
ConcurrencyStamp = table.Column<string>(type: "varchar(40)", maxLength: 40, nullable: true)
.Annotation("MySql:CharSet", "utf8mb4")
},
constraints: table =>
{
table.PrimaryKey("PK_AbpClaimTypes", x => x.Id);
})
.Annotation("MySql:CharSet", "utf8mb4");
migrationBuilder.CreateTable(
name: "AbpFeatureValues",
columns: table => new
{
Id = table.Column<Guid>(type: "char(36)", nullable: false, collation: "ascii_general_ci"),
Name = table.Column<string>(type: "varchar(128)", maxLength: 128, nullable: false)
.Annotation("MySql:CharSet", "utf8mb4"),
Value = table.Column<string>(type: "varchar(128)", maxLength: 128, nullable: false)
.Annotation("MySql:CharSet", "utf8mb4"),
ProviderName = table.Column<string>(type: "varchar(64)", maxLength: 64, nullable: true)
.Annotation("MySql:CharSet", "utf8mb4"),
ProviderKey = table.Column<string>(type: "varchar(64)", maxLength: 64, nullable: true)
.Annotation("MySql:CharSet", "utf8mb4")
},
constraints: table =>
{
table.PrimaryKey("PK_AbpFeatureValues", x => x.Id);
})
.Annotation("MySql:CharSet", "utf8mb4");
migrationBuilder.CreateTable(
name: "AbpLinkUsers",
columns: table => new
{
Id = table.Column<Guid>(type: "char(36)", nullable: false, collation: "ascii_general_ci"),
SourceUserId = table.Column<Guid>(type: "char(36)", nullable: false, collation: "ascii_general_ci"),
SourceTenantId = table.Column<Guid>(type: "char(36)", nullable: true, collation: "ascii_general_ci"),
TargetUserId = table.Column<Guid>(type: "char(36)", nullable: false, collation: "ascii_general_ci"),
TargetTenantId = table.Column<Guid>(type: "char(36)", nullable: true, collation: "ascii_general_ci")
},
constraints: table =>
{
table.PrimaryKey("PK_AbpLinkUsers", x => x.Id);
})
.Annotation("MySql:CharSet", "utf8mb4");
migrationBuilder.CreateTable(
name: "AbpOrganizationUnits",
columns: table => new
{
Id = table.Column<Guid>(type: "char(36)", nullable: false, collation: "ascii_general_ci"),
TenantId = table.Column<Guid>(type: "char(36)", nullable: true, collation: "ascii_general_ci"),
ParentId = table.Column<Guid>(type: "char(36)", nullable: true, collation: "ascii_general_ci"),
Code = table.Column<string>(type: "varchar(95)", maxLength: 95, nullable: false)
.Annotation("MySql:CharSet", "utf8mb4"),
DisplayName = table.Column<string>(type: "varchar(128)", maxLength: 128, nullable: false)
.Annotation("MySql:CharSet", "utf8mb4"),
ExtraProperties = table.Column<string>(type: "longtext", nullable: true)
.Annotation("MySql:CharSet", "utf8mb4"),
ConcurrencyStamp = table.Column<string>(type: "varchar(40)", maxLength: 40, nullable: true)
.Annotation("MySql:CharSet", "utf8mb4"),
CreationTime = table.Column<DateTime>(type: "datetime(6)", nullable: false),
CreatorId = table.Column<Guid>(type: "char(36)", nullable: true, collation: "ascii_general_ci"),
LastModificationTime = table.Column<DateTime>(type: "datetime(6)", nullable: true),
LastModifierId = table.Column<Guid>(type: "char(36)", nullable: true, collation: "ascii_general_ci"),
IsDeleted = table.Column<bool>(type: "tinyint(1)", nullable: false, defaultValue: false),
DeleterId = table.Column<Guid>(type: "char(36)", nullable: true, collation: "ascii_general_ci"),
DeletionTime = table.Column<DateTime>(type: "datetime(6)", nullable: true)
},
constraints: table =>
{
table.PrimaryKey("PK_AbpOrganizationUnits", x => x.Id);
table.ForeignKey(
name: "FK_AbpOrganizationUnits_AbpOrganizationUnits_ParentId",
column: x => x.ParentId,
principalTable: "AbpOrganizationUnits",
principalColumn: "Id");
})
.Annotation("MySql:CharSet", "utf8mb4");
migrationBuilder.CreateTable(
name: "AbpPermissionGrants",
columns: table => new
{
Id = table.Column<Guid>(type: "char(36)", nullable: false, collation: "ascii_general_ci"),
TenantId = table.Column<Guid>(type: "char(36)", nullable: true, collation: "ascii_general_ci"),
Name = table.Column<string>(type: "varchar(128)", maxLength: 128, nullable: false)
.Annotation("MySql:CharSet", "utf8mb4"),
ProviderName = table.Column<string>(type: "varchar(64)", maxLength: 64, nullable: false)
.Annotation("MySql:CharSet", "utf8mb4"),
ProviderKey = table.Column<string>(type: "varchar(64)", maxLength: 64, nullable: false)
.Annotation("MySql:CharSet", "utf8mb4")
},
constraints: table =>
{
table.PrimaryKey("PK_AbpPermissionGrants", x => x.Id);
})
.Annotation("MySql:CharSet", "utf8mb4");
migrationBuilder.CreateTable(
name: "AbpRoles",
columns: table => new
{
Id = table.Column<Guid>(type: "char(36)", nullable: false, collation: "ascii_general_ci"),
TenantId = table.Column<Guid>(type: "char(36)", nullable: true, collation: "ascii_general_ci"),
Name = table.Column<string>(type: "varchar(256)", maxLength: 256, nullable: false)
.Annotation("MySql:CharSet", "utf8mb4"),
NormalizedName = table.Column<string>(type: "varchar(256)", maxLength: 256, nullable: false)
.Annotation("MySql:CharSet", "utf8mb4"),
IsDefault = table.Column<bool>(type: "tinyint(1)", nullable: false),
IsStatic = table.Column<bool>(type: "tinyint(1)", nullable: false),
IsPublic = table.Column<bool>(type: "tinyint(1)", nullable: false),
ExtraProperties = table.Column<string>(type: "longtext", nullable: true)
.Annotation("MySql:CharSet", "utf8mb4"),
ConcurrencyStamp = table.Column<string>(type: "varchar(40)", maxLength: 40, nullable: true)
.Annotation("MySql:CharSet", "utf8mb4")
},
constraints: table =>
{
table.PrimaryKey("PK_AbpRoles", x => x.Id);
})
.Annotation("MySql:CharSet", "utf8mb4");
migrationBuilder.CreateTable(
name: "AbpSecurityLogs",
columns: table => new
{
Id = table.Column<Guid>(type: "char(36)", nullable: false, collation: "ascii_general_ci"),
TenantId = table.Column<Guid>(type: "char(36)", nullable: true, collation: "ascii_general_ci"),
ApplicationName = table.Column<string>(type: "varchar(96)", maxLength: 96, nullable: true)
.Annotation("MySql:CharSet", "utf8mb4"),
Identity = table.Column<string>(type: "varchar(96)", maxLength: 96, nullable: true)
.Annotation("MySql:CharSet", "utf8mb4"),
Action = table.Column<string>(type: "varchar(96)", maxLength: 96, nullable: true)
.Annotation("MySql:CharSet", "utf8mb4"),
UserId = table.Column<Guid>(type: "char(36)", nullable: true, collation: "ascii_general_ci"),
UserName = table.Column<string>(type: "varchar(256)", maxLength: 256, nullable: true)
.Annotation("MySql:CharSet", "utf8mb4"),
TenantName = table.Column<string>(type: "varchar(64)", maxLength: 64, nullable: true)
.Annotation("MySql:CharSet", "utf8mb4"),
ClientId = table.Column<string>(type: "varchar(64)", maxLength: 64, nullable: true)
.Annotation("MySql:CharSet", "utf8mb4"),
CorrelationId = table.Column<string>(type: "varchar(64)", maxLength: 64, nullable: true)
.Annotation("MySql:CharSet", "utf8mb4"),
ClientIpAddress = table.Column<string>(type: "varchar(64)", maxLength: 64, nullable: true)
.Annotation("MySql:CharSet", "utf8mb4"),
BrowserInfo = table.Column<string>(type: "varchar(512)", maxLength: 512, nullable: true)
.Annotation("MySql:CharSet", "utf8mb4"),
CreationTime = table.Column<DateTime>(type: "datetime(6)", nullable: false),
ExtraProperties = table.Column<string>(type: "longtext", nullable: true)
.Annotation("MySql:CharSet", "utf8mb4"),
ConcurrencyStamp = table.Column<string>(type: "varchar(40)", maxLength: 40, nullable: true)
.Annotation("MySql:CharSet", "utf8mb4")
},
constraints: table =>
{
table.PrimaryKey("PK_AbpSecurityLogs", x => x.Id);
})
.Annotation("MySql:CharSet", "utf8mb4");
migrationBuilder.CreateTable(
name: "AbpSettings",
columns: table => new
{
Id = table.Column<Guid>(type: "char(36)", nullable: false, collation: "ascii_general_ci"),
Name = table.Column<string>(type: "varchar(128)", maxLength: 128, nullable: false)
.Annotation("MySql:CharSet", "utf8mb4"),
Value = table.Column<string>(type: "varchar(2048)", maxLength: 2048, nullable: false)
.Annotation("MySql:CharSet", "utf8mb4"),
ProviderName = table.Column<string>(type: "varchar(64)", maxLength: 64, nullable: true)
.Annotation("MySql:CharSet", "utf8mb4"),
ProviderKey = table.Column<string>(type: "varchar(64)", maxLength: 64, nullable: true)
.Annotation("MySql:CharSet", "utf8mb4")
},
constraints: table =>
{
table.PrimaryKey("PK_AbpSettings", x => x.Id);
})
.Annotation("MySql:CharSet", "utf8mb4");
migrationBuilder.CreateTable(
name: "AbpTenants",
columns: table => new
{
Id = table.Column<Guid>(type: "char(36)", nullable: false, collation: "ascii_general_ci"),
Name = table.Column<string>(type: "varchar(64)", maxLength: 64, nullable: false)
.Annotation("MySql:CharSet", "utf8mb4"),
ExtraProperties = table.Column<string>(type: "longtext", nullable: true)
.Annotation("MySql:CharSet", "utf8mb4"),
ConcurrencyStamp = table.Column<string>(type: "varchar(40)", maxLength: 40, nullable: true)
.Annotation("MySql:CharSet", "utf8mb4"),
CreationTime = table.Column<DateTime>(type: "datetime(6)", nullable: false),
CreatorId = table.Column<Guid>(type: "char(36)", nullable: true, collation: "ascii_general_ci"),
LastModificationTime = table.Column<DateTime>(type: "datetime(6)", nullable: true),
LastModifierId = table.Column<Guid>(type: "char(36)", nullable: true, collation: "ascii_general_ci"),
IsDeleted = table.Column<bool>(type: "tinyint(1)", nullable: false, defaultValue: false),
DeleterId = table.Column<Guid>(type: "char(36)", nullable: true, collation: "ascii_general_ci"),
DeletionTime = table.Column<DateTime>(type: "datetime(6)", nullable: true)
},
constraints: table =>
{
table.PrimaryKey("PK_AbpTenants", x => x.Id);
})
.Annotation("MySql:CharSet", "utf8mb4");
migrationBuilder.CreateTable(
name: "AbpUsers",
columns: table => new
{
Id = table.Column<Guid>(type: "char(36)", nullable: false, collation: "ascii_general_ci"),
TenantId = table.Column<Guid>(type: "char(36)", nullable: true, collation: "ascii_general_ci"),
UserName = table.Column<string>(type: "varchar(256)", maxLength: 256, nullable: false)
.Annotation("MySql:CharSet", "utf8mb4"),
NormalizedUserName = table.Column<string>(type: "varchar(256)", maxLength: 256, nullable: false)
.Annotation("MySql:CharSet", "utf8mb4"),
Name = table.Column<string>(type: "varchar(64)", maxLength: 64, nullable: true)
.Annotation("MySql:CharSet", "utf8mb4"),
Surname = table.Column<string>(type: "varchar(64)", maxLength: 64, nullable: true)
.Annotation("MySql:CharSet", "utf8mb4"),
Email = table.Column<string>(type: "varchar(256)", maxLength: 256, nullable: false)
.Annotation("MySql:CharSet", "utf8mb4"),
NormalizedEmail = table.Column<string>(type: "varchar(256)", maxLength: 256, nullable: false)
.Annotation("MySql:CharSet", "utf8mb4"),
EmailConfirmed = table.Column<bool>(type: "tinyint(1)", nullable: false, defaultValue: false),
PasswordHash = table.Column<string>(type: "varchar(256)", maxLength: 256, nullable: true)
.Annotation("MySql:CharSet", "utf8mb4"),
SecurityStamp = table.Column<string>(type: "varchar(256)", maxLength: 256, nullable: false)
.Annotation("MySql:CharSet", "utf8mb4"),
IsExternal = table.Column<bool>(type: "tinyint(1)", nullable: false, defaultValue: false),
PhoneNumber = table.Column<string>(type: "varchar(16)", maxLength: 16, nullable: true)
.Annotation("MySql:CharSet", "utf8mb4"),
PhoneNumberConfirmed = table.Column<bool>(type: "tinyint(1)", nullable: false, defaultValue: false),
IsActive = table.Column<bool>(type: "tinyint(1)", nullable: false),
TwoFactorEnabled = table.Column<bool>(type: "tinyint(1)", nullable: false, defaultValue: false),
LockoutEnd = table.Column<DateTimeOffset>(type: "datetime(6)", nullable: true),
LockoutEnabled = table.Column<bool>(type: "tinyint(1)", nullable: false, defaultValue: false),
AccessFailedCount = table.Column<int>(type: "int", nullable: false, defaultValue: 0),
ExtraProperties = table.Column<string>(type: "longtext", nullable: true)
.Annotation("MySql:CharSet", "utf8mb4"),
ConcurrencyStamp = table.Column<string>(type: "varchar(40)", maxLength: 40, nullable: true)
.Annotation("MySql:CharSet", "utf8mb4"),
CreationTime = table.Column<DateTime>(type: "datetime(6)", nullable: false),
CreatorId = table.Column<Guid>(type: "char(36)", nullable: true, collation: "ascii_general_ci"),
LastModificationTime = table.Column<DateTime>(type: "datetime(6)", nullable: true),
LastModifierId = table.Column<Guid>(type: "char(36)", nullable: true, collation: "ascii_general_ci"),
IsDeleted = table.Column<bool>(type: "tinyint(1)", nullable: false, defaultValue: false),
DeleterId = table.Column<Guid>(type: "char(36)", nullable: true, collation: "ascii_general_ci"),
DeletionTime = table.Column<DateTime>(type: "datetime(6)", nullable: true)
},
constraints: table =>
{
table.PrimaryKey("PK_AbpUsers", x => x.Id);
})
.Annotation("MySql:CharSet", "utf8mb4");
migrationBuilder.CreateTable(
name: "AbpAuditLogActions",
columns: table => new
{
Id = table.Column<Guid>(type: "char(36)", nullable: false, collation: "ascii_general_ci"),
TenantId = table.Column<Guid>(type: "char(36)", nullable: true, collation: "ascii_general_ci"),
AuditLogId = table.Column<Guid>(type: "char(36)", nullable: false, collation: "ascii_general_ci"),
ServiceName = table.Column<string>(type: "varchar(256)", maxLength: 256, nullable: true)
.Annotation("MySql:CharSet", "utf8mb4"),
MethodName = table.Column<string>(type: "varchar(128)", maxLength: 128, nullable: true)
.Annotation("MySql:CharSet", "utf8mb4"),
Parameters = table.Column<string>(type: "varchar(2000)", maxLength: 2000, nullable: true)
.Annotation("MySql:CharSet", "utf8mb4"),
ExecutionTime = table.Column<DateTime>(type: "datetime(6)", nullable: false),
ExecutionDuration = table.Column<int>(type: "int", nullable: false),
ExtraProperties = table.Column<string>(type: "longtext", nullable: true)
.Annotation("MySql:CharSet", "utf8mb4")
},
constraints: table =>
{
table.PrimaryKey("PK_AbpAuditLogActions", x => x.Id);
table.ForeignKey(
name: "FK_AbpAuditLogActions_AbpAuditLogs_AuditLogId",
column: x => x.AuditLogId,
principalTable: "AbpAuditLogs",
principalColumn: "Id",
onDelete: ReferentialAction.Cascade);
})
.Annotation("MySql:CharSet", "utf8mb4");
migrationBuilder.CreateTable(
name: "AbpEntityChanges",
columns: table => new
{
Id = table.Column<Guid>(type: "char(36)", nullable: false, collation: "ascii_general_ci"),
AuditLogId = table.Column<Guid>(type: "char(36)", nullable: false, collation: "ascii_general_ci"),
TenantId = table.Column<Guid>(type: "char(36)", nullable: true, collation: "ascii_general_ci"),
ChangeTime = table.Column<DateTime>(type: "datetime(6)", nullable: false),
ChangeType = table.Column<byte>(type: "tinyint unsigned", nullable: false),
EntityTenantId = table.Column<Guid>(type: "char(36)", nullable: true, collation: "ascii_general_ci"),
EntityId = table.Column<string>(type: "varchar(128)", maxLength: 128, nullable: false)
.Annotation("MySql:CharSet", "utf8mb4"),
EntityTypeFullName = table.Column<string>(type: "varchar(128)", maxLength: 128, nullable: false)
.Annotation("MySql:CharSet", "utf8mb4"),
ExtraProperties = table.Column<string>(type: "longtext", nullable: true)
.Annotation("MySql:CharSet", "utf8mb4")
},
constraints: table =>
{
table.PrimaryKey("PK_AbpEntityChanges", x => x.Id);
table.ForeignKey(
name: "FK_AbpEntityChanges_AbpAuditLogs_AuditLogId",
column: x => x.AuditLogId,
principalTable: "AbpAuditLogs",
principalColumn: "Id",
onDelete: ReferentialAction.Cascade);
})
.Annotation("MySql:CharSet", "utf8mb4");
migrationBuilder.CreateTable(
name: "AbpOrganizationUnitRoles",
columns: table => new
{
RoleId = table.Column<Guid>(type: "char(36)", nullable: false, collation: "ascii_general_ci"),
OrganizationUnitId = table.Column<Guid>(type: "char(36)", nullable: false, collation: "ascii_general_ci"),
TenantId = table.Column<Guid>(type: "char(36)", nullable: true, collation: "ascii_general_ci"),
CreationTime = table.Column<DateTime>(type: "datetime(6)", nullable: false),
CreatorId = table.Column<Guid>(type: "char(36)", nullable: true, collation: "ascii_general_ci")
},
constraints: table =>
{
table.PrimaryKey("PK_AbpOrganizationUnitRoles", x => new { x.OrganizationUnitId, x.RoleId });
table.ForeignKey(
name: "FK_AbpOrganizationUnitRoles_AbpOrganizationUnits_OrganizationUn~",
column: x => x.OrganizationUnitId,
principalTable: "AbpOrganizationUnits",
principalColumn: "Id",
onDelete: ReferentialAction.Cascade);
table.ForeignKey(
name: "FK_AbpOrganizationUnitRoles_AbpRoles_RoleId",
column: x => x.RoleId,
principalTable: "AbpRoles",
principalColumn: "Id",
onDelete: ReferentialAction.Cascade);
})
.Annotation("MySql:CharSet", "utf8mb4");
migrationBuilder.CreateTable(
name: "AbpRoleClaims",
columns: table => new
{
Id = table.Column<Guid>(type: "char(36)", nullable: false, collation: "ascii_general_ci"),
RoleId = table.Column<Guid>(type: "char(36)", nullable: false, collation: "ascii_general_ci"),
TenantId = table.Column<Guid>(type: "char(36)", nullable: true, collation: "ascii_general_ci"),
ClaimType = table.Column<string>(type: "varchar(256)", maxLength: 256, nullable: false)
.Annotation("MySql:CharSet", "utf8mb4"),
ClaimValue = table.Column<string>(type: "varchar(1024)", maxLength: 1024, nullable: true)
.Annotation("MySql:CharSet", "utf8mb4")
},
constraints: table =>
{
table.PrimaryKey("PK_AbpRoleClaims", x => x.Id);
table.ForeignKey(
name: "FK_AbpRoleClaims_AbpRoles_RoleId",
column: x => x.RoleId,
principalTable: "AbpRoles",
principalColumn: "Id",
onDelete: ReferentialAction.Cascade);
})
.Annotation("MySql:CharSet", "utf8mb4");
migrationBuilder.CreateTable(
name: "AbpTenantConnectionStrings",
columns: table => new
{
TenantId = table.Column<Guid>(type: "char(36)", nullable: false, collation: "ascii_general_ci"),
Name = table.Column<string>(type: "varchar(64)", maxLength: 64, nullable: false)
.Annotation("MySql:CharSet", "utf8mb4"),
Value = table.Column<string>(type: "varchar(1024)", maxLength: 1024, nullable: false)
.Annotation("MySql:CharSet", "utf8mb4")
},
constraints: table =>
{
table.PrimaryKey("PK_AbpTenantConnectionStrings", x => new { x.TenantId, x.Name });
table.ForeignKey(
name: "FK_AbpTenantConnectionStrings_AbpTenants_TenantId",
column: x => x.TenantId,
principalTable: "AbpTenants",
principalColumn: "Id",
onDelete: ReferentialAction.Cascade);
})
.Annotation("MySql:CharSet", "utf8mb4");
migrationBuilder.CreateTable(
name: "AbpUserClaims",
columns: table => new
{
Id = table.Column<Guid>(type: "char(36)", nullable: false, collation: "ascii_general_ci"),
UserId = table.Column<Guid>(type: "char(36)", nullable: false, collation: "ascii_general_ci"),
TenantId = table.Column<Guid>(type: "char(36)", nullable: true, collation: "ascii_general_ci"),
ClaimType = table.Column<string>(type: "varchar(256)", maxLength: 256, nullable: false)
.Annotation("MySql:CharSet", "utf8mb4"),
ClaimValue = table.Column<string>(type: "varchar(1024)", maxLength: 1024, nullable: true)
.Annotation("MySql:CharSet", "utf8mb4")
},
constraints: table =>
{
table.PrimaryKey("PK_AbpUserClaims", x => x.Id);
table.ForeignKey(
name: "FK_AbpUserClaims_AbpUsers_UserId",
column: x => x.UserId,
principalTable: "AbpUsers",
principalColumn: "Id",
onDelete: ReferentialAction.Cascade);
})
.Annotation("MySql:CharSet", "utf8mb4");
migrationBuilder.CreateTable(
name: "AbpUserLogins",
columns: table => new
{
UserId = table.Column<Guid>(type: "char(36)", nullable: false, collation: "ascii_general_ci"),
LoginProvider = table.Column<string>(type: "varchar(64)", maxLength: 64, nullable: false)
.Annotation("MySql:CharSet", "utf8mb4"),
TenantId = table.Column<Guid>(type: "char(36)", nullable: true, collation: "ascii_general_ci"),
ProviderKey = table.Column<string>(type: "varchar(196)", maxLength: 196, nullable: false)
.Annotation("MySql:CharSet", "utf8mb4"),
ProviderDisplayName = table.Column<string>(type: "varchar(128)", maxLength: 128, nullable: true)
.Annotation("MySql:CharSet", "utf8mb4")
},
constraints: table =>
{
table.PrimaryKey("PK_AbpUserLogins", x => new { x.UserId, x.LoginProvider });
table.ForeignKey(
name: "FK_AbpUserLogins_AbpUsers_UserId",
column: x => x.UserId,
principalTable: "AbpUsers",
principalColumn: "Id",
onDelete: ReferentialAction.Cascade);
})
.Annotation("MySql:CharSet", "utf8mb4");
migrationBuilder.CreateTable(
name: "AbpUserOrganizationUnits",
columns: table => new
{
UserId = table.Column<Guid>(type: "char(36)", nullable: false, collation: "ascii_general_ci"),
OrganizationUnitId = table.Column<Guid>(type: "char(36)", nullable: false, collation: "ascii_general_ci"),
TenantId = table.Column<Guid>(type: "char(36)", nullable: true, collation: "ascii_general_ci"),
CreationTime = table.Column<DateTime>(type: "datetime(6)", nullable: false),
CreatorId = table.Column<Guid>(type: "char(36)", nullable: true, collation: "ascii_general_ci")
},
constraints: table =>
{
table.PrimaryKey("PK_AbpUserOrganizationUnits", x => new { x.OrganizationUnitId, x.UserId });
table.ForeignKey(
name: "FK_AbpUserOrganizationUnits_AbpOrganizationUnits_OrganizationUn~",
column: x => x.OrganizationUnitId,
principalTable: "AbpOrganizationUnits",
principalColumn: "Id",
onDelete: ReferentialAction.Cascade);
table.ForeignKey(
name: "FK_AbpUserOrganizationUnits_AbpUsers_UserId",
column: x => x.UserId,
principalTable: "AbpUsers",
principalColumn: "Id",
onDelete: ReferentialAction.Cascade);
})
.Annotation("MySql:CharSet", "utf8mb4");
migrationBuilder.CreateTable(
name: "AbpUserRoles",
columns: table => new
{
UserId = table.Column<Guid>(type: "char(36)", nullable: false, collation: "ascii_general_ci"),
RoleId = table.Column<Guid>(type: "char(36)", nullable: false, collation: "ascii_general_ci"),
TenantId = table.Column<Guid>(type: "char(36)", nullable: true, collation: "ascii_general_ci")
},
constraints: table =>
{
table.PrimaryKey("PK_AbpUserRoles", x => new { x.UserId, x.RoleId });
table.ForeignKey(
name: "FK_AbpUserRoles_AbpRoles_RoleId",
column: x => x.RoleId,
principalTable: "AbpRoles",
principalColumn: "Id",
onDelete: ReferentialAction.Cascade);
table.ForeignKey(
name: "FK_AbpUserRoles_AbpUsers_UserId",
column: x => x.UserId,
principalTable: "AbpUsers",
principalColumn: "Id",
onDelete: ReferentialAction.Cascade);
})
.Annotation("MySql:CharSet", "utf8mb4");
migrationBuilder.CreateTable(
name: "AbpUserTokens",
columns: table => new
{
UserId = table.Column<Guid>(type: "char(36)", nullable: false, collation: "ascii_general_ci"),
LoginProvider = table.Column<string>(type: "varchar(64)", maxLength: 64, nullable: false)
.Annotation("MySql:CharSet", "utf8mb4"),
Name = table.Column<string>(type: "varchar(128)", maxLength: 128, nullable: false)
.Annotation("MySql:CharSet", "utf8mb4"),
TenantId = table.Column<Guid>(type: "char(36)", nullable: true, collation: "ascii_general_ci"),
Value = table.Column<string>(type: "longtext", nullable: true)
.Annotation("MySql:CharSet", "utf8mb4")
},
constraints: table =>
{
table.PrimaryKey("PK_AbpUserTokens", x => new { x.UserId, x.LoginProvider, x.Name });
table.ForeignKey(
name: "FK_AbpUserTokens_AbpUsers_UserId",
column: x => x.UserId,
principalTable: "AbpUsers",
principalColumn: "Id",
onDelete: ReferentialAction.Cascade);
})
.Annotation("MySql:CharSet", "utf8mb4");
migrationBuilder.CreateTable(
name: "AbpEntityPropertyChanges",
columns: table => new
{
Id = table.Column<Guid>(type: "char(36)", nullable: false, collation: "ascii_general_ci"),
TenantId = table.Column<Guid>(type: "char(36)", nullable: true, collation: "ascii_general_ci"),
EntityChangeId = table.Column<Guid>(type: "char(36)", nullable: false, collation: "ascii_general_ci"),
NewValue = table.Column<string>(type: "varchar(512)", maxLength: 512, nullable: true)
.Annotation("MySql:CharSet", "utf8mb4"),
OriginalValue = table.Column<string>(type: "varchar(512)", maxLength: 512, nullable: true)
.Annotation("MySql:CharSet", "utf8mb4"),
PropertyName = table.Column<string>(type: "varchar(128)", maxLength: 128, nullable: false)
.Annotation("MySql:CharSet", "utf8mb4"),
PropertyTypeFullName = table.Column<string>(type: "varchar(64)", maxLength: 64, nullable: false)
.Annotation("MySql:CharSet", "utf8mb4")
},
constraints: table =>
{
table.PrimaryKey("PK_AbpEntityPropertyChanges", x => x.Id);
table.ForeignKey(
name: "FK_AbpEntityPropertyChanges_AbpEntityChanges_EntityChangeId",
column: x => x.EntityChangeId,
principalTable: "AbpEntityChanges",
principalColumn: "Id",
onDelete: ReferentialAction.Cascade);
})
.Annotation("MySql:CharSet", "utf8mb4");
migrationBuilder.CreateIndex(
name: "IX_AbpAuditLogActions_AuditLogId",
table: "AbpAuditLogActions",
column: "AuditLogId");
migrationBuilder.CreateIndex(
name: "IX_AbpAuditLogActions_TenantId_ServiceName_MethodName_Execution~",
table: "AbpAuditLogActions",
columns: new[] { "TenantId", "ServiceName", "MethodName", "ExecutionTime" });
migrationBuilder.CreateIndex(
name: "IX_AbpAuditLogs_TenantId_ExecutionTime",
table: "AbpAuditLogs",
columns: new[] { "TenantId", "ExecutionTime" });
migrationBuilder.CreateIndex(
name: "IX_AbpAuditLogs_TenantId_UserId_ExecutionTime",
table: "AbpAuditLogs",
columns: new[] { "TenantId", "UserId", "ExecutionTime" });
migrationBuilder.CreateIndex(
name: "IX_AbpBackgroundJobs_IsAbandoned_NextTryTime",
table: "AbpBackgroundJobs",
columns: new[] { "IsAbandoned", "NextTryTime" });
migrationBuilder.CreateIndex(
name: "IX_AbpEntityChanges_AuditLogId",
table: "AbpEntityChanges",
column: "AuditLogId");
migrationBuilder.CreateIndex(
name: "IX_AbpEntityChanges_TenantId_EntityTypeFullName_EntityId",
table: "AbpEntityChanges",
columns: new[] { "TenantId", "EntityTypeFullName", "EntityId" });
migrationBuilder.CreateIndex(
name: "IX_AbpEntityPropertyChanges_EntityChangeId",
table: "AbpEntityPropertyChanges",
column: "EntityChangeId");
migrationBuilder.CreateIndex(
name: "IX_AbpFeatureValues_Name_ProviderName_ProviderKey",
table: "AbpFeatureValues",
columns: new[] { "Name", "ProviderName", "ProviderKey" },
unique: true);
migrationBuilder.CreateIndex(
name: "IX_AbpLinkUsers_SourceUserId_SourceTenantId_TargetUserId_Target~",
table: "AbpLinkUsers",
columns: new[] { "SourceUserId", "SourceTenantId", "TargetUserId", "TargetTenantId" },
unique: true);
migrationBuilder.CreateIndex(
name: "IX_AbpOrganizationUnitRoles_RoleId_OrganizationUnitId",
table: "AbpOrganizationUnitRoles",
columns: new[] { "RoleId", "OrganizationUnitId" });
migrationBuilder.CreateIndex(
name: "IX_AbpOrganizationUnits_Code",
table: "AbpOrganizationUnits",
column: "Code");
migrationBuilder.CreateIndex(
name: "IX_AbpOrganizationUnits_ParentId",
table: "AbpOrganizationUnits",
column: "ParentId");
migrationBuilder.CreateIndex(
name: "IX_AbpPermissionGrants_TenantId_Name_ProviderName_ProviderKey",
table: "AbpPermissionGrants",
columns: new[] { "TenantId", "Name", "ProviderName", "ProviderKey" },
unique: true);
migrationBuilder.CreateIndex(
name: "IX_AbpRoleClaims_RoleId",
table: "AbpRoleClaims",
column: "RoleId");
migrationBuilder.CreateIndex(
name: "IX_AbpRoles_NormalizedName",
table: "AbpRoles",
column: "NormalizedName");
migrationBuilder.CreateIndex(
name: "IX_AbpSecurityLogs_TenantId_Action",
table: "AbpSecurityLogs",
columns: new[] { "TenantId", "Action" });
migrationBuilder.CreateIndex(
name: "IX_AbpSecurityLogs_TenantId_ApplicationName",
table: "AbpSecurityLogs",
columns: new[] { "TenantId", "ApplicationName" });
migrationBuilder.CreateIndex(
name: "IX_AbpSecurityLogs_TenantId_Identity",
table: "AbpSecurityLogs",
columns: new[] { "TenantId", "Identity" });
migrationBuilder.CreateIndex(
name: "IX_AbpSecurityLogs_TenantId_UserId",
table: "AbpSecurityLogs",
columns: new[] { "TenantId", "UserId" });
migrationBuilder.CreateIndex(
name: "IX_AbpSettings_Name_ProviderName_ProviderKey",
table: "AbpSettings",
columns: new[] { "Name", "ProviderName", "ProviderKey" },
unique: true);
migrationBuilder.CreateIndex(
name: "IX_AbpTenants_Name",
table: "AbpTenants",
column: "Name");
migrationBuilder.CreateIndex(
name: "IX_AbpUserClaims_UserId",
table: "AbpUserClaims",
column: "UserId");
migrationBuilder.CreateIndex(
name: "IX_AbpUserLogins_LoginProvider_ProviderKey",
table: "AbpUserLogins",
columns: new[] { "LoginProvider", "ProviderKey" });
migrationBuilder.CreateIndex(
name: "IX_AbpUserOrganizationUnits_UserId_OrganizationUnitId",
table: "AbpUserOrganizationUnits",
columns: new[] { "UserId", "OrganizationUnitId" });
migrationBuilder.CreateIndex(
name: "IX_AbpUserRoles_RoleId_UserId",
table: "AbpUserRoles",
columns: new[] { "RoleId", "UserId" });
migrationBuilder.CreateIndex(
name: "IX_AbpUsers_Email",
table: "AbpUsers",
column: "Email");
migrationBuilder.CreateIndex(
name: "IX_AbpUsers_NormalizedEmail",
table: "AbpUsers",
column: "NormalizedEmail");
migrationBuilder.CreateIndex(
name: "IX_AbpUsers_NormalizedUserName",
table: "AbpUsers",
column: "NormalizedUserName");
migrationBuilder.CreateIndex(
name: "IX_AbpUsers_UserName",
table: "AbpUsers",
column: "UserName");
}
protected override void Down(MigrationBuilder migrationBuilder)
{
migrationBuilder.DropTable(
name: "AbpAuditLogActions");
migrationBuilder.DropTable(
name: "AbpBackgroundJobs");
migrationBuilder.DropTable(
name: "AbpClaimTypes");
migrationBuilder.DropTable(
name: "AbpEntityPropertyChanges");
migrationBuilder.DropTable(
name: "AbpFeatureValues");
migrationBuilder.DropTable(
name: "AbpLinkUsers");
migrationBuilder.DropTable(
name: "AbpOrganizationUnitRoles");
migrationBuilder.DropTable(
name: "AbpPermissionGrants");
migrationBuilder.DropTable(
name: "AbpRoleClaims");
migrationBuilder.DropTable(
name: "AbpSecurityLogs");
migrationBuilder.DropTable(
name: "AbpSettings");
migrationBuilder.DropTable(
name: "AbpTenantConnectionStrings");
migrationBuilder.DropTable(
name: "AbpUserClaims");
migrationBuilder.DropTable(
name: "AbpUserLogins");
migrationBuilder.DropTable(
name: "AbpUserOrganizationUnits");
migrationBuilder.DropTable(
name: "AbpUserRoles");
migrationBuilder.DropTable(
name: "AbpUserTokens");
migrationBuilder.DropTable(
name: "AbpEntityChanges");
migrationBuilder.DropTable(
name: "AbpTenants");
migrationBuilder.DropTable(
name: "AbpOrganizationUnits");
migrationBuilder.DropTable(
name: "AbpRoles");
migrationBuilder.DropTable(
name: "AbpUsers");
migrationBuilder.DropTable(
name: "AbpAuditLogs");
}
}
}

1293
aspnet-core/modules/BasicManagement/host/Lion.AbpPro.BasicManagement.HttpApi.Host/Migrations/BasicManagementHttpApiHostMigrationsDbContextModelSnapshot.cs

File diff suppressed because it is too large

32
aspnet-core/modules/BasicManagement/host/Lion.AbpPro.BasicManagement.HttpApi.Host/Program.cs

@ -0,0 +1,32 @@
using System;
using System.Threading.Tasks;
using Microsoft.AspNetCore.Builder;
using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.Hosting;
using Serilog;
using Serilog.Events;
namespace Lion.AbpPro.BasicManagement;
public class Program
{
public static void Main(string[] args)
{
CreateHostBuilder(args).Build().Run();
}
private static IHostBuilder CreateHostBuilder(string[] args) =>
Host.CreateDefaultBuilder(args)
.ConfigureWebHostDefaults(webBuilder =>
{
webBuilder.ConfigureKestrel((context, options) => { options.Limits.MaxRequestBodySize = 1024 * 50; });
webBuilder.UseStartup<Startup>();
})
.UseSerilog((context, loggerConfiguration) =>
{
SerilogToEsExtensions.SetSerilogConfiguration(
loggerConfiguration,
context.Configuration);
}).UseAutofac();
}

12
aspnet-core/modules/BasicManagement/host/Lion.AbpPro.BasicManagement.HttpApi.Host/Properties/launchSettings.json

@ -0,0 +1,12 @@
{
"profiles": {
"Lion.AbpPro.BasicManagement.HttpApi.Host": {
"commandName": "Project",
"launchBrowser": true,
"applicationUrl": "http://localhost:44324",
"environmentVariables": {
"ASPNETCORE_ENVIRONMENT": "Development"
}
}
}
}

15
aspnet-core/modules/BasicManagement/host/Lion.AbpPro.BasicManagement.HttpApi.Host/SerilogToEsExtensions.cs

@ -0,0 +1,15 @@
using Serilog;
namespace Lion.AbpPro.BasicManagement
{
public static class SerilogToEsExtensions
{
public static void SetSerilogConfiguration(LoggerConfiguration loggerConfiguration, IConfiguration configuration)
{
// 默认读取 configuration 中 "Serilog" 节点下的配置
loggerConfiguration
.ReadFrom.Configuration(configuration)
.Enrich.FromLogContext();
}
}
}

15
aspnet-core/modules/BasicManagement/host/Lion.AbpPro.BasicManagement.HttpApi.Host/Startup.cs

@ -0,0 +1,15 @@
namespace Lion.AbpPro.BasicManagement
{
public class Startup
{
public void ConfigureServices(IServiceCollection services)
{
services.AddApplication<BasicManagementHttpApiHostModule>();
}
public void Configure(IApplicationBuilder app, IWebHostEnvironment env, ILoggerFactory loggerFactory)
{
app.InitializeApplication();
}
}
}

48
aspnet-core/modules/BasicManagement/host/Lion.AbpPro.BasicManagement.HttpApi.Host/appsettings.json

@ -0,0 +1,48 @@
{
"Serilog": {
"Using": [
"Serilog.Sinks.Console",
"Serilog.Sinks.File"
],
"MinimumLevel": {
"Default": "Debug",
"Override": {
"Microsoft": "Information",
"Volo.Abp": "Information",
"Hangfire": "Information",
"DotNetCore.CAP": "Information",
"Serilog.AspNetCore": "Information",
"Microsoft.EntityFrameworkCore": "Warning",
"Microsoft.AspNetCore": "Information"
}
},
"WriteTo": [
{
"Name": "Console"
},
{
"Name": "File",
"Args": {
"path": "logs/logs-.txt",
"rollingInterval": "Day"
}
}
]
},
"App": {
"SelfUrl": "http://localhost:44315",
"CorsOrigins": "https://*.AbpPro.com,http://localhost:4200,http://localhost:3100"
},
"ConnectionStrings": {
"Default": "Data Source=localhost;Port=3306;Database=LionAbpProBasicManagementDB;uid=root;pwd=1q2w3E*;charset=utf8mb4;Allow User Variables=true;AllowLoadLocalInfile=true"
},
"Redis": {
"Configuration": "localhost,password=mypassword,defaultdatabase=1"
},
"Jwt": {
"Audience": "Lion.AbpPro.BasicManagement",
"SecurityKey": "dzehzRz9a8asdfasfdadfasdfasdfafsdadfasbasdf=",
"Issuer": "Lion.AbpPro",
"ExpirationTime": 30
}
}

43
aspnet-core/modules/BasicManagement/src/Lion.AbpPro.BasicManagement.Application.Contracts/AuditLogs/GetAuditLogPageListOutput.cs

@ -0,0 +1,43 @@
namespace Lion.AbpPro.BasicManagement.AuditLogs
{
public class GetAuditLogPageListOutput
{
public string ApplicationName { get; set; }
public Guid? UserId { get; set; }
public string UserName { get; set; }
public Guid? TenantId { get; set; }
public string TenantName { get; set; }
public Guid? ImpersonatorUserId { get; set; }
public Guid? ImpersonatorTenantId { get; set; }
public DateTime ExecutionTime { get; set; }
public int ExecutionDuration { get; set; }
public string ClientIpAddress { get; set; }
public string ClientName { get; set; }
public string ClientId { get; set; }
public string CorrelationId { get; set; }
public string BrowserInfo { get; set; }
public string HttpMethod { get; set; }
public string Url { get; set; }
public string Exceptions { get; set; }
public string Comments { get; set; }
public int? HttpStatusCode { get; set; }
}
}

12
aspnet-core/modules/BasicManagement/src/Lion.AbpPro.BasicManagement.Application.Contracts/AuditLogs/IAuditLogAppService.cs

@ -0,0 +1,12 @@
namespace Lion.AbpPro.BasicManagement.AuditLogs
{
public interface IAuditLogAppService : IApplicationService
{
/// <summary>
/// 分页查询审计日志
/// </summary>
/// <param name="input"></param>
/// <returns></returns>
Task<PagedResultDto<GetAuditLogPageListOutput>> GetListAsync(PagingAuditLogListInput input);
}
}

67
aspnet-core/modules/BasicManagement/src/Lion.AbpPro.BasicManagement.Application.Contracts/AuditLogs/PagingAuditLogListInput.cs

@ -0,0 +1,67 @@
using System.Net;
namespace Lion.AbpPro.BasicManagement.AuditLogs
{
public class PagingAuditLogListInput : PagingBase
{
/// <summary>
/// 排序
/// </summary>
public string Sorting { get; set; }
/// <summary>
/// 开始时间
/// </summary>
public DateTime? StartTime { get; set; }
/// <summary>
/// 结束时间
/// </summary>
public DateTime? EndTime { get; set; }
/// <summary>
/// 请求方法
/// </summary>
public string HttpMethod { get; set; }
/// <summary>
/// 请求地址
/// </summary>
public string Url { get; set; }
/// <summary>
/// 用户名
/// </summary>
public string UserName { get; set; }
/// <summary>
/// 应用程序名称
/// </summary>
public string ApplicationName { get; set; }
/// <summary>
/// RequestId
/// </summary>
public string CorrelationId { get; set; }
/// <summary>
/// 最大执行时间
/// </summary>
public int? MaxExecutionDuration { get; set; }
/// <summary>
/// 最小执行时间
/// </summary>
public int? MinExecutionDuration { get; set; }
/// <summary>
/// 是否有异常
/// </summary>
public bool? HasException { get; set; }
/// <summary>
/// http 状态码
/// </summary>
public HttpStatusCode? HttpStatusCode { get; set; }
}
}

25
aspnet-core/modules/BasicManagement/src/Lion.AbpPro.BasicManagement.Application.Contracts/BasicManagementApplicationContractsModule.cs

@ -0,0 +1,25 @@
using Volo.Abp.Account;
using Volo.Abp.Application;
using Volo.Abp.Modularity;
using Volo.Abp.Authorization;
using Volo.Abp.FeatureManagement;
using Volo.Abp.Identity;
using Volo.Abp.SettingManagement;
namespace Lion.AbpPro.BasicManagement;
[DependsOn(
typeof(BasicManagementDomainSharedModule),
typeof(AbpDddApplicationContractsModule),
typeof(AbpAuthorizationModule),
typeof(AbpAccountApplicationContractsModule),
typeof(AbpFeatureManagementApplicationContractsModule),
typeof(AbpIdentityApplicationContractsModule),
typeof(AbpPermissionManagementApplicationContractsModule),
typeof(AbpSettingManagementApplicationContractsModule),
typeof(AbpTenantManagementApplicationContractsModule)
)]
public class BasicManagementApplicationContractsModule : AbpModule
{
}

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

@ -0,0 +1,8 @@
namespace Lion.AbpPro.BasicManagement;
public class BasicManagementRemoteServiceConsts
{
public const string RemoteServiceName = "BasicManagement";
public const string ModuleName = "basicManagement";
}

25
aspnet-core/modules/BasicManagement/src/Lion.AbpPro.BasicManagement.Application.Contracts/ConfigurationOptions/JwtOptions.cs

@ -0,0 +1,25 @@
namespace Lion.AbpPro.BasicManagement.ConfigurationOptions
{
public class JwtOptions
{
/// <summary>
/// 过期时间 单位小时
/// </summary>
public int ExpirationTime { get; set; }
/// <summary>
/// Audience
/// </summary>
public string Audience { get; set; }
/// <summary>
/// 密钥
/// </summary>
public string SecurityKey { get; set; }
/// <summary>
/// Issuer
/// </summary>
public string Issuer { get; set; }
}
}

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

@ -0,0 +1,3 @@
<Weavers xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="FodyWeavers.xsd">
<ConfigureAwait ContinueOnCapturedContext="false" />
</Weavers>

30
aspnet-core/modules/BasicManagement/src/Lion.AbpPro.BasicManagement.Application.Contracts/FodyWeavers.xsd

@ -0,0 +1,30 @@
<?xml version="1.0" encoding="utf-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
<!-- This file was generated by Fody. Manual changes to this file will be lost when your project is rebuilt. -->
<xs:element name="Weavers">
<xs:complexType>
<xs:all>
<xs:element name="ConfigureAwait" minOccurs="0" maxOccurs="1">
<xs:complexType>
<xs:attribute name="ContinueOnCapturedContext" type="xs:boolean" />
</xs:complexType>
</xs:element>
</xs:all>
<xs:attribute name="VerifyAssembly" type="xs:boolean">
<xs:annotation>
<xs:documentation>'true' to run assembly verification (PEVerify) on the target assembly after all weavers have been executed.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="VerifyIgnoreCodes" type="xs:string">
<xs:annotation>
<xs:documentation>A comma-separated list of error codes that can be safely ignored in assembly verification.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="GenerateXsd" type="xs:boolean">
<xs:annotation>
<xs:documentation>'false' to turn off automatic generation of the XML Schema file.</xs:documentation>
</xs:annotation>
</xs:attribute>
</xs:complexType>
</xs:element>
</xs:schema>

11
aspnet-core/modules/BasicManagement/src/Lion.AbpPro.BasicManagement.Application.Contracts/GlobalUsings.cs

@ -0,0 +1,11 @@
// Global using directives
global using System.ComponentModel.DataAnnotations;
global using Lion.AbpPro.BasicManagement.OrganizationUnits.Dto;
global using Lion.AbpPro.BasicManagement.Tenants.Dtos;
global using Lion.AbpPro.Extension.Customs.Dtos;
global using Volo.Abp.Application.Dtos;
global using Volo.Abp.Application.Services;
global using Volo.Abp.AspNetCore.Mvc.MultiTenancy;
global using Volo.Abp.PermissionManagement;
global using Volo.Abp.TenantManagement;

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

@ -0,0 +1,22 @@
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>net6.0</TargetFramework>
<RootNamespace>Lion.AbpPro.BasicManagement</RootNamespace>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="Volo.Abp.AspNetCore.Mvc.Contracts" />
<PackageReference Include="Volo.Abp.Ddd.Application.Contracts" />
<PackageReference Include="Volo.Abp.Authorization" />
<PackageReference Include="Volo.Abp.Account.Application.Contracts" />
<PackageReference Include="Volo.Abp.Identity.Application.Contracts" />
<PackageReference Include="Volo.Abp.PermissionManagement.Application.Contracts" />
<PackageReference Include="Volo.Abp.TenantManagement.Application.Contracts" />
<PackageReference Include="Volo.Abp.FeatureManagement.Application.Contracts" />
<PackageReference Include="Volo.Abp.SettingManagement.Application.Contracts" />
<PackageReference Include="Magicodes.IE.Excel.AspNetCore" />
<ProjectReference Include="..\..\..\..\frameworks\Extensions\src\Lion.AbpPro.Extension\Lion.AbpPro.Extension.csproj" />
<ProjectReference Include="..\Lion.AbpPro.BasicManagement.Domain.Shared\Lion.AbpPro.BasicManagement.Domain.Shared.csproj" />
</ItemGroup>
</Project>

8
aspnet-core/modules/BasicManagement/src/Lion.AbpPro.BasicManagement.Application.Contracts/OrganizationUnits/Dto/AddRoleToOrganizationUnitInput.cs

@ -0,0 +1,8 @@
namespace Lion.AbpPro.BasicManagement.OrganizationUnits.Dto;
public class AddRoleToOrganizationUnitInput
{
public List<Guid> RoleId { get; set; }
public Guid OrganizationUnitId { get; set; }
}

8
aspnet-core/modules/BasicManagement/src/Lion.AbpPro.BasicManagement.Application.Contracts/OrganizationUnits/Dto/AddUserToOrganizationUnitInput.cs

@ -0,0 +1,8 @@
namespace Lion.AbpPro.BasicManagement.OrganizationUnits.Dto;
public class AddUserToOrganizationUnitInput
{
public List<Guid> UserId { get; set; }
public Guid OrganizationUnitId { get; set; }
}

9
aspnet-core/modules/BasicManagement/src/Lion.AbpPro.BasicManagement.Application.Contracts/OrganizationUnits/Dto/CreateOrganizationUnitInput.cs

@ -0,0 +1,9 @@
namespace Lion.AbpPro.BasicManagement.OrganizationUnits.Dto;
public class CreateOrganizationUnitInput
{
[Required]
public string DisplayName { get; set; }
public Guid? ParentId { get; set; }
}

7
aspnet-core/modules/BasicManagement/src/Lion.AbpPro.BasicManagement.Application.Contracts/OrganizationUnits/Dto/GetOrganizationUnitRoleInput.cs

@ -0,0 +1,7 @@
namespace Lion.AbpPro.BasicManagement.OrganizationUnits.Dto;
public class GetOrganizationUnitRoleInput : PagingBase
{
public Guid OrganizationUnitId { get; set; }
}

8
aspnet-core/modules/BasicManagement/src/Lion.AbpPro.BasicManagement.Application.Contracts/OrganizationUnits/Dto/GetOrganizationUnitRoleOutput.cs

@ -0,0 +1,8 @@
namespace Lion.AbpPro.BasicManagement.OrganizationUnits.Dto;
public class GetOrganizationUnitRoleOutput
{
public Guid Id { get; set; }
public string Name { get; set; }
}

8
aspnet-core/modules/BasicManagement/src/Lion.AbpPro.BasicManagement.Application.Contracts/OrganizationUnits/Dto/GetOrganizationUnitUserInput.cs

@ -0,0 +1,8 @@
namespace Lion.AbpPro.BasicManagement.OrganizationUnits.Dto;
public class GetOrganizationUnitUserInput : PagingBase
{
public Guid OrganizationUnitId { get; set; }
public string Filter { get; set; }
}

10
aspnet-core/modules/BasicManagement/src/Lion.AbpPro.BasicManagement.Application.Contracts/OrganizationUnits/Dto/GetOrganizationUnitUserOutput.cs

@ -0,0 +1,10 @@
namespace Lion.AbpPro.BasicManagement.OrganizationUnits.Dto;
public class GetOrganizationUnitUserOutput
{
public Guid Id { get; set; }
public string UserName { get; set; }
public string Email { get; set; }
}

8
aspnet-core/modules/BasicManagement/src/Lion.AbpPro.BasicManagement.Application.Contracts/OrganizationUnits/Dto/GetUnAddRoleInput.cs

@ -0,0 +1,8 @@
namespace Lion.AbpPro.BasicManagement.OrganizationUnits.Dto;
public class GetUnAddRoleInput : PagingBase
{
public Guid OrganizationUnitId { get; set; }
public string Filter { get; set; }
}

8
aspnet-core/modules/BasicManagement/src/Lion.AbpPro.BasicManagement.Application.Contracts/OrganizationUnits/Dto/GetUnAddRoleOutput.cs

@ -0,0 +1,8 @@
namespace Lion.AbpPro.BasicManagement.OrganizationUnits.Dto;
public class GetUnAddRoleOutput
{
public Guid Id { get; set; }
public string Name { get; set; }
}

8
aspnet-core/modules/BasicManagement/src/Lion.AbpPro.BasicManagement.Application.Contracts/OrganizationUnits/Dto/GetUnAddUserInput.cs

@ -0,0 +1,8 @@
namespace Lion.AbpPro.BasicManagement.OrganizationUnits.Dto;
public class GetUnAddUserInput : PagingBase
{
public Guid OrganizationUnitId { get; set; }
public string Filter { get; set; }
}

10
aspnet-core/modules/BasicManagement/src/Lion.AbpPro.BasicManagement.Application.Contracts/OrganizationUnits/Dto/GetUnAddUserOutput.cs

@ -0,0 +1,10 @@
namespace Lion.AbpPro.BasicManagement.OrganizationUnits.Dto;
public class GetUnAddUserOutput
{
public Guid Id { get; set; }
public string UserName { get; set; }
public string Email { get; set; }
}

14
aspnet-core/modules/BasicManagement/src/Lion.AbpPro.BasicManagement.Application.Contracts/OrganizationUnits/Dto/OrganizationUnitDto.cs

@ -0,0 +1,14 @@
namespace Lion.AbpPro.BasicManagement.OrganizationUnits.Dto;
public class OrganizationUnitDto
{
public Guid Id { get; set; }
public Guid? TenantId { get; set; }
public string Code { get; set; }
public string DisplayName { get; set; }
public Guid? ParentId { get; set; }
}

8
aspnet-core/modules/BasicManagement/src/Lion.AbpPro.BasicManagement.Application.Contracts/OrganizationUnits/Dto/RemoveRoleToOrganizationUnitInput.cs

@ -0,0 +1,8 @@
namespace Lion.AbpPro.BasicManagement.OrganizationUnits.Dto;
public class RemoveRoleToOrganizationUnitInput
{
public Guid RoleId { get; set; }
public Guid OrganizationUnitId { get; set; }
}

8
aspnet-core/modules/BasicManagement/src/Lion.AbpPro.BasicManagement.Application.Contracts/OrganizationUnits/Dto/RemoveUserToOrganizationUnitInput.cs

@ -0,0 +1,8 @@
namespace Lion.AbpPro.BasicManagement.OrganizationUnits.Dto;
public class RemoveUserToOrganizationUnitInput
{
public Guid UserId { get; set; }
public Guid OrganizationUnitId { get; set; }
}

10
aspnet-core/modules/BasicManagement/src/Lion.AbpPro.BasicManagement.Application.Contracts/OrganizationUnits/Dto/TreeOutput.cs

@ -0,0 +1,10 @@
namespace Lion.AbpPro.BasicManagement.OrganizationUnits.Dto;
public class TreeOutput
{
public string Title { get; set; }
public Guid Key { get; set; }
public List<TreeOutput> Children { get; set; }
}

9
aspnet-core/modules/BasicManagement/src/Lion.AbpPro.BasicManagement.Application.Contracts/OrganizationUnits/Dto/UpdateOrganizationUnitInput.cs

@ -0,0 +1,9 @@
namespace Lion.AbpPro.BasicManagement.OrganizationUnits.Dto;
public class UpdateOrganizationUnitInput
{
[Required]
public string DisplayName { get; set; }
public Guid Id { get; set; }
}

66
aspnet-core/modules/BasicManagement/src/Lion.AbpPro.BasicManagement.Application.Contracts/OrganizationUnits/IOrganizationUnitAppService.cs

@ -0,0 +1,66 @@
namespace Lion.AbpPro.BasicManagement.OrganizationUnits;
public interface IOrganizationUnitAppService : IApplicationService
{
/// <summary>
/// 获取组织机构树结构
/// </summary>
/// <returns></returns>
Task<List<TreeOutput>> GetTreeAsync();
/// <summary>
/// 创建组织机构
/// </summary>
Task CreateAsync(CreateOrganizationUnitInput input);
/// <summary>
/// 删除组织机构
/// </summary>
Task DeleteAsync(IdInput input);
/// <summary>
/// 编辑组织机构
/// </summary>
Task UpdateAsync(UpdateOrganizationUnitInput input);
/// <summary>
/// 向组织机构添加角色
/// </summary>
Task AddRoleToOrganizationUnitAsync(AddRoleToOrganizationUnitInput input);
/// <summary>
/// 向组织机构删除角色
/// </summary>
Task RemoveRoleFromOrganizationUnitAsync(RemoveRoleToOrganizationUnitInput input);
/// <summary>
/// 向组织机构添加用户
/// </summary>
Task AddUserToOrganizationUnitAsync(AddUserToOrganizationUnitInput input);
/// <summary>
/// 向组织机构删除用户
/// </summary>
Task RemoveUserFromOrganizationUnitAsync(RemoveUserToOrganizationUnitInput input);
/// <summary>
/// 分页获取组织机构下用户
/// </summary>
Task<PagedResultDto<GetOrganizationUnitUserOutput>> GetUsersAsync(GetOrganizationUnitUserInput input);
/// <summary>
/// 分页获取组织机构下角色
/// </summary>
Task<PagedResultDto<GetOrganizationUnitRoleOutput>> GetRolesAsync(GetOrganizationUnitRoleInput input);
/// <summary>
/// 获取不在组织机构的用户
/// </summary>
Task<PagedResultDto<GetUnAddUserOutput>> GetUnAddUsersAsync(GetUnAddUserInput input);
/// <summary>
/// 获取不在组织机构的角色
/// </summary>
Task<PagedResultDto<GetUnAddRoleOutput>> GetUnAddRolessAsync(GetUnAddRoleInput input);
}

44
aspnet-core/modules/BasicManagement/src/Lion.AbpPro.BasicManagement.Application.Contracts/Permissions/BasicManagementPermissionDefinitionProvider.cs

@ -0,0 +1,44 @@
using Lion.AbpPro.BasicManagement.Localization;
using Volo.Abp.Authorization.Permissions;
using Volo.Abp.Identity;
using Volo.Abp.Localization;
namespace Lion.AbpPro.BasicManagement.Permissions;
public class BasicManagementPermissionDefinitionProvider : PermissionDefinitionProvider
{
public override void Define(IPermissionDefinitionContext context)
{
var abpIdentityGroup = context.GetGroup(IdentityPermissions.GroupName);
var userManagement = abpIdentityGroup.GetPermissionOrNull(IdentityPermissions.Users.Default);
userManagement.AddChild(BasicManagementPermissions.SystemManagement.UserEnable, L("Permission:Enable"));
userManagement.AddChild(BasicManagementPermissions.SystemManagement.UserExport, L("Permission:Export"));
var auditManagement =
abpIdentityGroup.AddPermission(BasicManagementPermissions.SystemManagement.AuditLog, L("Permission:AuditLogManagement"));
var esManagement = abpIdentityGroup.AddPermission(BasicManagementPermissions.SystemManagement.ES, L("Permission:ESManagement"));
var settingManagement = abpIdentityGroup.AddPermission(BasicManagementPermissions.SystemManagement.Setting, L("Permission:SettingManagement"));
var organizationUnitManagement = abpIdentityGroup.AddPermission(BasicManagementPermissions.SystemManagement.OrganizationUnit, L("Permission:OrganizationUnitManagement"));
organizationUnitManagement.AddChild
(
BasicManagementPermissions.SystemManagement.OrganizationUnitManagement.Create,
L("Permission:Create")
);
organizationUnitManagement.AddChild
(
BasicManagementPermissions.SystemManagement.OrganizationUnitManagement.Update,
L("Permission:Update")
);
organizationUnitManagement.AddChild
(
BasicManagementPermissions.SystemManagement.OrganizationUnitManagement.Delete,
L("Permission:Delete")
);
}
private static LocalizableString L(string name)
{
return LocalizableString.Create<BasicManagementResource>(name);
}
}

32
aspnet-core/modules/BasicManagement/src/Lion.AbpPro.BasicManagement.Application.Contracts/Permissions/BasicManagementPermissions.cs

@ -0,0 +1,32 @@
using Volo.Abp.Reflection;
namespace Lion.AbpPro.BasicManagement.Permissions;
public class BasicManagementPermissions
{
/// <summary>
/// 系统管理扩展权限
/// </summary>
public static class SystemManagement
{
public const string Default = "AbpIdentity";
public const string UserEnable = Default + ".Users.Enable";
public const string UserExport = Default + ".Users.Export";
public const string AuditLog = Default + ".AuditLog";
public const string ES = Default + ".ES";
public const string Setting = Default + ".Setting";
public const string OrganizationUnit = Default + ".OrganizationUnitManagement";
public static class OrganizationUnitManagement
{
public const string Default = SystemManagement.Default + ".OrganizationUnitManagement";
public const string Create = Default + ".Create";
public const string Update = Default + ".Update";
public const string Delete = Default + ".Delete";
}
}
public static string[] GetAll()
{
return ReflectionHelper.GetPublicConstantsRecursively(typeof(BasicManagementPermissions));
}
}

10
aspnet-core/modules/BasicManagement/src/Lion.AbpPro.BasicManagement.Application.Contracts/Roles/Dtos/GetPermissionInput.cs

@ -0,0 +1,10 @@
namespace Lion.AbpPro.BasicManagement.Roles.Dtos
{
public class GetPermissionInput
{
[Required]
public string ProviderName { get; set; }
[Required]
public string ProviderKey { get; set; }
}
}

7
aspnet-core/modules/BasicManagement/src/Lion.AbpPro.BasicManagement.Application.Contracts/Roles/Dtos/PagingRoleListInput.cs

@ -0,0 +1,7 @@
namespace Lion.AbpPro.BasicManagement.Roles.Dtos
{
public class PagingRoleListInput : PagingBase
{
public string Filter { get; set; }
}
}

19
aspnet-core/modules/BasicManagement/src/Lion.AbpPro.BasicManagement.Application.Contracts/Roles/Dtos/PermissionOutput.cs

@ -0,0 +1,19 @@
namespace Lion.AbpPro.BasicManagement.Roles.Dtos
{
public class PermissionOutput {
public List<string> Grants { get; set; } = new List<string>();
public List<string> AllGrants { get; set; } = new List<string>();
public List<PermissionTreeDto> Permissions { get; set; } = new List<PermissionTreeDto>();
}
public class PermissionTreeDto
{
public string Title { get; set; }
public string Key { get; set; }
public List<PermissionTreeDto> Children { get; set; }=new List<PermissionTreeDto>();
}
}

11
aspnet-core/modules/BasicManagement/src/Lion.AbpPro.BasicManagement.Application.Contracts/Roles/Dtos/UpdateRoleInput.cs

@ -0,0 +1,11 @@
using Volo.Abp.Identity;
namespace Lion.AbpPro.BasicManagement.Roles.Dtos
{
public class UpdateRoleInput
{
public Guid RoleId { get; set; }
public IdentityRoleUpdateDto RoleInfo { get; set; }
}
}

13
aspnet-core/modules/BasicManagement/src/Lion.AbpPro.BasicManagement.Application.Contracts/Roles/Dtos/UpdateRolePermissionsInput.cs

@ -0,0 +1,13 @@
namespace Lion.AbpPro.BasicManagement.Roles.Dtos
{
public class UpdateRolePermissionsInput
{
[Required]
public string ProviderName { get; set; }
[Required]
public string ProviderKey { get; set; }
public UpdatePermissionsDto UpdatePermissionsDto { get; set; }
}
}

18
aspnet-core/modules/BasicManagement/src/Lion.AbpPro.BasicManagement.Application.Contracts/Roles/IRoleAppService.cs

@ -0,0 +1,18 @@
using Lion.AbpPro.BasicManagement.Roles.Dtos;
using Volo.Abp.Identity;
namespace Lion.AbpPro.BasicManagement.Roles
{
public interface IRoleAppService : IApplicationService
{
Task<ListResultDto<IdentityRoleDto>> AllListAsync();
Task<PagedResultDto<IdentityRoleDto>> ListAsync(PagingRoleListInput input);
Task<IdentityRoleDto> CreateAsync(IdentityRoleCreateDto input);
Task<IdentityRoleDto> UpdateAsync(UpdateRoleInput input);
Task DeleteAsync(IdInput input);
}
}

12
aspnet-core/modules/BasicManagement/src/Lion.AbpPro.BasicManagement.Application.Contracts/Roles/IRolePermissionAppService.cs

@ -0,0 +1,12 @@
using Lion.AbpPro.BasicManagement.Roles.Dtos;
namespace Lion.AbpPro.BasicManagement.Roles
{
public interface IRolePermissionAppService : IApplicationService
{
Task<PermissionOutput> GetPermissionAsync(GetPermissionInput input);
Task UpdatePermissionAsync(UpdateRolePermissionsInput input);
}
}

25
aspnet-core/modules/BasicManagement/src/Lion.AbpPro.BasicManagement.Application.Contracts/Roles/PermissionOptions.cs

@ -0,0 +1,25 @@
namespace Lion.AbpPro.BasicManagement.Roles;
public class PermissionOptions
{
/// <summary>
/// 需要排除的权限
/// </summary>
public List<string> Excludes { get; }
public PermissionOptions()
{
Excludes = new List<string>();
}
/// <summary>
/// 权限是否排除
/// </summary>
/// <param name="permission">权限名称</param>
/// <returns>bool</returns>
public bool IsExclude(string permission)
{
if (permission.IsNullOrWhiteSpace()) return false;
return Excludes.Any(e => e.ToLower() == permission.ToLower());
}
}

59
aspnet-core/modules/BasicManagement/src/Lion.AbpPro.BasicManagement.Application.Contracts/Settings/Dtos/SettingOutput.cs

@ -0,0 +1,59 @@
namespace Lion.AbpPro.BasicManagement.Settings.Dtos
{
public class SettingOutput
{
/// <summary>
/// 分组
/// </summary>
public string Group { get; set; }
/// <summary>
/// 分组显示名称
/// </summary>
public string GroupDisplayName { get; set; }
public List<SettingItemOutput> SettingItemOutput { get; set; }
public SettingOutput()
{
SettingItemOutput = new List<SettingItemOutput>();
}
}
public class SettingItemOutput
{
public SettingItemOutput(string name, string displayName, string value, string type,string description)
{
Name = name;
DisplayName = displayName;
Value = value;
Type = type ?? "Text";
Description = description;
}
/// <summary>
/// 名称
/// </summary>
public string Name { get; set; }
/// <summary>
/// 显示名称
/// </summary>
public string DisplayName { get; set; }
/// <summary>
/// 描述
/// </summary>
public string Description { get; set; }
/// <summary>
/// 值
/// </summary>
public string Value { get; set; }
/// <summary>
/// 前端控件类型
/// </summary>
public string Type { get; set; }
}
}

12
aspnet-core/modules/BasicManagement/src/Lion.AbpPro.BasicManagement.Application.Contracts/Settings/Dtos/UpdateSettingInput.cs

@ -0,0 +1,12 @@
namespace Lion.AbpPro.BasicManagement.Settings.Dtos
{
public class UpdateSettingInput
{
public Dictionary<string, string> Values { get; set; }
public UpdateSettingInput()
{
Values = new Dictionary<string, string>();
}
}
}

19
aspnet-core/modules/BasicManagement/src/Lion.AbpPro.BasicManagement.Application.Contracts/Settings/ISettingAppService.cs

@ -0,0 +1,19 @@
using Lion.AbpPro.BasicManagement.Settings.Dtos;
namespace Lion.AbpPro.BasicManagement.Settings
{
public interface ISettingAppService : IApplicationService
{
/// <summary>
/// 获取setting信息
/// </summary>
/// <returns></returns>
Task<List<SettingOutput>> GetAsync();
/// <summary>
/// 更新setting
/// </summary>
/// <returns></returns>
Task UpdateAsync(UpdateSettingInput input);
}
}

7
aspnet-core/modules/BasicManagement/src/Lion.AbpPro.BasicManagement.Application.Contracts/Tenants/Dtos/FindTenantByNameInput.cs

@ -0,0 +1,7 @@
namespace Lion.AbpPro.BasicManagement.Tenants.Dtos
{
public class FindTenantByNameInput
{
public string Name { get; set; }
}
}

7
aspnet-core/modules/BasicManagement/src/Lion.AbpPro.BasicManagement.Application.Contracts/Tenants/Dtos/PagingTenantInput.cs

@ -0,0 +1,7 @@
namespace Lion.AbpPro.BasicManagement.Tenants.Dtos
{
public class PagingTenantInput : PagingBase
{
public string Filter { get; set; }
}
}

8
aspnet-core/modules/BasicManagement/src/Lion.AbpPro.BasicManagement.Application.Contracts/Tenants/Dtos/UpdateDefaultConnectionStringInput.cs

@ -0,0 +1,8 @@
namespace Lion.AbpPro.BasicManagement.Tenants.Dtos
{
public class UpdateConnectionStringInput
{
public Guid Id { get; set; }
[Required(ErrorMessage = "连接字符串不能为空")] public string ConnectionString { get; set; }
}
}

9
aspnet-core/modules/BasicManagement/src/Lion.AbpPro.BasicManagement.Application.Contracts/Tenants/Dtos/UpdateTenantInput.cs

@ -0,0 +1,9 @@
namespace Lion.AbpPro.BasicManagement.Tenants.Dtos
{
public class UpdateTenantInput
{
public Guid Id { get; set; }
[Required(ErrorMessage = "租户名称不能为空")] public string Name { get; set; }
}
}

21
aspnet-core/modules/BasicManagement/src/Lion.AbpPro.BasicManagement.Application.Contracts/Tenants/IVoloTenantAppService.cs

@ -0,0 +1,21 @@
namespace Lion.AbpPro.BasicManagement.Tenants
{
public interface IVoloTenantAppService : IApplicationService
{
Task<FindTenantResultDto> FindTenantByNameAsync(FindTenantByNameInput input);
Task<PagedResultDto<TenantDto>> ListAsync(PagingTenantInput input);
Task<TenantDto> CreateAsync(TenantCreateDto input);
Task<TenantDto> UpdateAsync(UpdateTenantInput input);
Task DeleteAsync(IdInput input);
Task<string> GetDefaultConnectionStringAsync(IdInput input);
Task UpdateDefaultConnectionStringAsync(UpdateConnectionStringInput input);
Task DeleteDefaultConnectionStringAsync(IdInput input);
}
}

32
aspnet-core/modules/BasicManagement/src/Lion.AbpPro.BasicManagement.Application.Contracts/Users/Dtos/ExportIdentityUserOutput.cs

@ -0,0 +1,32 @@
using Magicodes.ExporterAndImporter.Core;
namespace Lion.AbpPro.BasicManagement.Users.Dtos
{
public class ExportIdentityUserOutput
{
[ExporterHeader(DisplayName = "用户名")]
public string UserName { get; set; }
[ExporterHeader(DisplayName = "真实名称")]
public string Name { get; set; }
[ExporterHeader(DisplayName = "邮箱")]
public string Email { get; set; }
[ExporterHeader(DisplayName = "手机号码")]
public string PhoneNumber { get; set; }
[ExporterHeader(IsIgnore = true)]
public bool IsActive { get; set; }
[ExporterHeader(DisplayName = "状态")]
public string Status => IsActive ? "启用" : "禁用";
[ExporterHeader(IsIgnore = true)]
public DateTime CreationTime { get; set; }
[ExporterHeader(DisplayName = "创建时间")]
public string CreationTimeFormat => CreationTime.ToString("yyyy-MM-dd hh:mm:ss");
}
}

24
aspnet-core/modules/BasicManagement/src/Lion.AbpPro.BasicManagement.Application.Contracts/Users/Dtos/GithubAccessTokenResponse.cs

@ -0,0 +1,24 @@
using Newtonsoft.Json;
namespace Lion.AbpPro.BasicManagement.Users.Dtos;
public class GithubAccessTokenResponse
{
/// <summary>
/// access_token
/// </summary>
[JsonProperty("access_token")]
public string Access_token { get; set; }
/// <summary>
/// scope
/// </summary>
[JsonProperty("scope")]
public string Scope { get; set; }
/// <summary>
/// token_type
/// </summary>
[JsonProperty("token_type")]
public string TokenType { get; set; }
}

11
aspnet-core/modules/BasicManagement/src/Lion.AbpPro.BasicManagement.Application.Contracts/Users/Dtos/LockUserInput.cs

@ -0,0 +1,11 @@
namespace Lion.AbpPro.BasicManagement.Users.Dtos
{
public class LockUserInput
{
[Required]
public Guid UserId { get; set; }
[Required]
public bool Locked { get; set; }
}
}

99
aspnet-core/modules/BasicManagement/src/Lion.AbpPro.BasicManagement.Application.Contracts/Users/Dtos/LoginGithubResponse.cs

@ -0,0 +1,99 @@
namespace Lion.AbpPro.BasicManagement.Users.Dtos;
public class LoginGithubResponse
{
public string login { get; set; }
public int id { get; set; }
public string node_id { get; set; }
public string avatar_url { get; set; }
public string gravatar_id { get; set; }
public string url { get; set; }
public string html_url { get; set; }
public string followers_url { get; set; }
public string following_url { get; set; }
public string gists_url { get; set; }
public string starred_url { get; set; }
public string subscriptions_url { get; set; }
public string organizations_url { get; set; }
public string repos_url { get; set; }
public string events_url { get; set; }
public string received_events_url { get; set; }
public string type { get; set; }
public string site_admin { get; set; }
public string name { get; set; }
public string company { get; set; }
public string blog { get; set; }
public string location { get; set; }
public string email { get; set; }
public string hireable { get; set; }
public string bio { get; set; }
public string twitter_username { get; set; }
public int public_repos { get; set; }
public int public_gists { get; set; }
public int followers { get; set; }
public int following { get; set; }
public string created_at { get; set; }
public string updated_at { get; set; }
}

35
aspnet-core/modules/BasicManagement/src/Lion.AbpPro.BasicManagement.Application.Contracts/Users/Dtos/LoginInput.cs

@ -0,0 +1,35 @@
using Volo.Abp.Auditing;
namespace Lion.AbpPro.BasicManagement.Users.Dtos
{
/// <summary>
/// 登录
/// </summary>
public class LoginInput : IValidatableObject
{
/// <summary>
/// 用户名或者邮箱
/// </summary>
public string Name { get; set; }
/// <summary>
/// 密码
/// </summary>
[DisableAuditing]
public string Password { get; set; }
public IEnumerable<ValidationResult> Validate(ValidationContext validationContext)
{
if (Name.IsNullOrWhiteSpace())
{
yield return new ValidationResult("Email can not be null", new[] { "Email" });
}
if (Password.IsNullOrWhiteSpace())
{
yield return new ValidationResult("Password can not be null", new[] { "Password" });
}
}
}
}

15
aspnet-core/modules/BasicManagement/src/Lion.AbpPro.BasicManagement.Application.Contracts/Users/Dtos/LoginOutput.cs

@ -0,0 +1,15 @@
namespace Lion.AbpPro.BasicManagement.Users.Dtos
{
public class LoginOutput
{
public Guid Id { get; set; }
public string Name { get; set; }
public string UserName { get; set; }
public string Token { get; set; }
public List<string> Roles { get; set; } = new List<string>();
}
}

21
aspnet-core/modules/BasicManagement/src/Lion.AbpPro.BasicManagement.Application.Contracts/Users/Dtos/LoginStsResponse.cs

@ -0,0 +1,21 @@
namespace Lion.AbpPro.BasicManagement.Users.Dtos
{
public class LoginStsResponse
{
public string name { get; set; }
public string preferred_username { get; set; }
public string family_name { get; set; }
public string email { get; set; }
public string given_name { get; set; }
public string avatar { get; set; }
public string sub { get; set; }
public Guid? tenantId { get; set; }
}
}

10
aspnet-core/modules/BasicManagement/src/Lion.AbpPro.BasicManagement.Application.Contracts/Users/Dtos/PagingUserListInput.cs

@ -0,0 +1,10 @@
namespace Lion.AbpPro.BasicManagement.Users.Dtos
{
public class PagingUserListInput : PagingBase
{
/// <summary>
/// 关键字
/// </summary>
public string Filter { get; set; }
}
}

11
aspnet-core/modules/BasicManagement/src/Lion.AbpPro.BasicManagement.Application.Contracts/Users/Dtos/UpdateUserInput.cs

@ -0,0 +1,11 @@
using Volo.Abp.Identity;
namespace Lion.AbpPro.BasicManagement.Users.Dtos
{
public class UpdateUserInput
{
public Guid UserId { get; set; }
public IdentityUserUpdateDto UserInfo { get; set; }
}
}

12
aspnet-core/modules/BasicManagement/src/Lion.AbpPro.BasicManagement.Application.Contracts/Users/IAccountAppService.cs

@ -0,0 +1,12 @@
using Lion.AbpPro.BasicManagement.Users.Dtos;
namespace Lion.AbpPro.BasicManagement.Users
{
public interface IAccountAppService: IApplicationService
{
/// <summary>
/// 用户名密码登录
/// </summary>
Task<LoginOutput> LoginAsync(LoginInput input);
}
}

51
aspnet-core/modules/BasicManagement/src/Lion.AbpPro.BasicManagement.Application.Contracts/Users/IUserAppService.cs

@ -0,0 +1,51 @@
using Lion.AbpPro.BasicManagement.Users.Dtos;
using Microsoft.AspNetCore.Mvc;
using Volo.Abp.Account;
using Volo.Abp.Identity;
namespace Lion.AbpPro.BasicManagement.Users
{
public interface IUserAppService : IApplicationService
{
/// <summary>
/// 分页查询用户
/// </summary>
Task<PagedResultDto<IdentityUserDto>> ListAsync(PagingUserListInput input);
/// <summary>
/// 用户导出列表
/// </summary>
Task<ActionResult> ExportAsync(PagingUserListInput input);
/// <summary>
/// 新增用户
/// </summary>
Task<IdentityUserDto> CreateAsync(IdentityUserCreateDto input);
/// <summary>
/// 更新用户
/// </summary>
Task<IdentityUserDto> UpdateAsync(UpdateUserInput input);
/// <summary>
/// 删除用户
/// </summary>
Task DeleteAsync(IdInput input);
/// <summary>
/// 获取用户角色信息
/// </summary>
Task<ListResultDto<IdentityRoleDto>> GetRoleByUserId(IdInput input);
/// <summary>
/// 修改密码
/// </summary>
Task<bool> ChangePasswordAsync(ChangePasswordInput input);
/// <summary>
/// 锁定用户
/// </summary>
Task LockAsync(LockUserInput input);
}
}

339
aspnet-core/modules/BasicManagement/src/Lion.AbpPro.BasicManagement.Application/ApplicationConfigurations/LionAbpApplicationConfigurationAppService.cs

@ -0,0 +1,339 @@
namespace Lion.AbpPro.BasicManagement.ApplicationConfigurations;
[Dependency(ReplaceServices = true)]
public class LionAbpApplicationConfigurationAppService : ApplicationService, IAbpApplicationConfigurationAppService
{
private readonly AbpLocalizationOptions _localizationOptions;
private readonly AbpMultiTenancyOptions _multiTenancyOptions;
private readonly IServiceProvider _serviceProvider;
private readonly IAbpAuthorizationPolicyProvider _abpAuthorizationPolicyProvider;
private readonly IPermissionDefinitionManager _permissionDefinitionManager;
private readonly DefaultAuthorizationPolicyProvider _defaultAuthorizationPolicyProvider;
private readonly IPermissionChecker _permissionChecker;
private readonly IAuthorizationService _authorizationService;
private readonly ICurrentUser _currentUser;
private readonly ISettingProvider _settingProvider;
private readonly ISettingDefinitionManager _settingDefinitionManager;
private readonly IFeatureDefinitionManager _featureDefinitionManager;
private readonly ILanguageProvider _languageProvider;
private readonly ITimezoneProvider _timezoneProvider;
private readonly AbpClockOptions _abpClockOptions;
private readonly ICachedObjectExtensionsDtoService _cachedObjectExtensionsDtoService;
public LionAbpApplicationConfigurationAppService(
IOptions<AbpLocalizationOptions> localizationOptions,
IOptions<AbpMultiTenancyOptions> multiTenancyOptions,
IServiceProvider serviceProvider,
IAbpAuthorizationPolicyProvider abpAuthorizationPolicyProvider,
IPermissionDefinitionManager permissionDefinitionManager,
DefaultAuthorizationPolicyProvider defaultAuthorizationPolicyProvider,
IPermissionChecker permissionChecker,
IAuthorizationService authorizationService,
ICurrentUser currentUser,
ISettingProvider settingProvider,
ISettingDefinitionManager settingDefinitionManager,
IFeatureDefinitionManager featureDefinitionManager,
ILanguageProvider languageProvider,
ITimezoneProvider timezoneProvider,
IOptions<AbpClockOptions> abpClockOptions,
ICachedObjectExtensionsDtoService cachedObjectExtensionsDtoService)
{
_serviceProvider = serviceProvider;
_abpAuthorizationPolicyProvider = abpAuthorizationPolicyProvider;
_permissionDefinitionManager = permissionDefinitionManager;
_defaultAuthorizationPolicyProvider = defaultAuthorizationPolicyProvider;
_permissionChecker = permissionChecker;
_authorizationService = authorizationService;
_currentUser = currentUser;
_settingProvider = settingProvider;
_settingDefinitionManager = settingDefinitionManager;
_featureDefinitionManager = featureDefinitionManager;
_languageProvider = languageProvider;
_timezoneProvider = timezoneProvider;
_abpClockOptions = abpClockOptions.Value;
_cachedObjectExtensionsDtoService = cachedObjectExtensionsDtoService;
_localizationOptions = localizationOptions.Value;
_multiTenancyOptions = multiTenancyOptions.Value;
}
public virtual async Task<ApplicationConfigurationDto> GetAsync()
{
//TODO: Optimize & cache..?
Logger.LogDebug("Executing AbpApplicationConfigurationAppService.GetAsync()...");
var result = new ApplicationConfigurationDto
{
Auth = await GetAuthConfigAsync(),
Features = await GetFeaturesConfigAsync(),
Localization = await GetLocalizationConfigAsync(),
CurrentUser = GetCurrentUser(),
Setting = await GetSettingConfigAsync(),
MultiTenancy = GetMultiTenancy(),
CurrentTenant = GetCurrentTenant(),
Timing = await GetTimingConfigAsync(),
Clock = GetClockConfig(),
ObjectExtensions = _cachedObjectExtensionsDtoService.Get()
};
Logger.LogDebug("Executed AbpApplicationConfigurationAppService.GetAsync().");
return result;
}
protected virtual CurrentTenantDto GetCurrentTenant()
{
return new CurrentTenantDto()
{
Id = CurrentTenant.Id,
Name = CurrentTenant.Name,
IsAvailable = CurrentTenant.IsAvailable
};
}
protected virtual MultiTenancyInfoDto GetMultiTenancy()
{
return new MultiTenancyInfoDto
{
IsEnabled = _multiTenancyOptions.IsEnabled
};
}
protected virtual CurrentUserDto GetCurrentUser()
{
return new CurrentUserDto
{
IsAuthenticated = _currentUser.IsAuthenticated,
Id = _currentUser.Id,
TenantId = _currentUser.TenantId,
ImpersonatorUserId = _currentUser.FindImpersonatorUserId(),
ImpersonatorTenantId = _currentUser.FindImpersonatorTenantId(),
UserName = _currentUser.UserName,
SurName = _currentUser.SurName,
Name = _currentUser.Name,
Email = _currentUser.Email,
EmailVerified = _currentUser.EmailVerified,
PhoneNumber = _currentUser.PhoneNumber,
PhoneNumberVerified = _currentUser.PhoneNumberVerified,
Roles = _currentUser.Roles
};
}
protected virtual async Task<ApplicationAuthConfigurationDto> GetAuthConfigAsync()
{
var authConfig = new ApplicationAuthConfigurationDto();
var policyNames = await _abpAuthorizationPolicyProvider.GetPoliciesNamesAsync();
var abpPolicyNames = new List<string>();
var otherPolicyNames = new List<string>();
foreach (var policyName in policyNames)
{
if (await _defaultAuthorizationPolicyProvider.GetPolicyAsync(policyName) == null && _permissionDefinitionManager.GetOrNull(policyName) != null)
{
abpPolicyNames.Add(policyName);
}
else
{
otherPolicyNames.Add(policyName);
}
}
foreach (var policyName in otherPolicyNames)
{
authConfig.Policies[policyName] = true;
if (await _authorizationService.IsGrantedAsync(policyName))
{
authConfig.GrantedPolicies[policyName] = true;
}
}
var result = await _permissionChecker.IsGrantedAsync(abpPolicyNames.ToArray());
foreach (var (key, value) in result.Result)
{
authConfig.Policies[key] = true;
if (value == PermissionGrantResult.Granted)
{
authConfig.GrantedPolicies[key] = true;
}
}
var policies = BuildGrantedPolicies(authConfig.GrantedPolicies.Select(e => e.Key).ToList());
foreach (var item in policies)
{
if (authConfig.GrantedPolicies.Any(e => e.Key == item)) continue;
authConfig.GrantedPolicies.Add(item, true);
}
return authConfig;
}
private List<string> BuildGrantedPolicies(List<string> grantedPolicies)
{
var result = new List<string>();
foreach (var policy in grantedPolicies)
{
result.AddRange(GetPolicy(policy));
}
return result.Distinct().ToList();
}
private List<string> GetPolicy(string policy)
{
var result = new List<string>();
var split = policy.Split('.', StringSplitOptions.RemoveEmptyEntries);
if (split.Length <= 0) return result;
var currentPolicy = string.Empty;
for (int i = 0; i < split.Length - 1; i++)
{
if (i == 0)
{
currentPolicy += split[i];
}
else
{
currentPolicy += "." + split[i];
}
}
if (!currentPolicy.IsNullOrWhiteSpace())
{
result.Add(currentPolicy);
result.AddRange(GetPolicy(currentPolicy));
}
return result;
}
protected virtual async Task<ApplicationLocalizationConfigurationDto> GetLocalizationConfigAsync()
{
var localizationConfig = new ApplicationLocalizationConfigurationDto();
localizationConfig.Languages.AddRange(await _languageProvider.GetLanguagesAsync());
foreach (var resource in _localizationOptions.Resources.Values)
{
var dictionary = new Dictionary<string, string>();
var localizer = _serviceProvider.GetRequiredService(
typeof(IStringLocalizer<>).MakeGenericType(resource.ResourceType)
) as IStringLocalizer;
foreach (var localizedString in localizer.GetAllStrings())
{
dictionary[localizedString.Name] = localizedString.Value;
}
localizationConfig.Values[resource.ResourceName] = dictionary;
}
localizationConfig.CurrentCulture = GetCurrentCultureInfo();
if (_localizationOptions.DefaultResourceType != null)
{
localizationConfig.DefaultResourceName = LocalizationResourceNameAttribute.GetName(
_localizationOptions.DefaultResourceType
);
}
localizationConfig.LanguagesMap = _localizationOptions.LanguagesMap;
localizationConfig.LanguageFilesMap = _localizationOptions.LanguageFilesMap;
return localizationConfig;
}
private static CurrentCultureDto GetCurrentCultureInfo()
{
return new CurrentCultureDto
{
Name = CultureInfo.CurrentUICulture.Name,
DisplayName = CultureInfo.CurrentUICulture.DisplayName,
EnglishName = CultureInfo.CurrentUICulture.EnglishName,
NativeName = CultureInfo.CurrentUICulture.NativeName,
IsRightToLeft = CultureInfo.CurrentUICulture.TextInfo.IsRightToLeft,
CultureName = CultureInfo.CurrentUICulture.TextInfo.CultureName,
TwoLetterIsoLanguageName = CultureInfo.CurrentUICulture.TwoLetterISOLanguageName,
ThreeLetterIsoLanguageName = CultureInfo.CurrentUICulture.ThreeLetterISOLanguageName,
DateTimeFormat = new DateTimeFormatDto
{
CalendarAlgorithmType =
CultureInfo.CurrentUICulture.DateTimeFormat.Calendar.AlgorithmType.ToString(),
DateTimeFormatLong = CultureInfo.CurrentUICulture.DateTimeFormat.LongDatePattern,
ShortDatePattern = CultureInfo.CurrentUICulture.DateTimeFormat.ShortDatePattern,
FullDateTimePattern = CultureInfo.CurrentUICulture.DateTimeFormat.FullDateTimePattern,
DateSeparator = CultureInfo.CurrentUICulture.DateTimeFormat.DateSeparator,
ShortTimePattern = CultureInfo.CurrentUICulture.DateTimeFormat.ShortTimePattern,
LongTimePattern = CultureInfo.CurrentUICulture.DateTimeFormat.LongTimePattern,
}
};
}
private async Task<ApplicationSettingConfigurationDto> GetSettingConfigAsync()
{
var result = new ApplicationSettingConfigurationDto
{
Values = new Dictionary<string, string>()
};
var settingDefinitions = _settingDefinitionManager.GetAll().Where(x => x.IsVisibleToClients);
var settingValues = await _settingProvider.GetAllAsync(settingDefinitions.Select(x => x.Name).ToArray());
foreach (var settingValue in settingValues)
{
result.Values[settingValue.Name] = settingValue.Value;
}
return result;
}
protected virtual async Task<ApplicationFeatureConfigurationDto> GetFeaturesConfigAsync()
{
var result = new ApplicationFeatureConfigurationDto();
foreach (var featureDefinition in _featureDefinitionManager.GetAll())
{
if (!featureDefinition.IsVisibleToClients)
{
continue;
}
result.Values[featureDefinition.Name] = await FeatureChecker.GetOrNullAsync(featureDefinition.Name);
}
return result;
}
protected virtual async Task<TimingDto> GetTimingConfigAsync()
{
var windowsTimeZoneId = await _settingProvider.GetOrNullAsync(TimingSettingNames.TimeZone);
return new TimingDto
{
TimeZone = new Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.TimeZone
{
Windows = new WindowsTimeZone
{
TimeZoneId = windowsTimeZoneId
},
Iana = new IanaTimeZone
{
TimeZoneName = windowsTimeZoneId.IsNullOrWhiteSpace()
? null
: _timezoneProvider.WindowsToIana(windowsTimeZoneId)
}
}
};
}
protected virtual ClockDto GetClockConfig()
{
return new ClockDto
{
Kind = Enum.GetName(typeof(DateTimeKind), _abpClockOptions.Kind)
};
}
}

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

@ -0,0 +1,54 @@
namespace Lion.AbpPro.BasicManagement.AuditLogs
{
[Authorize]
public class AuditLogAppService : BasicManagementAppService, IAuditLogAppService
{
private readonly IAuditLogRepository _auditLogRepository;
public AuditLogAppService(IAuditLogRepository auditLogRepository)
{
_auditLogRepository = auditLogRepository;
}
/// <summary>
/// 分页查询审计日志
/// </summary>
[Authorize(Policy = BasicManagementPermissions.SystemManagement.AuditLog)]
public async Task<PagedResultDto<GetAuditLogPageListOutput>> GetListAsync(PagingAuditLogListInput input)
{
var list = await _auditLogRepository.GetListAsync(
input.Sorting,
input.PageSize,
input.SkipCount,
input.StartTime?.Date,
input.EndTime?.Date,
input.HttpMethod,
input.Url,
null,
input.UserName,
input.ApplicationName,
input.CorrelationId,
null,
input.MaxExecutionDuration,
input.MinExecutionDuration,
input.HasException,
input.HttpStatusCode);
var totalCount = await _auditLogRepository.GetCountAsync(
input.StartTime?.Date,
input.EndTime?.Date,
input.HttpMethod,
input.Url,
null,
input.UserName,
input.ApplicationName,
null,
input.CorrelationId,
input.MaxExecutionDuration,
input.MinExecutionDuration,
input.HasException,
input.HttpStatusCode);
return new PagedResultDto<GetAuditLogPageListOutput>(totalCount,
ObjectMapper.Map<List<AuditLog>, List<GetAuditLogPageListOutput>>(list));
}
}
}

12
aspnet-core/modules/BasicManagement/src/Lion.AbpPro.BasicManagement.Application/BasicManagementAppService.cs

@ -0,0 +1,12 @@
using Lion.AbpPro.BasicManagement.Localization;
namespace Lion.AbpPro.BasicManagement;
public abstract class BasicManagementAppService : ApplicationService
{
protected BasicManagementAppService()
{
LocalizationResource = typeof(BasicManagementResource);
ObjectMapperContext = typeof(BasicManagementApplicationModule);
}
}

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

@ -0,0 +1,23 @@
using AutoMapper;
using Lion.AbpPro.BasicManagement.AuditLogs;
using Lion.AbpPro.BasicManagement.Users.Dtos;
namespace Lion.AbpPro.BasicManagement;
public class BasicManagementApplicationAutoMapperProfile : Profile
{
public BasicManagementApplicationAutoMapperProfile()
{
CreateMap<AuditLog, GetAuditLogPageListOutput>();
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>();
}
}

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

@ -0,0 +1,65 @@
using Lion.AbpPro.BasicManagement.ConfigurationOptions;
using Lion.AbpPro.BasicManagement.Roles;
using Magicodes.ExporterAndImporter.Core;
using Magicodes.ExporterAndImporter.Excel;
using Volo.Abp.Account;
using Volo.Abp.AutoMapper;
using Volo.Abp.Modularity;
using Volo.Abp.Application;
using Volo.Abp.FeatureManagement;
using Volo.Abp.PermissionManagement;
using Volo.Abp.SettingManagement;
namespace Lion.AbpPro.BasicManagement;
[DependsOn(
typeof(BasicManagementDomainModule),
typeof(BasicManagementApplicationContractsModule),
typeof(AbpDddApplicationModule),
typeof(AbpAutoMapperModule),
typeof(AbpAccountApplicationModule),
typeof(AbpIdentityApplicationModule),
typeof(AbpPermissionManagementApplicationModule),
typeof(AbpTenantManagementApplicationModule),
typeof(AbpFeatureManagementApplicationModule),
typeof(AbpSettingManagementApplicationModule),
typeof(AbpAuditLoggingDomainModule)
)]
public class BasicManagementApplicationModule : AbpModule
{
public override void ConfigureServices(ServiceConfigurationContext context)
{
context.Services.AddAutoMapperObjectMapper<BasicManagementApplicationModule>();
Configure<AbpAutoMapperOptions>(options =>
{
options.AddMaps<BasicManagementApplicationModule>(validate: true);
});
Configure<PermissionOptions>(options =>
{
options.Excludes.Add("AbpIdentity.Users.ManagePermissions");
options.Excludes.Add("AbpIdentity.UserLookup");
options.Excludes.Add("FeatureManagement");
options.Excludes.Add("FeatureManagement.ManageHostFeatures");
options.Excludes.Add("SettingManagement");
options.Excludes.Add("SettingManagement.Emailing");
options.Excludes.Add("AbpTenantManagement");
options.Excludes.Add("AbpTenantManagement.Tenants.ManageFeatures");
options.Excludes.Add("AbpTenantManagement.Tenants.ManageConnectionStrings");
});
context.Services.Configure<JwtOptions>(context.Services.GetConfiguration().GetSection("Jwt"));
ConfigureMagicodes(context);
}
/// <summary>
/// 配置Magicodes.IE
/// Excel导入导出
/// </summary>
private void ConfigureMagicodes(ServiceConfigurationContext context)
{
context.Services.AddTransient<IExporter, ExcelExporter>();
context.Services.AddTransient<IExcelExporter, ExcelExporter>();
}
}

3
aspnet-core/modules/BasicManagement/src/Lion.AbpPro.BasicManagement.Application/FodyWeavers.xml

@ -0,0 +1,3 @@
<Weavers xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="FodyWeavers.xsd">
<ConfigureAwait ContinueOnCapturedContext="false" />
</Weavers>

30
aspnet-core/modules/BasicManagement/src/Lion.AbpPro.BasicManagement.Application/FodyWeavers.xsd

@ -0,0 +1,30 @@
<?xml version="1.0" encoding="utf-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
<!-- This file was generated by Fody. Manual changes to this file will be lost when your project is rebuilt. -->
<xs:element name="Weavers">
<xs:complexType>
<xs:all>
<xs:element name="ConfigureAwait" minOccurs="0" maxOccurs="1">
<xs:complexType>
<xs:attribute name="ContinueOnCapturedContext" type="xs:boolean" />
</xs:complexType>
</xs:element>
</xs:all>
<xs:attribute name="VerifyAssembly" type="xs:boolean">
<xs:annotation>
<xs:documentation>'true' to run assembly verification (PEVerify) on the target assembly after all weavers have been executed.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="VerifyIgnoreCodes" type="xs:string">
<xs:annotation>
<xs:documentation>A comma-separated list of error codes that can be safely ignored in assembly verification.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="GenerateXsd" type="xs:boolean">
<xs:annotation>
<xs:documentation>'false' to turn off automatic generation of the XML Schema file.</xs:documentation>
</xs:annotation>
</xs:attribute>
</xs:complexType>
</xs:element>
</xs:schema>

31
aspnet-core/modules/BasicManagement/src/Lion.AbpPro.BasicManagement.Application/GlobalUsings.cs

@ -0,0 +1,31 @@
// Global using directives
global using System.Globalization;
global using AutoMapper.Internal.Mappers;
global using Lion.AbpPro.BasicManagement.OrganizationUnits.Dto;
global using Lion.AbpPro.BasicManagement.Permissions;
global using Lion.AbpPro.BasicManagement.Tenants.Dtos;
global using Lion.AbpPro.Extension.Customs.Dtos;
global using Microsoft.AspNetCore.Authorization;
global using Microsoft.Extensions.DependencyInjection;
global using Microsoft.Extensions.Localization;
global using Microsoft.Extensions.Logging;
global using Microsoft.Extensions.Options;
global using Volo.Abp;
global using Volo.Abp.Application.Dtos;
global using Volo.Abp.Application.Services;
global using Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations;
global using Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ObjectExtending;
global using Volo.Abp.AspNetCore.Mvc.MultiTenancy;
global using Volo.Abp.AuditLogging;
global using Volo.Abp.Authorization;
global using Volo.Abp.Authorization.Permissions;
global using Volo.Abp.DependencyInjection;
global using Volo.Abp.Features;
global using Volo.Abp.Identity;
global using Volo.Abp.Localization;
global using Volo.Abp.MultiTenancy;
global using Volo.Abp.Settings;
global using Volo.Abp.TenantManagement;
global using Volo.Abp.Timing;
global using Volo.Abp.Users;

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

@ -0,0 +1,25 @@
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>net6.0</TargetFramework>
<RootNamespace>Lion.AbpPro.BasicManagement</RootNamespace>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="Volo.Abp.AutoMapper" />
<PackageReference Include="Volo.Abp.Ddd.Application" />
<PackageReference Include="Volo.Abp.Account.Application" />
<PackageReference Include="Volo.Abp.AspNetCore.Mvc" />
<PackageReference Include="Volo.Abp.Identity.Application" />
<PackageReference Include="Volo.Abp.PermissionManagement.Application" />
<PackageReference Include="Volo.Abp.TenantManagement.Application" />
<PackageReference Include="Volo.Abp.FeatureManagement.Application" />
<PackageReference Include="Volo.Abp.SettingManagement.Application" />
<PackageReference Include="Microsoft.IdentityModel.Tokens" />
<PackageReference Include="System.IdentityModel.Tokens.Jwt" />
<PackageReference Include="IdentityModel" />
<ProjectReference Include="..\Lion.AbpPro.BasicManagement.Application.Contracts\Lion.AbpPro.BasicManagement.Application.Contracts.csproj" />
<ProjectReference Include="..\Lion.AbpPro.BasicManagement.Domain\Lion.AbpPro.BasicManagement.Domain.csproj" />
</ItemGroup>
</Project>

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

@ -0,0 +1,198 @@
namespace Lion.AbpPro.BasicManagement.OrganizationUnits;
[Authorize]
public class OrganizationUnitAppService : BasicManagementAppService, IOrganizationUnitAppService
{
private readonly OrganizationUnitManager _organizationUnitManager;
private readonly IdentityUserManager _identityUserManager;
private readonly IOrganizationUnitRepository _organizationUnitRepository;
public OrganizationUnitAppService(
OrganizationUnitManager OrganizationUnitManager,
IdentityUserManager identityUserManager,
IOrganizationUnitRepository organizationUnitRepository)
{
_organizationUnitManager = OrganizationUnitManager;
_identityUserManager = identityUserManager;
_organizationUnitRepository = organizationUnitRepository;
}
public async Task<List<TreeOutput>> GetTreeAsync()
{
var organizationUnits = await _organizationUnitRepository.GetListAsync();
var organizationUnitDtos = ObjectMapper.Map<List<OrganizationUnit>, List<OrganizationUnitDto>>(organizationUnits);
return ConvertToTree(organizationUnitDtos);
}
[Authorize(BasicManagementPermissions.SystemManagement.OrganizationUnitManagement.Create)]
public async Task CreateAsync(CreateOrganizationUnitInput input)
{
var entity = new OrganizationUnit
(
GuidGenerator.Create(),
input.DisplayName,
input.ParentId,
CurrentTenant.Id
);
await _organizationUnitManager.CreateAsync(entity);
}
[Authorize(BasicManagementPermissions.SystemManagement.OrganizationUnitManagement.Delete)]
public Task DeleteAsync(IdInput input)
{
return _organizationUnitManager.DeleteAsync(input.Id);
}
[Authorize(BasicManagementPermissions.SystemManagement.OrganizationUnitManagement.Update)]
public async Task UpdateAsync(UpdateOrganizationUnitInput input)
{
var entity = await _organizationUnitRepository.FindAsync(input.Id);
if (entity != null)
{
entity.DisplayName = input.DisplayName;
await _organizationUnitManager.UpdateAsync(entity);
}
}
[Authorize(BasicManagementPermissions.SystemManagement.OrganizationUnitManagement.Create)]
public async Task AddRoleToOrganizationUnitAsync(AddRoleToOrganizationUnitInput input)
{
foreach (var roleId in input.RoleId)
{
await _organizationUnitManager.AddRoleToOrganizationUnitAsync(roleId, input.OrganizationUnitId);
}
}
[Authorize(BasicManagementPermissions.SystemManagement.OrganizationUnitManagement.Delete)]
public async Task RemoveRoleFromOrganizationUnitAsync(RemoveRoleToOrganizationUnitInput input)
{
await _organizationUnitManager.RemoveRoleFromOrganizationUnitAsync(input.RoleId, input.OrganizationUnitId);
}
[Authorize(BasicManagementPermissions.SystemManagement.OrganizationUnitManagement.Create)]
public async Task AddUserToOrganizationUnitAsync(AddUserToOrganizationUnitInput input)
{
foreach (var userId in input.UserId)
{
await _identityUserManager.AddToOrganizationUnitAsync(userId, input.OrganizationUnitId);
}
}
[Authorize(BasicManagementPermissions.SystemManagement.OrganizationUnitManagement.Delete)]
public async Task RemoveUserFromOrganizationUnitAsync(RemoveUserToOrganizationUnitInput input)
{
await _identityUserManager.RemoveFromOrganizationUnitAsync(input.UserId, input.OrganizationUnitId);
}
public async Task<PagedResultDto<GetOrganizationUnitUserOutput>> GetUsersAsync(GetOrganizationUnitUserInput input)
{
var listResult = new List<GetOrganizationUnitUserOutput>();
var organizationUnit = await _organizationUnitRepository.FindAsync(input.OrganizationUnitId);
if (organizationUnit == null) throw new BusinessException(BasicManagementErrorCodes.OrganizationUnitNotExist);
var count = await _organizationUnitRepository.GetMembersCountAsync(organizationUnit, filter: input.Filter);
if (count > 0)
{
var list = await _organizationUnitRepository.GetMembersAsync
(
organizationUnit,
maxResultCount: input.PageSize,
skipCount: input.SkipCount,
filter: input.Filter
);
listResult = ObjectMapper.Map<List<IdentityUser>, List<GetOrganizationUnitUserOutput>>(list);
}
return new PagedResultDto<GetOrganizationUnitUserOutput>(count, listResult);
}
public async Task<PagedResultDto<GetUnAddUserOutput>> GetUnAddUsersAsync(GetUnAddUserInput input)
{
var listResult = new List<GetUnAddUserOutput>();
var organizationUnit = await _organizationUnitRepository.FindAsync(input.OrganizationUnitId);
if (organizationUnit == null) throw new BusinessException(BasicManagementErrorCodes.OrganizationUnitNotExist);
var count = await _organizationUnitRepository.GetUnaddedUsersCountAsync(organizationUnit, input.Filter);
if (count > 0)
{
var users = await _organizationUnitRepository.GetUnaddedUsersAsync
(
organizationUnit,
maxResultCount: input.PageSize,
skipCount: input.SkipCount,
filter: input.Filter
);
listResult = ObjectMapper.Map<List<IdentityUser>, List<GetUnAddUserOutput>>(users);
}
return new PagedResultDto<GetUnAddUserOutput>(count, listResult);
}
public async Task<PagedResultDto<GetOrganizationUnitRoleOutput>> GetRolesAsync(GetOrganizationUnitRoleInput input)
{
var listResult = new List<GetOrganizationUnitRoleOutput>();
var organizationUnit = await _organizationUnitRepository.FindAsync(input.OrganizationUnitId);
if (organizationUnit == null) throw new BusinessException(BasicManagementErrorCodes.OrganizationUnitNotExist);
var count = await _organizationUnitRepository.GetRolesCountAsync(organizationUnit);
if (count > 0)
{
var list = await _organizationUnitRepository.GetRolesAsync(organizationUnit, maxResultCount: input.PageSize, skipCount: input.SkipCount);
listResult = ObjectMapper.Map<List<IdentityRole>, List<GetOrganizationUnitRoleOutput>>(list);
}
return new PagedResultDto<GetOrganizationUnitRoleOutput>(count, listResult);
}
public async Task<PagedResultDto<GetUnAddRoleOutput>> GetUnAddRolessAsync(GetUnAddRoleInput input)
{
var listResult = new List<GetUnAddRoleOutput>();
var organizationUnit = await _organizationUnitRepository.FindAsync(input.OrganizationUnitId);
if (organizationUnit == null) throw new BusinessException(BasicManagementErrorCodes.OrganizationUnitNotExist);
var count = await _organizationUnitRepository.GetUnaddedRolesCountAsync(organizationUnit, input.Filter);
if (count > 0)
{
var roles = await _organizationUnitRepository.GetUnaddedRolesAsync
(
organizationUnit,
maxResultCount: input.PageSize,
skipCount: input.SkipCount,
filter: input.Filter
);
listResult = ObjectMapper.Map<List<IdentityRole>, List<GetUnAddRoleOutput>>(roles);
}
return new PagedResultDto<GetUnAddRoleOutput>(count, listResult);
}
#region 私有方法
private List<TreeOutput> ConvertToTree(
List<OrganizationUnitDto> list,
Guid? Id = null)
{
var result = new List<TreeOutput>();
var childList = Children(list, Id);
foreach (var item in childList)
{
var tree = new TreeOutput
{
Key = item.Id,
Title = item.DisplayName,
Children = ConvertToTree(list, item.Id)
};
result.Add(tree);
}
return result;
}
private List<OrganizationUnitDto> Children(
List<OrganizationUnitDto> list,
Guid? Id)
{
var childList = list.Where(x => x.ParentId == Id).ToList();
return childList;
}
#endregion
}

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

@ -0,0 +1,87 @@
using Lion.AbpPro.BasicManagement.Roles.Dtos;
namespace Lion.AbpPro.BasicManagement.Roles
{
[Authorize]
public class RoleAppService : BasicManagementAppService, IRoleAppService
{
private readonly IIdentityRoleAppService _identityRoleAppService;
private readonly IIdentityRoleRepository _roleRepository;
public RoleAppService(
IIdentityRoleAppService identityRoleAppService,
IIdentityRoleRepository roleRepository)
{
_identityRoleAppService = identityRoleAppService;
_roleRepository = roleRepository;
}
/// <summary>
/// 获取所有角色
/// </summary>
public async Task<ListResultDto<IdentityRoleDto>> AllListAsync()
{
List<IdentityRole> source =
await _roleRepository.GetListAsync()
.ConfigureAwait(continueOnCapturedContext: false);
return new ListResultDto<IdentityRoleDto>(
ObjectMapper.Map<List<IdentityRole>, List<IdentityRoleDto>>(source));
}
/// <summary>
/// 分页查询角色
/// </summary>
/// <param name="input"></param>
/// <returns></returns>
public async Task<PagedResultDto<IdentityRoleDto>> ListAsync(PagingRoleListInput input)
{
var request = new GetIdentityRolesInput
{
Filter = input.Filter?.Trim(), MaxResultCount = input.PageSize,
SkipCount = input.SkipCount
};
List<IdentityRole> list = await _roleRepository
.GetListAsync(request.Sorting, request.MaxResultCount, request.SkipCount,
request.Filter)
.ConfigureAwait(continueOnCapturedContext: false);
return new PagedResultDto<IdentityRoleDto>(
await _roleRepository.GetCountAsync(request.Filter)
.ConfigureAwait(continueOnCapturedContext: false),
ObjectMapper.Map<List<IdentityRole>, List<IdentityRoleDto>>(list));
}
/// <summary>
/// 创建角色
/// </summary>
/// <param name="input"></param>
/// <returns></returns>
[Authorize(IdentityPermissions.Roles.Create)]
public async Task<IdentityRoleDto> CreateAsync(IdentityRoleCreateDto input)
{
return await _identityRoleAppService.CreateAsync(input);
}
/// <summary>
/// 更新角色
/// </summary>
[Authorize(IdentityPermissions.Roles.Update)]
public async Task<IdentityRoleDto> UpdateAsync(UpdateRoleInput input)
{
return await _identityRoleAppService.UpdateAsync(input.RoleId, input.RoleInfo);
}
/// <summary>
/// 删除角色
/// </summary>
[Authorize(IdentityPermissions.Roles.Delete)]
public async Task DeleteAsync(IdInput input)
{
await _identityRoleAppService.DeleteAsync(input.Id);
}
}
}

120
aspnet-core/modules/BasicManagement/src/Lion.AbpPro.BasicManagement.Application/Roles/RolePermissionAppService.cs

@ -0,0 +1,120 @@
using Lion.AbpPro.BasicManagement.Roles.Dtos;
using Volo.Abp.PermissionManagement;
namespace Lion.AbpPro.BasicManagement.Roles
{
[Authorize]
public class RolePermissionAppService : BasicManagementAppService, IRolePermissionAppService
{
private readonly IPermissionAppService _rolePermissionAppService;
private readonly PermissionOptions _permissionOptions;
public RolePermissionAppService(IPermissionAppService rolePermissionAppService, IOptions<PermissionOptions> permissionOptions)
{
_rolePermissionAppService = rolePermissionAppService;
_permissionOptions = permissionOptions.Value;
}
/// <summary>
/// 获取所有权限
/// </summary>
/// <returns></returns>
public async Task<PermissionOutput> GetPermissionAsync(GetPermissionInput input)
{
var permissions =
await _rolePermissionAppService.GetAsync(input.ProviderName, input.ProviderKey);
return BuildTreeData(permissions.Groups);
}
/// <summary>
/// 更新权限
/// </summary>
/// <param name="input"></param>
[Authorize(IdentityPermissions.Roles.ManagePermissions)]
public async Task UpdatePermissionAsync(UpdateRolePermissionsInput input)
{
await _rolePermissionAppService.UpdateAsync(input.ProviderName, input.ProviderKey,
input.UpdatePermissionsDto);
}
/// <summary>
/// 生成权限树
/// </summary>
/// <param name="input"></param>
/// <returns></returns>
private PermissionOutput BuildTreeData(List<PermissionGroupDto> input)
{
var result = new PermissionOutput();
var permissions = new List<PermissionTreeDto>();
foreach (var group in input)
{
if (_permissionOptions.IsExclude(group.Name)) continue;
// 获取分组信息
var groupPermission = new PermissionTreeDto
{
Key = group.Name,
Title = group.Name == "AbpIdentity"
? L[$"Permission:SystemManagement"]
: group.DisplayName
};
result.Grants.Add(group.Name);
// 获取所有已授权和未授权权限集合
foreach (var item in group.Permissions)
{
if (_permissionOptions.IsExclude(item.Name)) continue;
result.AllGrants.Add(item.Name);
if (item.IsGranted)
{
result.Grants.Add(item.Name);
}
else
{
// 只要没有授权的,就移除顶级的分组
result.Grants.Remove(group.Name);
result.Grants.Remove(item.ParentName);
}
}
// 递归菜单
var childTreeMenu = RecursionMenu(group.Permissions, null);
groupPermission.Children.AddRange(childTreeMenu.Children);
permissions.Add(groupPermission);
}
result.Permissions = permissions;
return result;
}
/// <summary>
/// 递归菜单
/// </summary>
private PermissionTreeDto RecursionMenu(List<PermissionGrantInfoDto> permissionGrantInfoDtos,
string parentName)
{
var tree = new PermissionTreeDto();
var permissions = permissionGrantInfoDtos
.Where(e => e.ParentName == parentName && !_permissionOptions.IsExclude(e.Name)).ToList();
foreach (var item in permissions)
{
var child = new PermissionTreeDto
{
Key = item.Name,
Title = item.DisplayName
};
child.Children.AddRange(RecursionMenu(permissionGrantInfoDtos, item.Name).Children);
tree.Children.Add(child);
}
return tree;
}
}
}

97
aspnet-core/modules/BasicManagement/src/Lion.AbpPro.BasicManagement.Application/Settings/SettingAppService.cs

@ -0,0 +1,97 @@
using Lion.AbpPro.BasicManagement.Settings.Dtos;
using Volo.Abp.SettingManagement;
namespace Lion.AbpPro.BasicManagement.Settings
{
[Authorize(policy: BasicManagementPermissions.SystemManagement.Setting)]
public class SettingAppService : BasicManagementAppService, ISettingAppService
{
private readonly ISettingDefinitionManager _settingDefinitionManager;
private readonly ISettingManager _settingManager;
private readonly IStringLocalizerFactory _factory;
public SettingAppService(
ISettingDefinitionManager settingDefinitionManager,
ISettingManager settingManager,
IStringLocalizerFactory factory)
{
_settingDefinitionManager = settingDefinitionManager;
_settingManager = settingManager;
_factory = factory;
}
public async Task<List<SettingOutput>> GetAsync()
{
var allSettings = _settingDefinitionManager.GetAll().ToList();
var settings = allSettings
.Where(e => e.Properties.ContainsKey(BasicManagementSettings.Group.Default)).ToList();
var settingOutput = settings
.GroupBy(e => e.Properties[BasicManagementSettings.Group.Default].ToString()).Select(s =>
new SettingOutput
{
Group = s.Key,
GroupDisplayName = _factory.CreateDefaultOrNull()[s.Key]
}).ToList();
foreach (var item in settingOutput)
{
var currentSettings = settings.Where(e => e.Properties.ContainsValue(item.Group));
foreach (var itemDefinition in currentSettings)
{
var value = await SettingProvider.GetOrNullAsync(itemDefinition.Name);
var type = itemDefinition.Properties
.FirstOrDefault(f => f.Key == BasicManagementSettings.ControlType.Default).Value
.ToString();
item.SettingItemOutput.Add(new SettingItemOutput(
itemDefinition.Name,
itemDefinition.DisplayName.Localize(_factory),
value,
type,
itemDefinition.Description.Localize(_factory)));
}
}
return await Task.FromResult(settingOutput);
}
public async Task UpdateAsync(UpdateSettingInput input)
{
foreach (var kv in input.Values)
{
// The key of the settingValues is in camel_Case, like "setting_Abp_Localization_DefaultLanguage",
// change it to "Abp.Localization.DefaultLanguage" form
if (!kv.Key.StartsWith(BasicManagementSettings.Prefix))
{
continue;
}
string name = kv.Key.RemovePreFix(BasicManagementSettings.Prefix);
var setting = _settingDefinitionManager.GetOrNull(name);
if (setting == null)
{
continue;
}
await SetSetting(setting, kv.Value);
}
}
private Task SetSetting(SettingDefinition setting, string value)
{
if (setting.Providers.Any(p => p == UserSettingValueProvider.ProviderName))
{
return _settingManager.SetForCurrentUserAsync(setting.Name, value);
}
if (setting.Providers.Any(p => p == TenantSettingValueProvider.ProviderName))
{
return _settingManager.SetForCurrentTenantAsync(setting.Name, value);
}
return _settingManager.SetGlobalAsync(setting.Name, value);
}
}
}

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

@ -0,0 +1,73 @@
namespace Lion.AbpPro.BasicManagement.Tenants
{
[Authorize]
public class VoloTenantAppService : BasicManagementAppService, IVoloTenantAppService
{
private readonly IAbpTenantAppService _abpTenantAppService;
private readonly ITenantAppService _tenantAppService;
public VoloTenantAppService(
IAbpTenantAppService abpTenantAppService,
ITenantAppService tenantAppService)
{
_abpTenantAppService = abpTenantAppService;
_tenantAppService = tenantAppService;
}
public async Task<FindTenantResultDto> FindTenantByNameAsync(FindTenantByNameInput input)
{
return await _abpTenantAppService.FindTenantByNameAsync(input.Name);
}
public Task<PagedResultDto<TenantDto>> ListAsync(PagingTenantInput input)
{
var request = new GetTenantsInput
{
Filter = input.Filter, SkipCount = input.SkipCount, MaxResultCount = input.PageSize
};
return _tenantAppService.GetListAsync(request);
}
[Authorize(policy:TenantManagementPermissions.Tenants.Create)]
public Task<TenantDto> CreateAsync(TenantCreateDto input)
{
return _tenantAppService.CreateAsync(input);
}
[Authorize(policy:TenantManagementPermissions.Tenants.Update)]
public Task<TenantDto> UpdateAsync(UpdateTenantInput input)
{
var request = new TenantUpdateDto()
{
Name = input.Name.Trim()
};
return _tenantAppService.UpdateAsync(input.Id, request);
}
[Authorize(policy:TenantManagementPermissions.Tenants.Delete)]
public Task DeleteAsync(IdInput input)
{
return _tenantAppService.DeleteAsync(input.Id);
}
[Authorize(TenantManagementPermissions.Tenants.ManageConnectionStrings)]
public Task<string> GetDefaultConnectionStringAsync(IdInput input)
{
return _tenantAppService.GetDefaultConnectionStringAsync(input.Id);
}
[Authorize(TenantManagementPermissions.Tenants.ManageConnectionStrings)]
public Task UpdateDefaultConnectionStringAsync(UpdateConnectionStringInput input)
{
return _tenantAppService.UpdateDefaultConnectionStringAsync(input.Id,
input.ConnectionString);
}
[Authorize(TenantManagementPermissions.Tenants.ManageConnectionStrings)]
public Task DeleteDefaultConnectionStringAsync(IdInput input)
{
return _tenantAppService.DeleteDefaultConnectionStringAsync(input.Id);
}
}
}

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

@ -0,0 +1,103 @@
using System.IdentityModel.Tokens.Jwt;
using System.Security.Claims;
using System.Text;
using IdentityModel;
using Lion.AbpPro.BasicManagement.ConfigurationOptions;
using Lion.AbpPro.BasicManagement.Users.Dtos;
using Microsoft.IdentityModel.Tokens;
using Volo.Abp.Security.Claims;
namespace Lion.AbpPro.BasicManagement.Users
{
public class AccountAppService : BasicManagementAppService, IAccountAppService
{
private readonly IdentityUserManager _userManager;
private readonly JwtOptions _jwtOptions;
private readonly Microsoft.AspNetCore.Identity.SignInManager<IdentityUser> _signInManager;
public AccountAppService(
IdentityUserManager userManager,
IOptionsSnapshot<JwtOptions> jwtOptions,
Microsoft.AspNetCore.Identity.SignInManager<IdentityUser> signInManager)
{
_userManager = userManager;
_jwtOptions = jwtOptions.Value;
_signInManager = signInManager;
}
public async Task<LoginOutput> LoginAsync(LoginInput input)
{
var result = await _signInManager.PasswordSignInAsync(input.Name, input.Password, false, true);
if (result.IsNotAllowed)
{
throw new BusinessException(BasicManagementErrorCodes.UserLockedOut);
}
if (!result.Succeeded)
{
throw new BusinessException(BasicManagementErrorCodes.UserOrPasswordMismatch);
}
var user = await _userManager.FindByNameAsync(input.Name);
return await BuildResult(user);
}
#region 私有方法
private async Task<LoginOutput> BuildResult(IdentityUser user)
{
if (!user.IsActive) throw new BusinessException(BasicManagementErrorCodes.UserLockedOut);
var roles = await _userManager.GetRolesAsync(user);
if (roles == null || roles.Count == 0) throw new AbpAuthorizationException();
var token = GenerateJwt(user.Id, user.UserName, user.Name, user.Email,
user.TenantId.ToString(), roles.ToList());
var loginOutput = ObjectMapper.Map<IdentityUser, LoginOutput>(user);
loginOutput.Token = token;
loginOutput.Roles = roles.ToList();
return loginOutput;
}
/// <summary>
/// 生成jwt token
/// </summary>
/// <returns></returns>
private string GenerateJwt(Guid userId, string userName, string name, string email,
string tenantId, List<string> roles)
{
var dateNow = DateTime.Now;
var expirationTime = dateNow + TimeSpan.FromHours(_jwtOptions.ExpirationTime);
var key = Encoding.ASCII.GetBytes(_jwtOptions.SecurityKey);
var claims = new List<Claim>
{
new Claim(JwtClaimTypes.Audience, _jwtOptions.Audience),
new Claim(JwtClaimTypes.Issuer, _jwtOptions.Issuer),
new Claim(AbpClaimTypes.UserId, userId.ToString()),
new Claim(AbpClaimTypes.Name, name),
new Claim(AbpClaimTypes.UserName, userName),
new Claim(AbpClaimTypes.Email, email),
new Claim(AbpClaimTypes.TenantId, tenantId)
};
foreach (var item in roles)
{
claims.Add(new Claim(JwtClaimTypes.Role, item));
}
var tokenDescriptor = new SecurityTokenDescriptor()
{
Subject = new ClaimsIdentity(claims),
Expires = expirationTime,
SigningCredentials = new SigningCredentials(new SymmetricSecurityKey(key),
SecurityAlgorithms.HmacSha256Signature)
};
var handler = new JwtSecurityTokenHandler();
var token = handler.CreateToken(tokenDescriptor);
return handler.WriteToken(token);
}
#endregion
}
}

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

@ -0,0 +1,154 @@
using Lion.AbpPro.BasicManagement.Users.Dtos;
using Magicodes.ExporterAndImporter.Excel;
using Magicodes.ExporterAndImporter.Excel.AspNetCore;
using Microsoft.AspNetCore.Identity;
using Microsoft.AspNetCore.Mvc;
using Volo.Abp.Account;
namespace Lion.AbpPro.BasicManagement.Users
{
[Authorize]
public class UserAppService : BasicManagementAppService, IUserAppService
{
private readonly IIdentityUserAppService _identityUserAppService;
private readonly IdentityUserManager _userManager;
private readonly IIdentityUserRepository _identityUserRepository;
private readonly IExcelExporter _excelExporter;
private readonly IOptions<IdentityOptions> _options;
public UserAppService(
IIdentityUserAppService identityUserAppService,
IdentityUserManager userManager,
IIdentityUserRepository userRepository,
IExcelExporter excelExporter,
IOptions<IdentityOptions> options)
{
_identityUserAppService = identityUserAppService;
_userManager = userManager;
_identityUserRepository = userRepository;
_excelExporter = excelExporter;
_options = options;
}
/// <summary>
/// 分页查询用户
/// </summary>
public async Task<PagedResultDto<IdentityUserDto>> ListAsync(PagingUserListInput input)
{
var request = new GetIdentityUsersInput
{
Filter = input.Filter?.Trim(),
MaxResultCount = input.PageSize,
SkipCount = input.SkipCount,
Sorting = " LastModificationTime desc"
};
var count = await _identityUserRepository.GetCountAsync(request.Filter);
var source = await _identityUserRepository
.GetListAsync(request.Sorting, request.MaxResultCount, request.SkipCount, request.Filter);
return new PagedResultDto<IdentityUserDto>(count,
base.ObjectMapper.Map<List<Volo.Abp.Identity.IdentityUser>, List<IdentityUserDto>>(source));
}
/// <summary>
/// 用户导出列表
/// </summary>
/// <returns></returns>
[Authorize(BasicManagementPermissions.SystemManagement.UserExport)]
public async Task<ActionResult> ExportAsync(PagingUserListInput input)
{
var request = new GetIdentityUsersInput
{
Filter = input.Filter?.Trim(),
MaxResultCount = input.PageSize,
SkipCount = input.SkipCount,
Sorting = " LastModificationTime desc"
};
var source = await _identityUserRepository
.GetListAsync(request.Sorting, request.MaxResultCount, request.SkipCount, request.Filter);
var result = ObjectMapper.Map<List<Volo.Abp.Identity.IdentityUser>, List<ExportIdentityUserOutput>>(source);
var bytes = await _excelExporter.ExportAsByteArray<ExportIdentityUserOutput>(result);
return new XlsxFileResult(bytes: bytes, fileDownloadName: $"用户导出列表{DateTime.Now:yyyyMMdd}");
}
/// <summary>
/// 新增用户
/// </summary>
/// <param name="input"></param>
/// <returns></returns>
[Authorize(IdentityPermissions.Users.Create)]
public async Task<IdentityUserDto> CreateAsync(IdentityUserCreateDto input)
{
// abp 5.0 之后新增字段,是否运行用户登录,默认设置为true
input.IsActive = true;
return await _identityUserAppService.CreateAsync(input);
}
/// <summary>
/// 更新用户
/// </summary>
/// <param name="input"></param>
/// <returns></returns>
[Authorize(IdentityPermissions.Users.Update)]
public virtual async Task<IdentityUserDto> UpdateAsync(UpdateUserInput input)
{
input.UserInfo.IsActive = true;
return await _identityUserAppService.UpdateAsync(input.UserId, input.UserInfo);
}
/// <summary>
/// 删除用户
/// </summary>
[Authorize(IdentityPermissions.Users.Delete)]
public virtual async Task DeleteAsync(IdInput input)
{
await _identityUserAppService.DeleteAsync(input.Id);
}
/// <summary>
/// 获取用户角色信息
/// </summary>
/// <returns></returns>
public async Task<ListResultDto<IdentityRoleDto>> GetRoleByUserId(IdInput input)
{
return await _identityUserAppService.GetRolesAsync(input.Id);
}
/// <summary>
/// 修改密码
/// </summary>
/// <param name="input"></param>
/// <returns></returns>
public async Task<bool> ChangePasswordAsync(ChangePasswordInput input)
{
await _options.SetAsync();
var identityUser = await _userManager.GetByIdAsync(base.CurrentUser.GetId());
IdentityResult result;
if (identityUser.PasswordHash == null)
{
result = await _userManager.AddPasswordAsync(identityUser, input.NewPassword);
}
else
{
result = await _userManager.ChangePasswordAsync(identityUser, input.CurrentPassword, input.NewPassword);
}
return !result.Succeeded
? throw new UserFriendlyException(result?.Errors?.FirstOrDefault()?.Description)
: result.Succeeded;
}
/// <summary>
/// 锁定用户
/// </summary>
/// <param name="input"></param>
/// <returns></returns>
[Authorize(BasicManagementPermissions.SystemManagement.UserEnable)]
public async Task LockAsync(LockUserInput input)
{
var identityUser = await _userManager.GetByIdAsync(input.UserId);
identityUser.SetIsActive(input.Locked);
await _userManager.UpdateAsync(identityUser);
}
}
}

9
aspnet-core/modules/BasicManagement/src/Lion.AbpPro.BasicManagement.Domain.Shared/BasicManagementConsts.cs

@ -0,0 +1,9 @@
namespace Lion.AbpPro.BasicManagement;
public static class BasicManagementConsts
{
/// <summary>名称空间</summary>
public const string NameSpace = "Lion.AbpPro.BasicManagement";
/// <summary>默认语言</summary>
public const string DefaultCultureName = "zh-Hans";
}

39
aspnet-core/modules/BasicManagement/src/Lion.AbpPro.BasicManagement.Domain.Shared/BasicManagementDomainSharedModule.cs

@ -0,0 +1,39 @@
namespace Lion.AbpPro.BasicManagement;
[DependsOn(
typeof(AbpAuditLoggingDomainSharedModule),
typeof(AbpBackgroundJobsDomainSharedModule),
typeof(AbpFeatureManagementDomainSharedModule),
typeof(AbpIdentityDomainSharedModule),
typeof(AbpPermissionManagementDomainSharedModule),
typeof(AbpSettingManagementDomainSharedModule),
typeof(AbpTenantManagementDomainSharedModule)
)]
public class BasicManagementDomainSharedModule : AbpModule
{
public override void ConfigureServices(ServiceConfigurationContext context)
{
Configure<AbpVirtualFileSystemOptions>(options =>
{
options.FileSets.AddEmbedded<BasicManagementDomainSharedModule>(BasicManagementConsts.NameSpace);
});
Configure<AbpLocalizationOptions>(options =>
{
options.Resources
.Add<BasicManagementResource>(BasicManagementConsts.DefaultCultureName)
.AddVirtualJson("/Localization/AbpPro")
.AddBaseTypes(typeof(IdentityResource))
.AddBaseTypes(typeof(AbpValidationResource))
.AddBaseTypes(typeof(AbpLocalizationResource))
.AddBaseTypes(typeof(AbpSettingManagementResource));
options.DefaultResourceType = typeof(BasicManagementResource);
});
Configure<AbpExceptionLocalizationOptions>(options =>
{
options.MapCodeNamespace(BasicManagementConsts.NameSpace, typeof(BasicManagementResource));
});
}
}

8
aspnet-core/modules/BasicManagement/src/Lion.AbpPro.BasicManagement.Domain.Shared/BasicManagementErrorCodes.cs

@ -0,0 +1,8 @@
namespace Lion.AbpPro.BasicManagement;
public static class BasicManagementErrorCodes
{
public const string OrganizationUnitNotExist =BasicManagementConsts.NameSpace+ ":100001";
public const string UserLockedOut =BasicManagementConsts.NameSpace+ ":100002";
public const string UserOrPasswordMismatch =BasicManagementConsts.NameSpace+ ":100003";
}

3
aspnet-core/modules/BasicManagement/src/Lion.AbpPro.BasicManagement.Domain.Shared/FodyWeavers.xml

@ -0,0 +1,3 @@
<Weavers xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="FodyWeavers.xsd">
<ConfigureAwait ContinueOnCapturedContext="false" />
</Weavers>

30
aspnet-core/modules/BasicManagement/src/Lion.AbpPro.BasicManagement.Domain.Shared/FodyWeavers.xsd

@ -0,0 +1,30 @@
<?xml version="1.0" encoding="utf-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
<!-- This file was generated by Fody. Manual changes to this file will be lost when your project is rebuilt. -->
<xs:element name="Weavers">
<xs:complexType>
<xs:all>
<xs:element name="ConfigureAwait" minOccurs="0" maxOccurs="1">
<xs:complexType>
<xs:attribute name="ContinueOnCapturedContext" type="xs:boolean" />
</xs:complexType>
</xs:element>
</xs:all>
<xs:attribute name="VerifyAssembly" type="xs:boolean">
<xs:annotation>
<xs:documentation>'true' to run assembly verification (PEVerify) on the target assembly after all weavers have been executed.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="VerifyIgnoreCodes" type="xs:string">
<xs:annotation>
<xs:documentation>A comma-separated list of error codes that can be safely ignored in assembly verification.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="GenerateXsd" type="xs:boolean">
<xs:annotation>
<xs:documentation>'false' to turn off automatic generation of the XML Schema file.</xs:documentation>
</xs:annotation>
</xs:attribute>
</xs:complexType>
</xs:element>
</xs:schema>

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

@ -0,0 +1,19 @@
// Global using directives
global using Lion.AbpPro.BasicManagement.Localization;
global using Volo.Abp.AuditLogging;
global using Volo.Abp.BackgroundJobs;
global using Volo.Abp.FeatureManagement;
global using Volo.Abp.Identity;
global using Volo.Abp.Identity.Localization;
global using Volo.Abp.Localization;
global using Volo.Abp.Localization.ExceptionHandling;
global using Volo.Abp.Localization.Resources.AbpLocalization;
global using Volo.Abp.Modularity;
global using Volo.Abp.PermissionManagement;
global using Volo.Abp.SettingManagement;
global using Volo.Abp.SettingManagement.Localization;
global using Volo.Abp.TenantManagement;
global using Volo.Abp.Validation;
global using Volo.Abp.Validation.Localization;
global using Volo.Abp.VirtualFileSystem;

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

@ -0,0 +1,27 @@
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>net6.0</TargetFramework>
<RootNamespace>Lion.AbpPro.BasicManagement</RootNamespace>
<GenerateEmbeddedFilesManifest>true</GenerateEmbeddedFilesManifest>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="Microsoft.Extensions.FileProviders.Embedded" />
<PackageReference Include="Volo.Abp.Validation" />
<PackageReference Include="Volo.Abp.Identity.Domain.Shared" />
<PackageReference Include="Volo.Abp.BackgroundJobs.Domain.Shared" />
<PackageReference Include="Volo.Abp.AuditLogging.Domain.Shared" />
<PackageReference Include="Volo.Abp.TenantManagement.Domain.Shared" />
<PackageReference Include="Volo.Abp.FeatureManagement.Domain.Shared" />
<PackageReference Include="Volo.Abp.PermissionManagement.Domain.Shared" />
<PackageReference Include="Volo.Abp.SettingManagement.Domain.Shared" />
</ItemGroup>
<ItemGroup>
<EmbeddedResource Include="Localization\BasicManagement\*.json" />
<Content Remove="Localization\BasicManagement\*.json" />
</ItemGroup>
</Project>

7
aspnet-core/modules/BasicManagement/src/Lion.AbpPro.BasicManagement.Domain.Shared/Localization/BasicManagement/ar.json

@ -0,0 +1,7 @@
{
"culture": "ar",
"texts": {
"MyAccount": "إدارة ملفى",
"SamplePageMessage": "صفحة نموذجية للوحدة النمطية BasicManagement"
}
}

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

Loading…
Cancel
Save