Browse Source

upgrade abp framework from 4.3.0 to 4.4.0

pull/289/head
cKey 4 years ago
parent
commit
794033575e
  1. 347
      aspnet-core/LINGYUN.MicroService.IdentityServer.sln
  2. 34
      aspnet-core/common.props
  3. 2
      aspnet-core/modules/account/LINGYUN.Abp.Account.Application.Contracts/LINGYUN.Abp.Account.Application.Contracts.csproj
  4. 4
      aspnet-core/modules/account/LINGYUN.Abp.Account.Application/LINGYUN.Abp.Account.Application.csproj
  5. 6
      aspnet-core/modules/account/LINGYUN.Abp.Account.Domain.Shared/LINGYUN.Abp.Account.Domain.Shared.csproj
  6. 6
      aspnet-core/modules/account/LINGYUN.Abp.Account.Domain/LINGYUN.Abp.Account.Domain.csproj
  7. 2
      aspnet-core/modules/account/LINGYUN.Abp.Account.HttpApi/LINGYUN.Abp.Account.HttpApi.csproj
  8. 76
      aspnet-core/modules/account/LINGYUN.Abp.Account.Web/LINGYUN.Abp.Account.Web.csproj
  9. 4
      aspnet-core/modules/apigateway/LINGYUN.ApiGateway.Application.Contracts/LINGYUN.ApiGateway.Application.Contracts.csproj
  10. 34
      aspnet-core/modules/apigateway/LINGYUN.ApiGateway.Application.Contracts/LINGYUN/ApiGateway/Ocelot/Dto/ReRouteUpdateDto.cs
  11. 4
      aspnet-core/modules/apigateway/LINGYUN.ApiGateway.Application/LINGYUN.ApiGateway.Application.csproj
  12. 2
      aspnet-core/modules/apigateway/LINGYUN.ApiGateway.Domain.Shared/LINGYUN.ApiGateway.Domain.Shared.csproj
  13. 4
      aspnet-core/modules/apigateway/LINGYUN.ApiGateway.Domain/LINGYUN.ApiGateway.Domain.csproj
  14. 2
      aspnet-core/modules/apigateway/LINGYUN.ApiGateway.EntityFrameworkCore/LINGYUN.ApiGateway.EntityFrameworkCore.csproj
  15. 2
      aspnet-core/modules/apigateway/LINGYUN.ApiGateway.HttpApi.Client/LINGYUN.ApiGateway.HttpApi.Client.csproj
  16. 2
      aspnet-core/modules/apigateway/LINGYUN.ApiGateway.HttpApi/LINGYUN.ApiGateway.HttpApi.csproj
  17. 10
      aspnet-core/modules/auditing/LINGYUN.Abp.Auditing.Application.Contracts/LINGYUN.Abp.Auditing.Application.Contracts.csproj
  18. 43
      aspnet-core/modules/auditing/LINGYUN.Abp.Auditing.Application.Contracts/LINGYUN/Abp/Auditing/Logging/AuditLogGetByPagedDto.cs
  19. 8
      aspnet-core/modules/auditing/LINGYUN.Abp.Auditing.Application/LINGYUN.Abp.Auditing.Application.csproj
  20. 124
      aspnet-core/modules/auditing/LINGYUN.Abp.Auditing.Application/LINGYUN/Abp/Auditing/Logging/AuditLogAppService.cs
  21. 2
      aspnet-core/modules/auditing/LINGYUN.Abp.Auditing.HttpApi/LINGYUN.Abp.Auditing.HttpApi.csproj
  22. 60
      aspnet-core/modules/cloud-aliyun/LINGYUN.Abp.Aliyun.SettingManagement/LINGYUN.Abp.Aliyun.SettingManagement.csproj
  23. 8
      aspnet-core/modules/cloud-aliyun/LINGYUN.Abp.Aliyun/LINGYUN.Abp.Aliyun.csproj
  24. 6
      aspnet-core/modules/cloud-tencent/LINGYUN.Abp.Tencent/LINGYUN.Abp.Tencent.csproj
  25. 2
      aspnet-core/modules/common/LINGYUN.Abp.Aliyun.Authorization/LINGYUN.Abp.Aliyun.Authorization.csproj
  26. 28
      aspnet-core/modules/common/LINGYUN.Abp.AspNetCore.HttpOverrides/LINGYUN.Abp.AspNetCore.HttpOverrides.csproj
  27. 34
      aspnet-core/modules/common/LINGYUN.Abp.AspNetCore.Mvc.Client/LINGYUN.Abp.AspNetCore.Mvc.Client.csproj
  28. 48
      aspnet-core/modules/common/LINGYUN.Abp.AspNetCore.Mvc.Validation/LINGYUN.Abp.AspNetCore.Mvc.Validation.csproj
  29. 2
      aspnet-core/modules/common/LINGYUN.Abp.AspNetCore.SignalR.Protocol.Json/LINGYUN.Abp.AspNetCore.SignalR.Protocol.Json.csproj
  30. 2
      aspnet-core/modules/common/LINGYUN.Abp.AspNetCore.SignalR/LINGYUN.Abp.AspNetCore.SignalR.JwtToken.csproj
  31. 38
      aspnet-core/modules/common/LINGYUN.Abp.BackgroundJobs.Hangfire/LINGYUN.Abp.BackgroundJobs.Hangfire.csproj
  32. 30
      aspnet-core/modules/common/LINGYUN.Abp.BackgroundWorkers.Hangfire/LINGYUN.Abp.BackgroundWorkers.Hangfire.csproj
  33. 6
      aspnet-core/modules/common/LINGYUN.Abp.BlobStoring.Aliyun/LINGYUN.Abp.BlobStoring.Aliyun.csproj
  34. 30
      aspnet-core/modules/common/LINGYUN.Abp.Core/LINGYUN.Abp.Core.csproj
  35. 2
      aspnet-core/modules/common/LINGYUN.Abp.DistributedLock.Redis/LINGYUN.Abp.DistributedLock.Redis.csproj
  36. 2
      aspnet-core/modules/common/LINGYUN.Abp.Domain.Entities.Events/LINGYUN.Abp.Domain.Entities.Events.csproj
  37. 234
      aspnet-core/modules/common/LINGYUN.Abp.EventBus.CAP/DotNetCore/CAP/Processor/AbpCapProcessingServer.cs
  38. 40
      aspnet-core/modules/common/LINGYUN.Abp.EventBus.CAP/LINGYUN.Abp.EventBus.CAP.csproj
  39. 911
      aspnet-core/modules/common/LINGYUN.Abp.EventBus.CAP/LINGYUN.Abp.EventBus.CAP.xml
  40. 490
      aspnet-core/modules/common/LINGYUN.Abp.EventBus.CAP/LINGYUN/Abp/EventBus/CAP/CAPDistributedEventBus.cs
  41. 2
      aspnet-core/modules/common/LINGYUN.Abp.ExceptionHandling.Emailing/LINGYUN.Abp.ExceptionHandling.Emailing.csproj
  42. 2
      aspnet-core/modules/common/LINGYUN.Abp.ExceptionHandling.Notifications/LINGYUN.Abp.ExceptionHandling.Notifications.csproj
  43. 2
      aspnet-core/modules/common/LINGYUN.Abp.ExceptionHandling/LINGYUN.Abp.ExceptionHandling.csproj
  44. 30
      aspnet-core/modules/common/LINGYUN.Abp.Features.LimitValidation.Redis.Client/LINGYUN.Abp.Features.LimitValidation.Redis.Client.csproj
  45. 2
      aspnet-core/modules/common/LINGYUN.Abp.Features.LimitValidation.Redis/LINGYUN.Abp.Features.LimitValidation.Redis.csproj
  46. 2
      aspnet-core/modules/common/LINGYUN.Abp.Features.LimitValidation/LINGYUN.Abp.Features.LimitValidation.csproj
  47. 50
      aspnet-core/modules/common/LINGYUN.Abp.Hangfire.Dashboard/LINGYUN.Abp.Hangfire.Dashboard.csproj
  48. 30
      aspnet-core/modules/common/LINGYUN.Abp.Hangfire.MySqlStorage/LINGYUN.Abp.Hangfire.Storage.MySql.csproj
  49. 4
      aspnet-core/modules/common/LINGYUN.Abp.Hangfire.Storage.SqlServer/LINGYUN.Abp.Hangfire.Storage.SqlServer.csproj
  50. 4
      aspnet-core/modules/common/LINGYUN.Abp.IM.SignalR/LINGYUN.Abp.IM.SignalR.csproj
  51. 8
      aspnet-core/modules/common/LINGYUN.Abp.IM/LINGYUN.Abp.IM.csproj
  52. 4
      aspnet-core/modules/common/LINGYUN.Abp.IdentityModel/LINGYUN.Abp.IdentityModel.csproj
  53. 30
      aspnet-core/modules/common/LINGYUN.Abp.Localization.Dynamic/LINGYUN.Abp.Localization.Dynamic.csproj
  54. 58
      aspnet-core/modules/common/LINGYUN.Abp.Location.Amap/LINGYUN.Abp.Location.Amap.csproj
  55. 6
      aspnet-core/modules/common/LINGYUN.Abp.Location.Baidu/LINGYUN.Abp.Location.Baidu.csproj
  56. 6
      aspnet-core/modules/common/LINGYUN.Abp.Location.Tencent/LINGYUN.Abp.Location.Tencent.csproj
  57. 2
      aspnet-core/modules/common/LINGYUN.Abp.Location/LINGYUN.Abp.Location.csproj
  58. 4
      aspnet-core/modules/common/LINGYUN.Abp.Notifications.SignalR/LINGYUN.Abp.Notifications.SignalR.csproj
  59. 2
      aspnet-core/modules/common/LINGYUN.Abp.Notifications.Sms/LINGYUN.Abp.Notifications.Sms.csproj
  60. 28
      aspnet-core/modules/common/LINGYUN.Abp.Notifications.Workers/LINGYUN.Abp.Notifications.Workers.csproj
  61. 42
      aspnet-core/modules/common/LINGYUN.Abp.Notifications/LINGYUN.Abp.Notifications.csproj
  62. 2
      aspnet-core/modules/common/LINGYUN.Abp.RealTime.SignalR/LINGYUN.Abp.RealTime.SignalR.csproj
  63. 4
      aspnet-core/modules/common/LINGYUN.Abp.RealTime/LINGYUN.Abp.RealTime.csproj
  64. 2
      aspnet-core/modules/common/LINGYUN.Abp.Settings/LINGYUN.Abp.Settings.csproj
  65. 58
      aspnet-core/modules/common/LINGYUN.Abp.Sms.Aliyun/LINGYUN.Abp.Sms.Aliyun.csproj
  66. 24
      aspnet-core/modules/console/LINGYUN.Abp.Encryption.Console/LINGYUN.Abp.Encryption.Console.csproj
  67. 30
      aspnet-core/modules/dapr/LINGYUN.Abp.Dapr.Actors.AspNetCore/LINGYUN.Abp.Dapr.Actors.AspNetCore.csproj
  68. 28
      aspnet-core/modules/dapr/LINGYUN.Abp.Dapr.Actors/LINGYUN.Abp.Dapr.Actors.csproj
  69. 26
      aspnet-core/modules/dapr/LINGYUN.Abp.Dapr.Client/LINGYUN.Abp.Dapr.Client.csproj
  70. 4
      aspnet-core/modules/features/LINGYUN.Abp.FeatureManagement.Client/LINGYUN.Abp.FeatureManagement.Client.csproj
  71. 2
      aspnet-core/modules/features/LINGYUN.Abp.Features.Client/LINGYUN.Abp.Features.Client.csproj
  72. 2
      aspnet-core/modules/identity/LINGYUN.Abp.Identity.Application.Contracts/LINGYUN.Abp.Identity.Application.Contracts.csproj
  73. 30
      aspnet-core/modules/identity/LINGYUN.Abp.Identity.Application.Contracts/LINGYUN/Abp/Identity/AbpIdentityApplicationContractsModule.cs
  74. 111
      aspnet-core/modules/identity/LINGYUN.Abp.Identity.Application.Contracts/LINGYUN/Abp/Identity/IIdentityUserAppService.cs
  75. 2
      aspnet-core/modules/identity/LINGYUN.Abp.Identity.Application/LINGYUN.Abp.Identity.Application.csproj
  76. 323
      aspnet-core/modules/identity/LINGYUN.Abp.Identity.Application/LINGYUN/Abp/Identity/IdentityUserAppService.cs
  77. 2
      aspnet-core/modules/identity/LINGYUN.Abp.Identity.Domain.Shared/LINGYUN.Abp.Identity.Domain.Shared.csproj
  78. 2
      aspnet-core/modules/identity/LINGYUN.Abp.Identity.Domain/LINGYUN.Abp.Identity.Domain.csproj
  79. 2
      aspnet-core/modules/identity/LINGYUN.Abp.Identity.EntityFrameworkCore/LINGYUN.Abp.Identity.EntityFrameworkCore.csproj
  80. 2
      aspnet-core/modules/identity/LINGYUN.Abp.Identity.HttpApi.Client/LINGYUN.Abp.Identity.HttpApi.Client.csproj
  81. 2
      aspnet-core/modules/identity/LINGYUN.Abp.Identity.HttpApi/LINGYUN.Abp.Identity.HttpApi.csproj
  82. 204
      aspnet-core/modules/identity/LINGYUN.Abp.Identity.HttpApi/LINGYUN/Abp/Identity/IdentityUserController.cs
  83. 4
      aspnet-core/modules/identity/LINGYUN.Abp.PermissionManagement.Domain.Identity/LINGYUN.Abp.PermissionManagement.Domain.Identity.csproj
  84. 181
      aspnet-core/modules/identity/LINGYUN.Abp.PermissionManagement.Domain.Identity/LINGYUN/Abp/PermissionManagement/Identity/IdentityPermissionManager.cs
  85. 6
      aspnet-core/modules/identityServer/LINGYUN.Abp.IdentityServer.Application.Contracts/LINGYUN.Abp.IdentityServer.Application.Contracts.csproj
  86. 38
      aspnet-core/modules/identityServer/LINGYUN.Abp.IdentityServer.Application/LINGYUN.Abp.IdentityServer.Application.csproj
  87. 2
      aspnet-core/modules/identityServer/LINGYUN.Abp.IdentityServer.Domain/LINGYUN.Abp.IdentityServer.Domain.csproj
  88. 2
      aspnet-core/modules/identityServer/LINGYUN.Abp.IdentityServer.EntityFrameworkCore/LINGYUN.Abp.IdentityServer.EntityFrameworkCore.csproj
  89. 2
      aspnet-core/modules/identityServer/LINGYUN.Abp.IdentityServer.HttpApi/LINGYUN.Abp.IdentityServer.HttpApi.csproj
  90. 2
      aspnet-core/modules/identityServer/LINGYUN.Abp.IdentityServer.SmsValidator/LINGYUN.Abp.IdentityServer.SmsValidator.csproj
  91. 2
      aspnet-core/modules/identityServer/LINGYUN.Abp.IdentityServer.WeChat/LINGYUN.Abp.IdentityServer.WeChat.csproj
  92. 6
      aspnet-core/modules/identityServer/LINGYUN.Abp.IdentityServer.WeChatValidator/LINGYUN.Abp.IdentityServer.WeChatValidator.csproj
  93. 30
      aspnet-core/modules/localization/LINGYUN.Abp.Localization.Json/LINGYUN.Abp.Localization.Json.csproj
  94. 30
      aspnet-core/modules/localization/LINGYUN.Abp.Localization.Xml/LINGYUN.Abp.Localization.Xml.csproj
  95. 38
      aspnet-core/modules/lt/LINGYUN.Abp.LocalizationManagement.Application.Contracts/LINGYUN.Abp.LocalizationManagement.Application.Contracts.csproj
  96. 38
      aspnet-core/modules/lt/LINGYUN.Abp.LocalizationManagement.Application/LINGYUN.Abp.LocalizationManagement.Application.csproj
  97. 50
      aspnet-core/modules/lt/LINGYUN.Abp.LocalizationManagement.Domain.Shared/LINGYUN.Abp.LocalizationManagement.Domain.Shared.csproj
  98. 40
      aspnet-core/modules/lt/LINGYUN.Abp.LocalizationManagement.Domain/LINGYUN.Abp.LocalizationManagement.Domain.csproj
  99. 36
      aspnet-core/modules/lt/LINGYUN.Abp.LocalizationManagement.EntityFrameworkCore/LINGYUN.Abp.LocalizationManagement.EntityFrameworkCore.csproj
  100. 36
      aspnet-core/modules/lt/LINGYUN.Abp.LocalizationManagement.HttpApi/LINGYUN.Abp.LocalizationManagement.HttpApi.csproj

347
aspnet-core/LINGYUN.MicroService.IdentityServer.sln

@ -1,169 +1,178 @@

Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio Version 16
VisualStudioVersion = 16.0.30011.22
MinimumVisualStudioVersion = 10.0.40219.1
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "modules", "modules", "{7C727110-59CA-495B-8143-C5DDEDE41289}"
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "services", "services", "{DDCA574F-911B-4547-BA21-12CCE1022D95}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "AuthServer.Host", "services\account\AuthServer.Host\AuthServer.Host.csproj", "{BF8073FF-6403-4ED6-A3CD-74F240DC8044}"
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "identity-server", "identity-server", "{98887A8F-7040-4FA1-842F-A4C77A61ED09}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.Abp.IdentityServer.SmsValidator", "modules\identityServer\LINGYUN.Abp.IdentityServer.SmsValidator\LINGYUN.Abp.IdentityServer.SmsValidator.csproj", "{9EA06629-DBAC-4369-9850-B7415D0470B0}"
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "identity", "identity", "{70B8D735-1E89-4163-8EDB-56A74E374CF4}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.Abp.PermissionManagement.Domain.Identity", "modules\identity\LINGYUN.Abp.PermissionManagement.Domain.Identity\LINGYUN.Abp.PermissionManagement.Domain.Identity.csproj", "{F87B2BA3-40BC-4CB8-B53E-793C860F285D}"
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "wechat", "wechat", "{AF8AECC8-0F42-4FC5-B3C0-00987BA8279F}"
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "permission-management", "permission-management", "{2FEA83BA-2E6D-40AF-8781-12CFD042457F}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.Abp.PermissionManagement.Domain", "modules\permissions-management\LINGYUN.Abp.PermissionManagement.Domain\LINGYUN.Abp.PermissionManagement.Domain.csproj", "{A0A11373-635B-4343-8EE7-1DFC3611F05A}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.Abp.WeChat", "modules\wechat\LINGYUN.Abp.WeChat\LINGYUN.Abp.WeChat.csproj", "{6F13C138-1D71-48F5-A404-94047242E98F}"
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "common", "common", "{572DBB40-4637-4C01-8491-8686F7E22B45}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.Abp.EventBus.CAP", "modules\common\LINGYUN.Abp.EventBus.CAP\LINGYUN.Abp.EventBus.CAP.csproj", "{843012AC-78C3-4A25-904C-353ED26C8524}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.Abp.MultiTenancy.DbFinder", "modules\tenants\LINGYUN.Abp.MultiTenancy.DbFinder\LINGYUN.Abp.MultiTenancy.DbFinder.csproj", "{FEEA68C2-D545-4AD6-81C7-71D0E2747CC3}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.Abp.MultiTenancy", "modules\tenants\LINGYUN.Abp.MultiTenancy\LINGYUN.Abp.MultiTenancy.csproj", "{D879BE04-BEFC-423B-868C-E8BA10605E16}"
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "tenants", "tenants", "{6CB9D0F3-8D50-49B5-98E2-D777717E51E8}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.Abp.Aliyun.Authorization", "modules\common\LINGYUN.Abp.Aliyun.Authorization\LINGYUN.Abp.Aliyun.Authorization.csproj", "{C675C7DB-5825-4F64-BF76-8A4452A448D2}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.Abp.Sms.Aliyun", "modules\common\LINGYUN.Abp.Sms.Aliyun\LINGYUN.Abp.Sms.Aliyun.csproj", "{A51E2EB5-EEC0-4FB0-99B9-A0FBE0D8B0EB}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.Abp.Identity.Domain.Shared", "modules\identity\LINGYUN.Abp.Identity.Domain.Shared\LINGYUN.Abp.Identity.Domain.Shared.csproj", "{E5E51981-864A-4B54-8E50-B5AE8B81245C}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.Abp.Identity.Domain", "modules\identity\LINGYUN.Abp.Identity.Domain\LINGYUN.Abp.Identity.Domain.csproj", "{6514E12E-D97C-4311-8301-F270D4E04A9F}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.Abp.Identity.EntityFrameworkCore", "modules\identity\LINGYUN.Abp.Identity.EntityFrameworkCore\LINGYUN.Abp.Identity.EntityFrameworkCore.csproj", "{77F424CB-75F2-4D7F-8B52-BBE2E09CB423}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.Abp.IdentityServer.EntityFrameworkCore", "modules\identityServer\LINGYUN.Abp.IdentityServer.EntityFrameworkCore\LINGYUN.Abp.IdentityServer.EntityFrameworkCore.csproj", "{644FAB8F-ED83-4539-AF43-8F8FE61EF778}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.Abp.WeChat.MiniProgram", "modules\wechat\LINGYUN.Abp.WeChat.MiniProgram\LINGYUN.Abp.WeChat.MiniProgram.csproj", "{648D7B5D-8B78-4F90-BDE0-4AC50C902CC3}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.Abp.WeChat.Official", "modules\wechat\LINGYUN.Abp.WeChat.Official\LINGYUN.Abp.WeChat.Official.csproj", "{F762D1BB-66FB-421A-A917-D80B7DCC0DC0}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.Abp.IdentityServer.WeChat", "modules\identityServer\LINGYUN.Abp.IdentityServer.WeChat\LINGYUN.Abp.IdentityServer.WeChat.csproj", "{D63C0CA8-554D-43F2-8DB4-8B464E4C1CDA}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.Abp.IdentityServer.Domain", "modules\identityServer\LINGYUN.Abp.IdentityServer.Domain\LINGYUN.Abp.IdentityServer.Domain.csproj", "{79CAF2CA-E9E1-48A5-A21F-3786383C12E0}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
Release|Any CPU = Release|Any CPU
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
{BF8073FF-6403-4ED6-A3CD-74F240DC8044}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{BF8073FF-6403-4ED6-A3CD-74F240DC8044}.Debug|Any CPU.Build.0 = Debug|Any CPU
{BF8073FF-6403-4ED6-A3CD-74F240DC8044}.Release|Any CPU.ActiveCfg = Release|Any CPU
{BF8073FF-6403-4ED6-A3CD-74F240DC8044}.Release|Any CPU.Build.0 = Release|Any CPU
{9EA06629-DBAC-4369-9850-B7415D0470B0}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{9EA06629-DBAC-4369-9850-B7415D0470B0}.Debug|Any CPU.Build.0 = Debug|Any CPU
{9EA06629-DBAC-4369-9850-B7415D0470B0}.Release|Any CPU.ActiveCfg = Release|Any CPU
{9EA06629-DBAC-4369-9850-B7415D0470B0}.Release|Any CPU.Build.0 = Release|Any CPU
{F87B2BA3-40BC-4CB8-B53E-793C860F285D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{F87B2BA3-40BC-4CB8-B53E-793C860F285D}.Debug|Any CPU.Build.0 = Debug|Any CPU
{F87B2BA3-40BC-4CB8-B53E-793C860F285D}.Release|Any CPU.ActiveCfg = Release|Any CPU
{F87B2BA3-40BC-4CB8-B53E-793C860F285D}.Release|Any CPU.Build.0 = Release|Any CPU
{A0A11373-635B-4343-8EE7-1DFC3611F05A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{A0A11373-635B-4343-8EE7-1DFC3611F05A}.Debug|Any CPU.Build.0 = Debug|Any CPU
{A0A11373-635B-4343-8EE7-1DFC3611F05A}.Release|Any CPU.ActiveCfg = Release|Any CPU
{A0A11373-635B-4343-8EE7-1DFC3611F05A}.Release|Any CPU.Build.0 = Release|Any CPU
{6F13C138-1D71-48F5-A404-94047242E98F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{6F13C138-1D71-48F5-A404-94047242E98F}.Debug|Any CPU.Build.0 = Debug|Any CPU
{6F13C138-1D71-48F5-A404-94047242E98F}.Release|Any CPU.ActiveCfg = Release|Any CPU
{6F13C138-1D71-48F5-A404-94047242E98F}.Release|Any CPU.Build.0 = Release|Any CPU
{843012AC-78C3-4A25-904C-353ED26C8524}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{843012AC-78C3-4A25-904C-353ED26C8524}.Debug|Any CPU.Build.0 = Debug|Any CPU
{843012AC-78C3-4A25-904C-353ED26C8524}.Release|Any CPU.ActiveCfg = Release|Any CPU
{843012AC-78C3-4A25-904C-353ED26C8524}.Release|Any CPU.Build.0 = Release|Any CPU
{FEEA68C2-D545-4AD6-81C7-71D0E2747CC3}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{FEEA68C2-D545-4AD6-81C7-71D0E2747CC3}.Debug|Any CPU.Build.0 = Debug|Any CPU
{FEEA68C2-D545-4AD6-81C7-71D0E2747CC3}.Release|Any CPU.ActiveCfg = Release|Any CPU
{FEEA68C2-D545-4AD6-81C7-71D0E2747CC3}.Release|Any CPU.Build.0 = Release|Any CPU
{D879BE04-BEFC-423B-868C-E8BA10605E16}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{D879BE04-BEFC-423B-868C-E8BA10605E16}.Debug|Any CPU.Build.0 = Debug|Any CPU
{D879BE04-BEFC-423B-868C-E8BA10605E16}.Release|Any CPU.ActiveCfg = Release|Any CPU
{D879BE04-BEFC-423B-868C-E8BA10605E16}.Release|Any CPU.Build.0 = Release|Any CPU
{C675C7DB-5825-4F64-BF76-8A4452A448D2}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{C675C7DB-5825-4F64-BF76-8A4452A448D2}.Debug|Any CPU.Build.0 = Debug|Any CPU
{C675C7DB-5825-4F64-BF76-8A4452A448D2}.Release|Any CPU.ActiveCfg = Release|Any CPU
{C675C7DB-5825-4F64-BF76-8A4452A448D2}.Release|Any CPU.Build.0 = Release|Any CPU
{A51E2EB5-EEC0-4FB0-99B9-A0FBE0D8B0EB}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{A51E2EB5-EEC0-4FB0-99B9-A0FBE0D8B0EB}.Debug|Any CPU.Build.0 = Debug|Any CPU
{A51E2EB5-EEC0-4FB0-99B9-A0FBE0D8B0EB}.Release|Any CPU.ActiveCfg = Release|Any CPU
{A51E2EB5-EEC0-4FB0-99B9-A0FBE0D8B0EB}.Release|Any CPU.Build.0 = Release|Any CPU
{E5E51981-864A-4B54-8E50-B5AE8B81245C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{E5E51981-864A-4B54-8E50-B5AE8B81245C}.Debug|Any CPU.Build.0 = Debug|Any CPU
{E5E51981-864A-4B54-8E50-B5AE8B81245C}.Release|Any CPU.ActiveCfg = Release|Any CPU
{E5E51981-864A-4B54-8E50-B5AE8B81245C}.Release|Any CPU.Build.0 = Release|Any CPU
{6514E12E-D97C-4311-8301-F270D4E04A9F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{6514E12E-D97C-4311-8301-F270D4E04A9F}.Debug|Any CPU.Build.0 = Debug|Any CPU
{6514E12E-D97C-4311-8301-F270D4E04A9F}.Release|Any CPU.ActiveCfg = Release|Any CPU
{6514E12E-D97C-4311-8301-F270D4E04A9F}.Release|Any CPU.Build.0 = Release|Any CPU
{77F424CB-75F2-4D7F-8B52-BBE2E09CB423}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{77F424CB-75F2-4D7F-8B52-BBE2E09CB423}.Debug|Any CPU.Build.0 = Debug|Any CPU
{77F424CB-75F2-4D7F-8B52-BBE2E09CB423}.Release|Any CPU.ActiveCfg = Release|Any CPU
{77F424CB-75F2-4D7F-8B52-BBE2E09CB423}.Release|Any CPU.Build.0 = Release|Any CPU
{644FAB8F-ED83-4539-AF43-8F8FE61EF778}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{644FAB8F-ED83-4539-AF43-8F8FE61EF778}.Debug|Any CPU.Build.0 = Debug|Any CPU
{644FAB8F-ED83-4539-AF43-8F8FE61EF778}.Release|Any CPU.ActiveCfg = Release|Any CPU
{644FAB8F-ED83-4539-AF43-8F8FE61EF778}.Release|Any CPU.Build.0 = Release|Any CPU
{648D7B5D-8B78-4F90-BDE0-4AC50C902CC3}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{648D7B5D-8B78-4F90-BDE0-4AC50C902CC3}.Debug|Any CPU.Build.0 = Debug|Any CPU
{648D7B5D-8B78-4F90-BDE0-4AC50C902CC3}.Release|Any CPU.ActiveCfg = Release|Any CPU
{648D7B5D-8B78-4F90-BDE0-4AC50C902CC3}.Release|Any CPU.Build.0 = Release|Any CPU
{F762D1BB-66FB-421A-A917-D80B7DCC0DC0}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{F762D1BB-66FB-421A-A917-D80B7DCC0DC0}.Debug|Any CPU.Build.0 = Debug|Any CPU
{F762D1BB-66FB-421A-A917-D80B7DCC0DC0}.Release|Any CPU.ActiveCfg = Release|Any CPU
{F762D1BB-66FB-421A-A917-D80B7DCC0DC0}.Release|Any CPU.Build.0 = Release|Any CPU
{D63C0CA8-554D-43F2-8DB4-8B464E4C1CDA}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{D63C0CA8-554D-43F2-8DB4-8B464E4C1CDA}.Debug|Any CPU.Build.0 = Debug|Any CPU
{D63C0CA8-554D-43F2-8DB4-8B464E4C1CDA}.Release|Any CPU.ActiveCfg = Release|Any CPU
{D63C0CA8-554D-43F2-8DB4-8B464E4C1CDA}.Release|Any CPU.Build.0 = Release|Any CPU
{79CAF2CA-E9E1-48A5-A21F-3786383C12E0}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{79CAF2CA-E9E1-48A5-A21F-3786383C12E0}.Debug|Any CPU.Build.0 = Debug|Any CPU
{79CAF2CA-E9E1-48A5-A21F-3786383C12E0}.Release|Any CPU.ActiveCfg = Release|Any CPU
{79CAF2CA-E9E1-48A5-A21F-3786383C12E0}.Release|Any CPU.Build.0 = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
EndGlobalSection
GlobalSection(NestedProjects) = preSolution
{BF8073FF-6403-4ED6-A3CD-74F240DC8044} = {DDCA574F-911B-4547-BA21-12CCE1022D95}
{98887A8F-7040-4FA1-842F-A4C77A61ED09} = {7C727110-59CA-495B-8143-C5DDEDE41289}
{9EA06629-DBAC-4369-9850-B7415D0470B0} = {98887A8F-7040-4FA1-842F-A4C77A61ED09}
{70B8D735-1E89-4163-8EDB-56A74E374CF4} = {7C727110-59CA-495B-8143-C5DDEDE41289}
{F87B2BA3-40BC-4CB8-B53E-793C860F285D} = {70B8D735-1E89-4163-8EDB-56A74E374CF4}
{AF8AECC8-0F42-4FC5-B3C0-00987BA8279F} = {7C727110-59CA-495B-8143-C5DDEDE41289}
{2FEA83BA-2E6D-40AF-8781-12CFD042457F} = {7C727110-59CA-495B-8143-C5DDEDE41289}
{A0A11373-635B-4343-8EE7-1DFC3611F05A} = {2FEA83BA-2E6D-40AF-8781-12CFD042457F}
{6F13C138-1D71-48F5-A404-94047242E98F} = {AF8AECC8-0F42-4FC5-B3C0-00987BA8279F}
{572DBB40-4637-4C01-8491-8686F7E22B45} = {7C727110-59CA-495B-8143-C5DDEDE41289}
{843012AC-78C3-4A25-904C-353ED26C8524} = {572DBB40-4637-4C01-8491-8686F7E22B45}
{FEEA68C2-D545-4AD6-81C7-71D0E2747CC3} = {6CB9D0F3-8D50-49B5-98E2-D777717E51E8}
{D879BE04-BEFC-423B-868C-E8BA10605E16} = {6CB9D0F3-8D50-49B5-98E2-D777717E51E8}
{6CB9D0F3-8D50-49B5-98E2-D777717E51E8} = {7C727110-59CA-495B-8143-C5DDEDE41289}
{C675C7DB-5825-4F64-BF76-8A4452A448D2} = {572DBB40-4637-4C01-8491-8686F7E22B45}
{A51E2EB5-EEC0-4FB0-99B9-A0FBE0D8B0EB} = {572DBB40-4637-4C01-8491-8686F7E22B45}
{E5E51981-864A-4B54-8E50-B5AE8B81245C} = {70B8D735-1E89-4163-8EDB-56A74E374CF4}
{6514E12E-D97C-4311-8301-F270D4E04A9F} = {70B8D735-1E89-4163-8EDB-56A74E374CF4}
{77F424CB-75F2-4D7F-8B52-BBE2E09CB423} = {70B8D735-1E89-4163-8EDB-56A74E374CF4}
{644FAB8F-ED83-4539-AF43-8F8FE61EF778} = {98887A8F-7040-4FA1-842F-A4C77A61ED09}
{648D7B5D-8B78-4F90-BDE0-4AC50C902CC3} = {AF8AECC8-0F42-4FC5-B3C0-00987BA8279F}
{F762D1BB-66FB-421A-A917-D80B7DCC0DC0} = {AF8AECC8-0F42-4FC5-B3C0-00987BA8279F}
{D63C0CA8-554D-43F2-8DB4-8B464E4C1CDA} = {98887A8F-7040-4FA1-842F-A4C77A61ED09}
{79CAF2CA-E9E1-48A5-A21F-3786383C12E0} = {98887A8F-7040-4FA1-842F-A4C77A61ED09}
EndGlobalSection
GlobalSection(ExtensibilityGlobals) = postSolution
SolutionGuid = {FCB77471-9ECB-4666-A316-1D6A6285A468}
EndGlobalSection
EndGlobal

Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio Version 16
VisualStudioVersion = 16.0.30011.22
MinimumVisualStudioVersion = 10.0.40219.1
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "modules", "modules", "{7C727110-59CA-495B-8143-C5DDEDE41289}"
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "services", "services", "{DDCA574F-911B-4547-BA21-12CCE1022D95}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "AuthServer.Host", "services\account\AuthServer.Host\AuthServer.Host.csproj", "{BF8073FF-6403-4ED6-A3CD-74F240DC8044}"
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "identity-server", "identity-server", "{98887A8F-7040-4FA1-842F-A4C77A61ED09}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.Abp.IdentityServer.SmsValidator", "modules\identityServer\LINGYUN.Abp.IdentityServer.SmsValidator\LINGYUN.Abp.IdentityServer.SmsValidator.csproj", "{9EA06629-DBAC-4369-9850-B7415D0470B0}"
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "identity", "identity", "{70B8D735-1E89-4163-8EDB-56A74E374CF4}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.Abp.PermissionManagement.Domain.Identity", "modules\identity\LINGYUN.Abp.PermissionManagement.Domain.Identity\LINGYUN.Abp.PermissionManagement.Domain.Identity.csproj", "{F87B2BA3-40BC-4CB8-B53E-793C860F285D}"
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "wechat", "wechat", "{AF8AECC8-0F42-4FC5-B3C0-00987BA8279F}"
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "permission-management", "permission-management", "{2FEA83BA-2E6D-40AF-8781-12CFD042457F}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.Abp.PermissionManagement.Domain", "modules\permissions-management\LINGYUN.Abp.PermissionManagement.Domain\LINGYUN.Abp.PermissionManagement.Domain.csproj", "{A0A11373-635B-4343-8EE7-1DFC3611F05A}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.Abp.WeChat", "modules\wechat\LINGYUN.Abp.WeChat\LINGYUN.Abp.WeChat.csproj", "{6F13C138-1D71-48F5-A404-94047242E98F}"
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "common", "common", "{572DBB40-4637-4C01-8491-8686F7E22B45}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.Abp.EventBus.CAP", "modules\common\LINGYUN.Abp.EventBus.CAP\LINGYUN.Abp.EventBus.CAP.csproj", "{843012AC-78C3-4A25-904C-353ED26C8524}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.Abp.MultiTenancy.DbFinder", "modules\tenants\LINGYUN.Abp.MultiTenancy.DbFinder\LINGYUN.Abp.MultiTenancy.DbFinder.csproj", "{FEEA68C2-D545-4AD6-81C7-71D0E2747CC3}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.Abp.MultiTenancy", "modules\tenants\LINGYUN.Abp.MultiTenancy\LINGYUN.Abp.MultiTenancy.csproj", "{D879BE04-BEFC-423B-868C-E8BA10605E16}"
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "tenants", "tenants", "{6CB9D0F3-8D50-49B5-98E2-D777717E51E8}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.Abp.Aliyun.Authorization", "modules\common\LINGYUN.Abp.Aliyun.Authorization\LINGYUN.Abp.Aliyun.Authorization.csproj", "{C675C7DB-5825-4F64-BF76-8A4452A448D2}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.Abp.Sms.Aliyun", "modules\common\LINGYUN.Abp.Sms.Aliyun\LINGYUN.Abp.Sms.Aliyun.csproj", "{A51E2EB5-EEC0-4FB0-99B9-A0FBE0D8B0EB}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.Abp.Identity.Domain.Shared", "modules\identity\LINGYUN.Abp.Identity.Domain.Shared\LINGYUN.Abp.Identity.Domain.Shared.csproj", "{E5E51981-864A-4B54-8E50-B5AE8B81245C}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.Abp.Identity.Domain", "modules\identity\LINGYUN.Abp.Identity.Domain\LINGYUN.Abp.Identity.Domain.csproj", "{6514E12E-D97C-4311-8301-F270D4E04A9F}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.Abp.Identity.EntityFrameworkCore", "modules\identity\LINGYUN.Abp.Identity.EntityFrameworkCore\LINGYUN.Abp.Identity.EntityFrameworkCore.csproj", "{77F424CB-75F2-4D7F-8B52-BBE2E09CB423}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.Abp.IdentityServer.EntityFrameworkCore", "modules\identityServer\LINGYUN.Abp.IdentityServer.EntityFrameworkCore\LINGYUN.Abp.IdentityServer.EntityFrameworkCore.csproj", "{644FAB8F-ED83-4539-AF43-8F8FE61EF778}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.Abp.WeChat.MiniProgram", "modules\wechat\LINGYUN.Abp.WeChat.MiniProgram\LINGYUN.Abp.WeChat.MiniProgram.csproj", "{648D7B5D-8B78-4F90-BDE0-4AC50C902CC3}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.Abp.WeChat.Official", "modules\wechat\LINGYUN.Abp.WeChat.Official\LINGYUN.Abp.WeChat.Official.csproj", "{F762D1BB-66FB-421A-A917-D80B7DCC0DC0}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.Abp.IdentityServer.WeChat", "modules\identityServer\LINGYUN.Abp.IdentityServer.WeChat\LINGYUN.Abp.IdentityServer.WeChat.csproj", "{D63C0CA8-554D-43F2-8DB4-8B464E4C1CDA}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.Abp.IdentityServer.Domain", "modules\identityServer\LINGYUN.Abp.IdentityServer.Domain\LINGYUN.Abp.IdentityServer.Domain.csproj", "{79CAF2CA-E9E1-48A5-A21F-3786383C12E0}"
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "theming", "theming", "{1D7CE7E0-37AB-477B-919B-B1EB2899A17E}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Volo.Abp.AspNetCore.Components.WebAssembly.AntDesign", "theming\Volo.Abp.AspNetCore.Components.WebAssembly.AntDesign\Volo.Abp.AspNetCore.Components.WebAssembly.AntDesign.csproj", "{596BB67C-7765-4481-9C8B-EAE0D9726B75}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
Release|Any CPU = Release|Any CPU
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
{BF8073FF-6403-4ED6-A3CD-74F240DC8044}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{BF8073FF-6403-4ED6-A3CD-74F240DC8044}.Debug|Any CPU.Build.0 = Debug|Any CPU
{BF8073FF-6403-4ED6-A3CD-74F240DC8044}.Release|Any CPU.ActiveCfg = Release|Any CPU
{BF8073FF-6403-4ED6-A3CD-74F240DC8044}.Release|Any CPU.Build.0 = Release|Any CPU
{9EA06629-DBAC-4369-9850-B7415D0470B0}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{9EA06629-DBAC-4369-9850-B7415D0470B0}.Debug|Any CPU.Build.0 = Debug|Any CPU
{9EA06629-DBAC-4369-9850-B7415D0470B0}.Release|Any CPU.ActiveCfg = Release|Any CPU
{9EA06629-DBAC-4369-9850-B7415D0470B0}.Release|Any CPU.Build.0 = Release|Any CPU
{F87B2BA3-40BC-4CB8-B53E-793C860F285D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{F87B2BA3-40BC-4CB8-B53E-793C860F285D}.Debug|Any CPU.Build.0 = Debug|Any CPU
{F87B2BA3-40BC-4CB8-B53E-793C860F285D}.Release|Any CPU.ActiveCfg = Release|Any CPU
{F87B2BA3-40BC-4CB8-B53E-793C860F285D}.Release|Any CPU.Build.0 = Release|Any CPU
{A0A11373-635B-4343-8EE7-1DFC3611F05A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{A0A11373-635B-4343-8EE7-1DFC3611F05A}.Debug|Any CPU.Build.0 = Debug|Any CPU
{A0A11373-635B-4343-8EE7-1DFC3611F05A}.Release|Any CPU.ActiveCfg = Release|Any CPU
{A0A11373-635B-4343-8EE7-1DFC3611F05A}.Release|Any CPU.Build.0 = Release|Any CPU
{6F13C138-1D71-48F5-A404-94047242E98F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{6F13C138-1D71-48F5-A404-94047242E98F}.Debug|Any CPU.Build.0 = Debug|Any CPU
{6F13C138-1D71-48F5-A404-94047242E98F}.Release|Any CPU.ActiveCfg = Release|Any CPU
{6F13C138-1D71-48F5-A404-94047242E98F}.Release|Any CPU.Build.0 = Release|Any CPU
{843012AC-78C3-4A25-904C-353ED26C8524}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{843012AC-78C3-4A25-904C-353ED26C8524}.Debug|Any CPU.Build.0 = Debug|Any CPU
{843012AC-78C3-4A25-904C-353ED26C8524}.Release|Any CPU.ActiveCfg = Release|Any CPU
{843012AC-78C3-4A25-904C-353ED26C8524}.Release|Any CPU.Build.0 = Release|Any CPU
{FEEA68C2-D545-4AD6-81C7-71D0E2747CC3}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{FEEA68C2-D545-4AD6-81C7-71D0E2747CC3}.Debug|Any CPU.Build.0 = Debug|Any CPU
{FEEA68C2-D545-4AD6-81C7-71D0E2747CC3}.Release|Any CPU.ActiveCfg = Release|Any CPU
{FEEA68C2-D545-4AD6-81C7-71D0E2747CC3}.Release|Any CPU.Build.0 = Release|Any CPU
{D879BE04-BEFC-423B-868C-E8BA10605E16}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{D879BE04-BEFC-423B-868C-E8BA10605E16}.Debug|Any CPU.Build.0 = Debug|Any CPU
{D879BE04-BEFC-423B-868C-E8BA10605E16}.Release|Any CPU.ActiveCfg = Release|Any CPU
{D879BE04-BEFC-423B-868C-E8BA10605E16}.Release|Any CPU.Build.0 = Release|Any CPU
{C675C7DB-5825-4F64-BF76-8A4452A448D2}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{C675C7DB-5825-4F64-BF76-8A4452A448D2}.Debug|Any CPU.Build.0 = Debug|Any CPU
{C675C7DB-5825-4F64-BF76-8A4452A448D2}.Release|Any CPU.ActiveCfg = Release|Any CPU
{C675C7DB-5825-4F64-BF76-8A4452A448D2}.Release|Any CPU.Build.0 = Release|Any CPU
{A51E2EB5-EEC0-4FB0-99B9-A0FBE0D8B0EB}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{A51E2EB5-EEC0-4FB0-99B9-A0FBE0D8B0EB}.Debug|Any CPU.Build.0 = Debug|Any CPU
{A51E2EB5-EEC0-4FB0-99B9-A0FBE0D8B0EB}.Release|Any CPU.ActiveCfg = Release|Any CPU
{A51E2EB5-EEC0-4FB0-99B9-A0FBE0D8B0EB}.Release|Any CPU.Build.0 = Release|Any CPU
{E5E51981-864A-4B54-8E50-B5AE8B81245C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{E5E51981-864A-4B54-8E50-B5AE8B81245C}.Debug|Any CPU.Build.0 = Debug|Any CPU
{E5E51981-864A-4B54-8E50-B5AE8B81245C}.Release|Any CPU.ActiveCfg = Release|Any CPU
{E5E51981-864A-4B54-8E50-B5AE8B81245C}.Release|Any CPU.Build.0 = Release|Any CPU
{6514E12E-D97C-4311-8301-F270D4E04A9F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{6514E12E-D97C-4311-8301-F270D4E04A9F}.Debug|Any CPU.Build.0 = Debug|Any CPU
{6514E12E-D97C-4311-8301-F270D4E04A9F}.Release|Any CPU.ActiveCfg = Release|Any CPU
{6514E12E-D97C-4311-8301-F270D4E04A9F}.Release|Any CPU.Build.0 = Release|Any CPU
{77F424CB-75F2-4D7F-8B52-BBE2E09CB423}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{77F424CB-75F2-4D7F-8B52-BBE2E09CB423}.Debug|Any CPU.Build.0 = Debug|Any CPU
{77F424CB-75F2-4D7F-8B52-BBE2E09CB423}.Release|Any CPU.ActiveCfg = Release|Any CPU
{77F424CB-75F2-4D7F-8B52-BBE2E09CB423}.Release|Any CPU.Build.0 = Release|Any CPU
{644FAB8F-ED83-4539-AF43-8F8FE61EF778}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{644FAB8F-ED83-4539-AF43-8F8FE61EF778}.Debug|Any CPU.Build.0 = Debug|Any CPU
{644FAB8F-ED83-4539-AF43-8F8FE61EF778}.Release|Any CPU.ActiveCfg = Release|Any CPU
{644FAB8F-ED83-4539-AF43-8F8FE61EF778}.Release|Any CPU.Build.0 = Release|Any CPU
{648D7B5D-8B78-4F90-BDE0-4AC50C902CC3}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{648D7B5D-8B78-4F90-BDE0-4AC50C902CC3}.Debug|Any CPU.Build.0 = Debug|Any CPU
{648D7B5D-8B78-4F90-BDE0-4AC50C902CC3}.Release|Any CPU.ActiveCfg = Release|Any CPU
{648D7B5D-8B78-4F90-BDE0-4AC50C902CC3}.Release|Any CPU.Build.0 = Release|Any CPU
{F762D1BB-66FB-421A-A917-D80B7DCC0DC0}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{F762D1BB-66FB-421A-A917-D80B7DCC0DC0}.Debug|Any CPU.Build.0 = Debug|Any CPU
{F762D1BB-66FB-421A-A917-D80B7DCC0DC0}.Release|Any CPU.ActiveCfg = Release|Any CPU
{F762D1BB-66FB-421A-A917-D80B7DCC0DC0}.Release|Any CPU.Build.0 = Release|Any CPU
{D63C0CA8-554D-43F2-8DB4-8B464E4C1CDA}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{D63C0CA8-554D-43F2-8DB4-8B464E4C1CDA}.Debug|Any CPU.Build.0 = Debug|Any CPU
{D63C0CA8-554D-43F2-8DB4-8B464E4C1CDA}.Release|Any CPU.ActiveCfg = Release|Any CPU
{D63C0CA8-554D-43F2-8DB4-8B464E4C1CDA}.Release|Any CPU.Build.0 = Release|Any CPU
{79CAF2CA-E9E1-48A5-A21F-3786383C12E0}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{79CAF2CA-E9E1-48A5-A21F-3786383C12E0}.Debug|Any CPU.Build.0 = Debug|Any CPU
{79CAF2CA-E9E1-48A5-A21F-3786383C12E0}.Release|Any CPU.ActiveCfg = Release|Any CPU
{79CAF2CA-E9E1-48A5-A21F-3786383C12E0}.Release|Any CPU.Build.0 = Release|Any CPU
{596BB67C-7765-4481-9C8B-EAE0D9726B75}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{596BB67C-7765-4481-9C8B-EAE0D9726B75}.Debug|Any CPU.Build.0 = Debug|Any CPU
{596BB67C-7765-4481-9C8B-EAE0D9726B75}.Release|Any CPU.ActiveCfg = Release|Any CPU
{596BB67C-7765-4481-9C8B-EAE0D9726B75}.Release|Any CPU.Build.0 = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
EndGlobalSection
GlobalSection(NestedProjects) = preSolution
{BF8073FF-6403-4ED6-A3CD-74F240DC8044} = {DDCA574F-911B-4547-BA21-12CCE1022D95}
{98887A8F-7040-4FA1-842F-A4C77A61ED09} = {7C727110-59CA-495B-8143-C5DDEDE41289}
{9EA06629-DBAC-4369-9850-B7415D0470B0} = {98887A8F-7040-4FA1-842F-A4C77A61ED09}
{70B8D735-1E89-4163-8EDB-56A74E374CF4} = {7C727110-59CA-495B-8143-C5DDEDE41289}
{F87B2BA3-40BC-4CB8-B53E-793C860F285D} = {70B8D735-1E89-4163-8EDB-56A74E374CF4}
{AF8AECC8-0F42-4FC5-B3C0-00987BA8279F} = {7C727110-59CA-495B-8143-C5DDEDE41289}
{2FEA83BA-2E6D-40AF-8781-12CFD042457F} = {7C727110-59CA-495B-8143-C5DDEDE41289}
{A0A11373-635B-4343-8EE7-1DFC3611F05A} = {2FEA83BA-2E6D-40AF-8781-12CFD042457F}
{6F13C138-1D71-48F5-A404-94047242E98F} = {AF8AECC8-0F42-4FC5-B3C0-00987BA8279F}
{572DBB40-4637-4C01-8491-8686F7E22B45} = {7C727110-59CA-495B-8143-C5DDEDE41289}
{843012AC-78C3-4A25-904C-353ED26C8524} = {572DBB40-4637-4C01-8491-8686F7E22B45}
{FEEA68C2-D545-4AD6-81C7-71D0E2747CC3} = {6CB9D0F3-8D50-49B5-98E2-D777717E51E8}
{D879BE04-BEFC-423B-868C-E8BA10605E16} = {6CB9D0F3-8D50-49B5-98E2-D777717E51E8}
{6CB9D0F3-8D50-49B5-98E2-D777717E51E8} = {7C727110-59CA-495B-8143-C5DDEDE41289}
{C675C7DB-5825-4F64-BF76-8A4452A448D2} = {572DBB40-4637-4C01-8491-8686F7E22B45}
{A51E2EB5-EEC0-4FB0-99B9-A0FBE0D8B0EB} = {572DBB40-4637-4C01-8491-8686F7E22B45}
{E5E51981-864A-4B54-8E50-B5AE8B81245C} = {70B8D735-1E89-4163-8EDB-56A74E374CF4}
{6514E12E-D97C-4311-8301-F270D4E04A9F} = {70B8D735-1E89-4163-8EDB-56A74E374CF4}
{77F424CB-75F2-4D7F-8B52-BBE2E09CB423} = {70B8D735-1E89-4163-8EDB-56A74E374CF4}
{644FAB8F-ED83-4539-AF43-8F8FE61EF778} = {98887A8F-7040-4FA1-842F-A4C77A61ED09}
{648D7B5D-8B78-4F90-BDE0-4AC50C902CC3} = {AF8AECC8-0F42-4FC5-B3C0-00987BA8279F}
{F762D1BB-66FB-421A-A917-D80B7DCC0DC0} = {AF8AECC8-0F42-4FC5-B3C0-00987BA8279F}
{D63C0CA8-554D-43F2-8DB4-8B464E4C1CDA} = {98887A8F-7040-4FA1-842F-A4C77A61ED09}
{79CAF2CA-E9E1-48A5-A21F-3786383C12E0} = {98887A8F-7040-4FA1-842F-A4C77A61ED09}
{596BB67C-7765-4481-9C8B-EAE0D9726B75} = {1D7CE7E0-37AB-477B-919B-B1EB2899A17E}
EndGlobalSection
GlobalSection(ExtensibilityGlobals) = postSolution
SolutionGuid = {FCB77471-9ECB-4666-A316-1D6A6285A468}
EndGlobalSection
EndGlobal

34
aspnet-core/common.props

@ -1,18 +1,18 @@
<Project>
<PropertyGroup>
<LangVersion>latest</LangVersion>
<Version>4.3.0</Version>
<Authors>LINGYUN</Authors>
<NoWarn>$(NoWarn);CS1591;CS0436</NoWarn>
<PackageProjectUrl>https://github.com/colinin/abp-vue-admin-element-typescript/</PackageProjectUrl>
<PackageLicenseExpression>MIT</PackageLicenseExpression>
<RepositoryType>git</RepositoryType>
<RepositoryUrl>https://github.com/colinin/abp-vue-admin-element-typescript/</RepositoryUrl>
<GeneratePackageOnBuild>true</GeneratePackageOnBuild>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|AnyCPU'">
<OutputPath>$(SolutionDir)LocalNuget</OutputPath>
</PropertyGroup>
<Project>
<PropertyGroup>
<LangVersion>latest</LangVersion>
<Version>4.4.0</Version>
<Authors>LINGYUN</Authors>
<NoWarn>$(NoWarn);CS1591;CS0436</NoWarn>
<PackageProjectUrl>https://github.com/colinin/abp-vue-admin-element-typescript/</PackageProjectUrl>
<PackageLicenseExpression>MIT</PackageLicenseExpression>
<RepositoryType>git</RepositoryType>
<RepositoryUrl>https://github.com/colinin/abp-vue-admin-element-typescript/</RepositoryUrl>
<GeneratePackageOnBuild>true</GeneratePackageOnBuild>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|AnyCPU'">
<OutputPath>$(SolutionDir)LocalNuget</OutputPath>
</PropertyGroup>
</Project>

2
aspnet-core/modules/account/LINGYUN.Abp.Account.Application.Contracts/LINGYUN.Abp.Account.Application.Contracts.csproj

@ -18,7 +18,7 @@
</ItemGroup>
<ItemGroup>
<PackageReference Include="Volo.Abp.Account.Application.Contracts" Version="4.3.0" />
<PackageReference Include="Volo.Abp.Account.Application.Contracts" Version="4.4.0" />
</ItemGroup>
</Project>

4
aspnet-core/modules/account/LINGYUN.Abp.Account.Application/LINGYUN.Abp.Account.Application.csproj

@ -8,8 +8,8 @@
</PropertyGroup>
<ItemGroup>
<PackageReference Include="Volo.Abp.Account.Application" Version="4.3.0" />
<PackageReference Include="Volo.Abp.Sms" Version="4.3.0" />
<PackageReference Include="Volo.Abp.Account.Application" Version="4.4.0" />
<PackageReference Include="Volo.Abp.Sms" Version="4.4.0" />
</ItemGroup>
<ItemGroup>

6
aspnet-core/modules/account/LINGYUN.Abp.Account.Domain.Shared/LINGYUN.Abp.Account.Domain.Shared.csproj

@ -8,11 +8,11 @@
</PropertyGroup>
<ItemGroup>
<PackageReference Include="Volo.Abp.Localization" Version="4.3.0" />
<PackageReference Include="Volo.Abp.Localization" Version="4.4.0" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\..\identity\LINGYUN.Abp.Identity.Domain.Shared\LINGYUN.Abp.Identity.Domain.Shared.csproj" />
<ItemGroup>
<ProjectReference Include="..\..\identity\LINGYUN.Abp.Identity.Domain.Shared\LINGYUN.Abp.Identity.Domain.Shared.csproj" />
</ItemGroup>
</Project>

6
aspnet-core/modules/account/LINGYUN.Abp.Account.Domain/LINGYUN.Abp.Account.Domain.csproj

@ -8,11 +8,11 @@
</PropertyGroup>
<ItemGroup>
<PackageReference Include="Volo.Abp.Identity.Domain" Version="4.3.0" />
<PackageReference Include="Volo.Abp.Identity.Domain" Version="4.4.0" />
</ItemGroup>
<ItemGroup>
<Folder Include="Microsoft\AspNetCore\Identity\" />
<ItemGroup>
<Folder Include="Microsoft\AspNetCore\Identity\" />
</ItemGroup>
</Project>

2
aspnet-core/modules/account/LINGYUN.Abp.Account.HttpApi/LINGYUN.Abp.Account.HttpApi.csproj

@ -8,7 +8,7 @@
</PropertyGroup>
<ItemGroup>
<PackageReference Include="Volo.Abp.Account.HttpApi" Version="4.3.0" />
<PackageReference Include="Volo.Abp.Account.HttpApi" Version="4.4.0" />
</ItemGroup>
<ItemGroup>

76
aspnet-core/modules/account/LINGYUN.Abp.Account.Web/LINGYUN.Abp.Account.Web.csproj

@ -1,38 +1,38 @@
<Project Sdk="Microsoft.NET.Sdk.Web">
<Import Project="..\..\..\common.props" />
<PropertyGroup>
<TargetFramework>netcoreapp3.1</TargetFramework>
<AssemblyName>LINGYUN.Abp.Account.Web</AssemblyName>
<PackageId>LINGYUN.Abp.Account.Web</PackageId>
<IsPackable>true</IsPackable>
<AssetTargetFallback>$(AssetTargetFallback);portable-net45+win8+wp8+wpa81;</AssetTargetFallback>
<GenerateAssemblyConfigurationAttribute>false</GenerateAssemblyConfigurationAttribute>
<GenerateAssemblyCompanyAttribute>false</GenerateAssemblyCompanyAttribute>
<GenerateAssemblyProductAttribute>false</GenerateAssemblyProductAttribute>
<GenerateEmbeddedFilesManifest>true</GenerateEmbeddedFilesManifest>
<RootNamespace>LINGYUN.Abp.Account.Web</RootNamespace>
<OutputType>Library</OutputType>
</PropertyGroup>
<ItemGroup>
<EmbeddedResource Include="Pages\**\*.css" />
<EmbeddedResource Include="Pages\**\*.js" />
<EmbeddedResource Include="Components\**\*.js" />
<EmbeddedResource Include="Components\**\*.css" />
<Content Remove="Pages\**\*.css" />
<Content Remove="Pages\**\*.js" />
<Content Remove="Components\**\*.js" />
<Content Remove="Components\**\*.css" />
</ItemGroup>
<ItemGroup>
<PackageReference Include="Volo.Abp.Account.Web" Version="4.3.0" />
<PackageReference Include="Volo.Abp.Sms" Version="4.3.0" />
<PackageReference Include="Volo.Abp.Emailing" Version="4.3.0" />
<PackageReference Include="Microsoft.Extensions.FileProviders.Embedded" Version="3.1.8" />
</ItemGroup>
</Project>
<Project Sdk="Microsoft.NET.Sdk.Web">
<Import Project="..\..\..\common.props" />
<PropertyGroup>
<TargetFramework>netcoreapp3.1</TargetFramework>
<AssemblyName>LINGYUN.Abp.Account.Web</AssemblyName>
<PackageId>LINGYUN.Abp.Account.Web</PackageId>
<IsPackable>true</IsPackable>
<AssetTargetFallback>$(AssetTargetFallback);portable-net45+win8+wp8+wpa81;</AssetTargetFallback>
<GenerateAssemblyConfigurationAttribute>false</GenerateAssemblyConfigurationAttribute>
<GenerateAssemblyCompanyAttribute>false</GenerateAssemblyCompanyAttribute>
<GenerateAssemblyProductAttribute>false</GenerateAssemblyProductAttribute>
<GenerateEmbeddedFilesManifest>true</GenerateEmbeddedFilesManifest>
<RootNamespace>LINGYUN.Abp.Account.Web</RootNamespace>
<OutputType>Library</OutputType>
</PropertyGroup>
<ItemGroup>
<EmbeddedResource Include="Pages\**\*.css" />
<EmbeddedResource Include="Pages\**\*.js" />
<EmbeddedResource Include="Components\**\*.js" />
<EmbeddedResource Include="Components\**\*.css" />
<Content Remove="Pages\**\*.css" />
<Content Remove="Pages\**\*.js" />
<Content Remove="Components\**\*.js" />
<Content Remove="Components\**\*.css" />
</ItemGroup>
<ItemGroup>
<PackageReference Include="Volo.Abp.Account.Web" Version="4.4.0" />
<PackageReference Include="Volo.Abp.Sms" Version="4.4.0" />
<PackageReference Include="Volo.Abp.Emailing" Version="4.4.0" />
<PackageReference Include="Microsoft.Extensions.FileProviders.Embedded" Version="3.1.8" />
</ItemGroup>
</Project>

4
aspnet-core/modules/apigateway/LINGYUN.ApiGateway.Application.Contracts/LINGYUN.ApiGateway.Application.Contracts.csproj

@ -18,8 +18,8 @@
</ItemGroup>
<ItemGroup>
<PackageReference Include="Volo.Abp.Ddd.Application.Contracts" Version="4.3.0" />
<PackageReference Include="Volo.Abp.Authorization" Version="4.3.0" />
<PackageReference Include="Volo.Abp.Ddd.Application.Contracts" Version="4.4.0" />
<PackageReference Include="Volo.Abp.Authorization" Version="4.4.0" />
</ItemGroup>
<ItemGroup>

34
aspnet-core/modules/apigateway/LINGYUN.ApiGateway.Application.Contracts/LINGYUN/ApiGateway/Ocelot/Dto/ReRouteUpdateDto.cs

@ -1,17 +1,17 @@
using Newtonsoft.Json;
using System.ComponentModel.DataAnnotations;
namespace LINGYUN.ApiGateway.Ocelot
{
public class ReRouteUpdateDto : ReRouteDtoBase
{
[Required]
public string ReRouteId { get; set; }
[Required]
public string ConcurrencyStamp { get; set; }
[StringLength(50)]
public string ReRouteName { get; set; }
}
}
using Newtonsoft.Json;
using System.ComponentModel.DataAnnotations;
namespace LINGYUN.ApiGateway.Ocelot
{
public class ReRouteUpdateDto : ReRouteDtoBase
{
[Required]
public string ReRouteId { get; set; }
[Required]
public string ConcurrencyStamp { get; set; }
[StringLength(50)]
public string ReRouteName { get; set; }
}
}

4
aspnet-core/modules/apigateway/LINGYUN.ApiGateway.Application/LINGYUN.ApiGateway.Application.csproj

@ -8,8 +8,8 @@
</PropertyGroup>
<ItemGroup>
<PackageReference Include="Volo.Abp.AutoMapper" Version="4.3.0" />
<PackageReference Include="Volo.Abp.Ddd.Application" Version="4.3.0" />
<PackageReference Include="Volo.Abp.AutoMapper" Version="4.4.0" />
<PackageReference Include="Volo.Abp.Ddd.Application" Version="4.4.0" />
</ItemGroup>
<ItemGroup>

2
aspnet-core/modules/apigateway/LINGYUN.ApiGateway.Domain.Shared/LINGYUN.ApiGateway.Domain.Shared.csproj

@ -18,7 +18,7 @@
</ItemGroup>
<ItemGroup>
<PackageReference Include="Volo.Abp.Localization" Version="4.3.0" />
<PackageReference Include="Volo.Abp.Localization" Version="4.4.0" />
</ItemGroup>
</Project>

4
aspnet-core/modules/apigateway/LINGYUN.ApiGateway.Domain/LINGYUN.ApiGateway.Domain.csproj

@ -8,8 +8,8 @@
</PropertyGroup>
<ItemGroup>
<PackageReference Include="Volo.Abp.Caching" Version="4.3.0" />
<PackageReference Include="Volo.Abp.Ddd.Domain" Version="4.3.0" />
<PackageReference Include="Volo.Abp.Caching" Version="4.4.0" />
<PackageReference Include="Volo.Abp.Ddd.Domain" Version="4.4.0" />
</ItemGroup>
<ItemGroup>

2
aspnet-core/modules/apigateway/LINGYUN.ApiGateway.EntityFrameworkCore/LINGYUN.ApiGateway.EntityFrameworkCore.csproj

@ -8,7 +8,7 @@
</PropertyGroup>
<ItemGroup>
<PackageReference Include="Volo.Abp.EntityFrameworkCore" Version="4.3.0" />
<PackageReference Include="Volo.Abp.EntityFrameworkCore" Version="4.4.0" />
</ItemGroup>
<ItemGroup>

2
aspnet-core/modules/apigateway/LINGYUN.ApiGateway.HttpApi.Client/LINGYUN.ApiGateway.HttpApi.Client.csproj

@ -8,7 +8,7 @@
</PropertyGroup>
<ItemGroup>
<PackageReference Include="Volo.Abp.Http.Client" Version="4.3.0" />
<PackageReference Include="Volo.Abp.Http.Client" Version="4.4.0" />
</ItemGroup>
<ItemGroup>

2
aspnet-core/modules/apigateway/LINGYUN.ApiGateway.HttpApi/LINGYUN.ApiGateway.HttpApi.csproj

@ -8,7 +8,7 @@
</PropertyGroup>
<ItemGroup>
<PackageReference Include="Volo.Abp.AspNetCore.Mvc" Version="4.3.0" />
<PackageReference Include="Volo.Abp.AspNetCore.Mvc" Version="4.4.0" />
</ItemGroup>
<ItemGroup>

10
aspnet-core/modules/auditing/LINGYUN.Abp.Auditing.Application.Contracts/LINGYUN.Abp.Auditing.Application.Contracts.csproj

@ -13,11 +13,11 @@
</ItemGroup>
<ItemGroup>
<PackageReference Include="Volo.Abp.Features" Version="4.3.0" />
<PackageReference Include="Volo.Abp.Authorization" Version="4.3.0" />
<PackageReference Include="Volo.Abp.AuditLogging.Domain.Shared" Version="4.3.0" />
<PackageReference Include="Volo.Abp.Identity.Domain.Shared" Version="4.3.0" />
<PackageReference Include="Volo.Abp.Ddd.Application.Contracts" Version="4.3.0" />
<PackageReference Include="Volo.Abp.Features" Version="4.4.0" />
<PackageReference Include="Volo.Abp.Authorization" Version="4.4.0" />
<PackageReference Include="Volo.Abp.AuditLogging.Domain.Shared" Version="4.4.0" />
<PackageReference Include="Volo.Abp.Identity.Domain.Shared" Version="4.4.0" />
<PackageReference Include="Volo.Abp.Ddd.Application.Contracts" Version="4.4.0" />
</ItemGroup>
</Project>

43
aspnet-core/modules/auditing/LINGYUN.Abp.Auditing.Application.Contracts/LINGYUN/Abp/Auditing/Logging/AuditLogGetByPagedDto.cs

@ -1,21 +1,22 @@
using System;
using System.Net;
using Volo.Abp.Application.Dtos;
namespace LINGYUN.Abp.Auditing.Logging
{
public class AuditLogGetByPagedDto : PagedAndSortedResultRequestDto
{
public DateTime? StartTime { get; set; }
public DateTime? EndTime { get; set; }
public string HttpMethod { get; set; }
public string Url { get; set; }
public string UserName { get; set; }
public string ApplicationName { get; set; }
public string CorrelationId { get; set; }
public int? MaxExecutionDuration { get; set; }
public int? MinExecutionDuration { get; set; }
public bool? HasException { get; set; }
public HttpStatusCode? HttpStatusCode { get; set; }
}
}
using System;
using System.Net;
using Volo.Abp.Application.Dtos;
namespace LINGYUN.Abp.Auditing.Logging
{
public class AuditLogGetByPagedDto : PagedAndSortedResultRequestDto
{
public DateTime? StartTime { get; set; }
public DateTime? EndTime { get; set; }
public string HttpMethod { get; set; }
public string Url { get; set; }
public Guid? UserId { get; set; }
public string UserName { get; set; }
public string ApplicationName { get; set; }
public string CorrelationId { get; set; }
public int? MaxExecutionDuration { get; set; }
public int? MinExecutionDuration { get; set; }
public bool? HasException { get; set; }
public HttpStatusCode? HttpStatusCode { get; set; }
}
}

8
aspnet-core/modules/auditing/LINGYUN.Abp.Auditing.Application/LINGYUN.Abp.Auditing.Application.csproj

@ -8,10 +8,10 @@
</PropertyGroup>
<ItemGroup>
<PackageReference Include="Volo.Abp.AutoMapper" Version="4.3.0" />
<PackageReference Include="Volo.Abp.AuditLogging.Domain" Version="4.3.0" />
<PackageReference Include="Volo.Abp.Identity.Domain" Version="4.3.0" />
<PackageReference Include="Volo.Abp.Ddd.Application" Version="4.3.0" />
<PackageReference Include="Volo.Abp.AutoMapper" Version="4.4.0" />
<PackageReference Include="Volo.Abp.AuditLogging.Domain" Version="4.4.0" />
<PackageReference Include="Volo.Abp.Identity.Domain" Version="4.4.0" />
<PackageReference Include="Volo.Abp.Ddd.Application" Version="4.4.0" />
</ItemGroup>
<ItemGroup>

124
aspnet-core/modules/auditing/LINGYUN.Abp.Auditing.Application/LINGYUN/Abp/Auditing/Logging/AuditLogAppService.cs

@ -1,60 +1,64 @@
using LINGYUN.Abp.Auditing.Features;
using LINGYUN.Abp.Auditing.Permissions;
using Microsoft.AspNetCore.Authorization;
using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using System.Threading.Tasks;
using Volo.Abp.Application.Dtos;
using Volo.Abp.AuditLogging;
using Volo.Abp.Features;
namespace LINGYUN.Abp.Auditing.Logging
{
[Authorize(AuditingPermissionNames.AuditLog.Default)]
[RequiresFeature(AuditingFeatureNames.Logging.AuditLog)]
public class AuditLogAppService : AuditingApplicationServiceBase, IAuditLogAppService
{
protected IAuditLogRepository AuditLogRepository { get; }
public AuditLogAppService(IAuditLogRepository auditLogRepository)
{
AuditLogRepository = auditLogRepository;
}
public virtual async Task<AuditLogDto> GetAsync(Guid id)
{
var auditLog = await AuditLogRepository.GetAsync(id, includeDetails: true);
return ObjectMapper.Map<AuditLog, AuditLogDto>(auditLog);
}
public virtual async Task<PagedResultDto<AuditLogDto>> GetListAsync(AuditLogGetByPagedDto input)
{
var auditLogCount = await AuditLogRepository
.GetCountAsync(input.StartTime, input.EndTime,
input.HttpMethod, input.Url, input.UserName, input.ApplicationName,
input.CorrelationId, input.MaxExecutionDuration, input.MinExecutionDuration,
input.HasException, input.HttpStatusCode);
var auditLogs = await AuditLogRepository
.GetListAsync(input.Sorting, input.MaxResultCount, input.SkipCount,
input.StartTime, input.EndTime,
input.HttpMethod, input.Url, input.UserName, input.ApplicationName,
input.CorrelationId, input.MaxExecutionDuration, input.MinExecutionDuration,
input.HasException, input.HttpStatusCode, includeDetails: false);
return new PagedResultDto<AuditLogDto>(auditLogCount,
ObjectMapper.Map<List<AuditLog>, List<AuditLogDto>>(auditLogs));
}
[Authorize(AuditingPermissionNames.AuditLog.Delete)]
public virtual async Task DeleteAsync([Required] Guid id)
{
var auditLog = await AuditLogRepository.GetAsync(id);
await AuditLogRepository.DeleteAsync(auditLog);
await CurrentUnitOfWork.SaveChangesAsync();
}
}
}
using LINGYUN.Abp.Auditing.Features;
using LINGYUN.Abp.Auditing.Permissions;
using Microsoft.AspNetCore.Authorization;
using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using System.Threading.Tasks;
using Volo.Abp.Application.Dtos;
using Volo.Abp.AuditLogging;
using Volo.Abp.Features;
namespace LINGYUN.Abp.Auditing.Logging
{
[Authorize(AuditingPermissionNames.AuditLog.Default)]
[RequiresFeature(AuditingFeatureNames.Logging.AuditLog)]
public class AuditLogAppService : AuditingApplicationServiceBase, IAuditLogAppService
{
protected IAuditLogRepository AuditLogRepository { get; }
public AuditLogAppService(IAuditLogRepository auditLogRepository)
{
AuditLogRepository = auditLogRepository;
}
public virtual async Task<AuditLogDto> GetAsync(Guid id)
{
var auditLog = await AuditLogRepository.GetAsync(id, includeDetails: true);
return ObjectMapper.Map<AuditLog, AuditLogDto>(auditLog);
}
public virtual async Task<PagedResultDto<AuditLogDto>> GetListAsync(AuditLogGetByPagedDto input)
{
var auditLogCount = await AuditLogRepository
.GetCountAsync(input.StartTime, input.EndTime,
input.HttpMethod, input.Url,
input.UserId, input.UserName,
input.ApplicationName, input.CorrelationId,
input.MaxExecutionDuration, input.MinExecutionDuration,
input.HasException, input.HttpStatusCode);
var auditLogs = await AuditLogRepository
.GetListAsync(input.Sorting, input.MaxResultCount, input.SkipCount,
input.StartTime, input.EndTime,
input.HttpMethod, input.Url,
input.UserId, input.UserName,
input.ApplicationName, input.CorrelationId,
input.MaxExecutionDuration, input.MinExecutionDuration,
input.HasException, input.HttpStatusCode, includeDetails: false);
return new PagedResultDto<AuditLogDto>(auditLogCount,
ObjectMapper.Map<List<AuditLog>, List<AuditLogDto>>(auditLogs));
}
[Authorize(AuditingPermissionNames.AuditLog.Delete)]
public virtual async Task DeleteAsync([Required] Guid id)
{
var auditLog = await AuditLogRepository.GetAsync(id);
await AuditLogRepository.DeleteAsync(auditLog);
await CurrentUnitOfWork.SaveChangesAsync();
}
}
}

2
aspnet-core/modules/auditing/LINGYUN.Abp.Auditing.HttpApi/LINGYUN.Abp.Auditing.HttpApi.csproj

@ -8,7 +8,7 @@
</PropertyGroup>
<ItemGroup>
<PackageReference Include="Volo.Abp.AspNetCore.Mvc" Version="4.3.0" />
<PackageReference Include="Volo.Abp.AspNetCore.Mvc" Version="4.4.0" />
</ItemGroup>
<ItemGroup>

60
aspnet-core/modules/cloud-aliyun/LINGYUN.Abp.Aliyun.SettingManagement/LINGYUN.Abp.Aliyun.SettingManagement.csproj

@ -1,30 +1,30 @@
<Project Sdk="Microsoft.NET.Sdk">
<Import Project="..\..\..\common.props" />
<PropertyGroup>
<TargetFramework>net5.0</TargetFramework>
<RootNamespace />
</PropertyGroup>
<ItemGroup>
<None Remove="LINGYUN\Abp\Aliyun\SettingManagement\Localization\Resources\en.json" />
<None Remove="LINGYUN\Abp\Aliyun\SettingManagement\Localization\Resources\zh-Hans.json" />
</ItemGroup>
<ItemGroup>
<EmbeddedResource Include="LINGYUN\Abp\Aliyun\SettingManagement\Localization\Resources\en.json" />
<EmbeddedResource Include="LINGYUN\Abp\Aliyun\SettingManagement\Localization\Resources\zh-Hans.json" />
</ItemGroup>
<ItemGroup>
<PackageReference Include="Volo.Abp.AspNetCore.Mvc" Version="4.3.0" />
<PackageReference Include="Volo.Abp.SettingManagement.Domain" Version="4.3.0" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\..\common\LINGYUN.Abp.Sms.Aliyun\LINGYUN.Abp.Sms.Aliyun.csproj" />
<ProjectReference Include="..\..\settings\LINGYUN.Abp.SettingManagement.Application.Contracts\LINGYUN.Abp.SettingManagement.Application.Contracts.csproj" />
</ItemGroup>
</Project>
<Project Sdk="Microsoft.NET.Sdk">
<Import Project="..\..\..\common.props" />
<PropertyGroup>
<TargetFramework>net5.0</TargetFramework>
<RootNamespace />
</PropertyGroup>
<ItemGroup>
<None Remove="LINGYUN\Abp\Aliyun\SettingManagement\Localization\Resources\en.json" />
<None Remove="LINGYUN\Abp\Aliyun\SettingManagement\Localization\Resources\zh-Hans.json" />
</ItemGroup>
<ItemGroup>
<EmbeddedResource Include="LINGYUN\Abp\Aliyun\SettingManagement\Localization\Resources\en.json" />
<EmbeddedResource Include="LINGYUN\Abp\Aliyun\SettingManagement\Localization\Resources\zh-Hans.json" />
</ItemGroup>
<ItemGroup>
<PackageReference Include="Volo.Abp.AspNetCore.Mvc" Version="4.4.0" />
<PackageReference Include="Volo.Abp.SettingManagement.Domain" Version="4.4.0" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\..\common\LINGYUN.Abp.Sms.Aliyun\LINGYUN.Abp.Sms.Aliyun.csproj" />
<ProjectReference Include="..\..\settings\LINGYUN.Abp.SettingManagement.Application.Contracts\LINGYUN.Abp.SettingManagement.Application.Contracts.csproj" />
</ItemGroup>
</Project>

8
aspnet-core/modules/cloud-aliyun/LINGYUN.Abp.Aliyun/LINGYUN.Abp.Aliyun.csproj

@ -21,10 +21,10 @@
<ItemGroup>
<PackageReference Include="aliyun-net-sdk-core" Version="1.5.10" />
<PackageReference Include="Volo.Abp.Caching" Version="4.3.0" />
<PackageReference Include="Volo.Abp.Localization" Version="4.3.0" />
<PackageReference Include="Volo.Abp.Json" Version="4.3.0" />
<PackageReference Include="Volo.Abp.Settings" Version="4.3.0" />
<PackageReference Include="Volo.Abp.Caching" Version="4.4.0" />
<PackageReference Include="Volo.Abp.Localization" Version="4.4.0" />
<PackageReference Include="Volo.Abp.Json" Version="4.4.0" />
<PackageReference Include="Volo.Abp.Settings" Version="4.4.0" />
</ItemGroup>
</Project>

6
aspnet-core/modules/cloud-tencent/LINGYUN.Abp.Tencent/LINGYUN.Abp.Tencent.csproj

@ -19,9 +19,9 @@
</ItemGroup>
<ItemGroup>
<PackageReference Include="Volo.Abp.Localization" Version="4.3.0" />
<PackageReference Include="Volo.Abp.Json" Version="4.3.0" />
<PackageReference Include="Volo.Abp.Settings" Version="4.3.0" />
<PackageReference Include="Volo.Abp.Localization" Version="4.4.0" />
<PackageReference Include="Volo.Abp.Json" Version="4.4.0" />
<PackageReference Include="Volo.Abp.Settings" Version="4.4.0" />
</ItemGroup>
</Project>

2
aspnet-core/modules/common/LINGYUN.Abp.Aliyun.Authorization/LINGYUN.Abp.Aliyun.Authorization.csproj

@ -8,7 +8,7 @@
</PropertyGroup>
<ItemGroup>
<PackageReference Include="Volo.Abp.Core" Version="4.3.0" />
<PackageReference Include="Volo.Abp.Core" Version="4.4.0" />
</ItemGroup>
</Project>

28
aspnet-core/modules/common/LINGYUN.Abp.AspNetCore.HttpOverrides/LINGYUN.Abp.AspNetCore.HttpOverrides.csproj

@ -1,14 +1,14 @@
<Project Sdk="Microsoft.NET.Sdk">
<Import Project="..\..\..\common.props" />
<PropertyGroup>
<TargetFramework>net5.0</TargetFramework>
<RootNamespace />
</PropertyGroup>
<ItemGroup>
<PackageReference Include="Volo.Abp.AspNetCore" Version="4.3.0" />
</ItemGroup>
</Project>
<Project Sdk="Microsoft.NET.Sdk">
<Import Project="..\..\..\common.props" />
<PropertyGroup>
<TargetFramework>net5.0</TargetFramework>
<RootNamespace />
</PropertyGroup>
<ItemGroup>
<PackageReference Include="Volo.Abp.AspNetCore" Version="4.4.0" />
</ItemGroup>
</Project>

34
aspnet-core/modules/common/LINGYUN.Abp.AspNetCore.Mvc.Client/LINGYUN.Abp.AspNetCore.Mvc.Client.csproj

@ -1,17 +1,17 @@
<Project Sdk="Microsoft.NET.Sdk.Web">
<Import Project="..\..\..\common.props" />
<PropertyGroup>
<TargetFramework>net5.0</TargetFramework>
<RootNamespace />
<OutputType>Library</OutputType>
<GeneratePackageOnBuild>false</GeneratePackageOnBuild>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="Volo.Abp.AspNetCore.Mvc.Client.Common" Version="4.3.0" />
<PackageReference Include="Volo.Abp.EventBus" Version="4.3.0" />
</ItemGroup>
</Project>
<Project Sdk="Microsoft.NET.Sdk.Web">
<Import Project="..\..\..\common.props" />
<PropertyGroup>
<TargetFramework>net5.0</TargetFramework>
<RootNamespace />
<OutputType>Library</OutputType>
<GeneratePackageOnBuild>false</GeneratePackageOnBuild>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="Volo.Abp.AspNetCore.Mvc.Client.Common" Version="4.4.0" />
<PackageReference Include="Volo.Abp.EventBus" Version="4.4.0" />
</ItemGroup>
</Project>

48
aspnet-core/modules/common/LINGYUN.Abp.AspNetCore.Mvc.Validation/LINGYUN.Abp.AspNetCore.Mvc.Validation.csproj

@ -1,24 +1,24 @@
<Project Sdk="Microsoft.NET.Sdk">
<Import Project="..\..\..\common.props" />
<PropertyGroup>
<TargetFramework>net5.0</TargetFramework>
<RootNamespace />
</PropertyGroup>
<ItemGroup>
<None Remove="LINGYUN\Abp\AspNetCore\Mvc\Validation\Localization\MissingFields\en.json" />
<None Remove="LINGYUN\Abp\AspNetCore\Mvc\Validation\Localization\MissingFields\zh-Hans.json" />
</ItemGroup>
<ItemGroup>
<EmbeddedResource Include="LINGYUN\Abp\AspNetCore\Mvc\Validation\Localization\MissingFields\en.json" />
<EmbeddedResource Include="LINGYUN\Abp\AspNetCore\Mvc\Validation\Localization\MissingFields\zh-Hans.json" />
</ItemGroup>
<ItemGroup>
<PackageReference Include="Volo.Abp.AspNetCore.Mvc" Version="4.3.0" />
</ItemGroup>
</Project>
<Project Sdk="Microsoft.NET.Sdk">
<Import Project="..\..\..\common.props" />
<PropertyGroup>
<TargetFramework>net5.0</TargetFramework>
<RootNamespace />
</PropertyGroup>
<ItemGroup>
<None Remove="LINGYUN\Abp\AspNetCore\Mvc\Validation\Localization\MissingFields\en.json" />
<None Remove="LINGYUN\Abp\AspNetCore\Mvc\Validation\Localization\MissingFields\zh-Hans.json" />
</ItemGroup>
<ItemGroup>
<EmbeddedResource Include="LINGYUN\Abp\AspNetCore\Mvc\Validation\Localization\MissingFields\en.json" />
<EmbeddedResource Include="LINGYUN\Abp\AspNetCore\Mvc\Validation\Localization\MissingFields\zh-Hans.json" />
</ItemGroup>
<ItemGroup>
<PackageReference Include="Volo.Abp.AspNetCore.Mvc" Version="4.4.0" />
</ItemGroup>
</Project>

2
aspnet-core/modules/common/LINGYUN.Abp.AspNetCore.SignalR.Protocol.Json/LINGYUN.Abp.AspNetCore.SignalR.Protocol.Json.csproj

@ -9,7 +9,7 @@
<ItemGroup>
<PackageReference Include="Microsoft.AspNetCore.SignalR.Protocols.Json" Version="5.0.*" />
<PackageReference Include="Volo.Abp.AspNetCore.SignalR" Version="4.3.0" />
<PackageReference Include="Volo.Abp.AspNetCore.SignalR" Version="4.4.0" />
</ItemGroup>
</Project>

2
aspnet-core/modules/common/LINGYUN.Abp.AspNetCore.SignalR/LINGYUN.Abp.AspNetCore.SignalR.JwtToken.csproj

@ -8,7 +8,7 @@
</PropertyGroup>
<ItemGroup>
<PackageReference Include="Volo.Abp.AspNetCore.SignalR" Version="4.3.0" />
<PackageReference Include="Volo.Abp.AspNetCore.SignalR" Version="4.4.0" />
</ItemGroup>
</Project>

38
aspnet-core/modules/common/LINGYUN.Abp.BackgroundJobs.Hangfire/LINGYUN.Abp.BackgroundJobs.Hangfire.csproj

@ -1,19 +1,19 @@
<Project Sdk="Microsoft.NET.Sdk">
<Import Project="..\..\..\common.props" />
<PropertyGroup>
<TargetFramework>netstandard2.0</TargetFramework>
<RootNamespace />
</PropertyGroup>
<ItemGroup>
<PackageReference Include="Volo.Abp.HangFire" Version="4.3.0" />
<PackageReference Include="Volo.Abp.BackgroundJobs" Version="4.3.0" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\LINGYUN.Abp.Hangfire.Dashboard\LINGYUN.Abp.Hangfire.Dashboard.csproj" />
</ItemGroup>
</Project>
<Project Sdk="Microsoft.NET.Sdk">
<Import Project="..\..\..\common.props" />
<PropertyGroup>
<TargetFramework>netstandard2.0</TargetFramework>
<RootNamespace />
</PropertyGroup>
<ItemGroup>
<PackageReference Include="Volo.Abp.HangFire" Version="4.4.0" />
<PackageReference Include="Volo.Abp.BackgroundJobs" Version="4.4.0" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\LINGYUN.Abp.Hangfire.Dashboard\LINGYUN.Abp.Hangfire.Dashboard.csproj" />
</ItemGroup>
</Project>

30
aspnet-core/modules/common/LINGYUN.Abp.BackgroundWorkers.Hangfire/LINGYUN.Abp.BackgroundWorkers.Hangfire.csproj

@ -1,15 +1,15 @@
<Project Sdk="Microsoft.NET.Sdk">
<Import Project="..\..\..\common.props" />
<PropertyGroup>
<TargetFramework>netstandard2.0</TargetFramework>
<RootNamespace />
</PropertyGroup>
<ItemGroup>
<PackageReference Include="Volo.Abp.HangFire" Version="4.3.0" />
<PackageReference Include="Volo.Abp.BackgroundWorkers" Version="4.3.0" />
</ItemGroup>
</Project>
<Project Sdk="Microsoft.NET.Sdk">
<Import Project="..\..\..\common.props" />
<PropertyGroup>
<TargetFramework>netstandard2.0</TargetFramework>
<RootNamespace />
</PropertyGroup>
<ItemGroup>
<PackageReference Include="Volo.Abp.HangFire" Version="4.4.0" />
<PackageReference Include="Volo.Abp.BackgroundWorkers" Version="4.4.0" />
</ItemGroup>
</Project>

6
aspnet-core/modules/common/LINGYUN.Abp.BlobStoring.Aliyun/LINGYUN.Abp.BlobStoring.Aliyun.csproj

@ -10,11 +10,11 @@
<ItemGroup>
<PackageReference Include="Aliyun.OSS.SDK.NetCore" Version="2.13.0" />
<PackageReference Include="Volo.Abp.BlobStoring" Version="4.3.0" />
<PackageReference Include="Volo.Abp.BlobStoring" Version="4.4.0" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\..\cloud-aliyun\LINGYUN.Abp.Aliyun\LINGYUN.Abp.Aliyun.csproj" />
<ItemGroup>
<ProjectReference Include="..\..\cloud-aliyun\LINGYUN.Abp.Aliyun\LINGYUN.Abp.Aliyun.csproj" />
</ItemGroup>
</Project>

30
aspnet-core/modules/common/LINGYUN.Abp.Core/LINGYUN.Abp.Core.csproj

@ -1,15 +1,15 @@
<Project Sdk="Microsoft.NET.Sdk">
<Import Project="..\..\..\common.props" />
<PropertyGroup>
<TargetFramework>netstandard2.0</TargetFramework>
<RootNamespace>LINGYUN.Abp</RootNamespace>
<Description>Abp扩展基础库</Description>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="Volo.Abp.Core" Version="4.3.0" />
</ItemGroup>
</Project>
<Project Sdk="Microsoft.NET.Sdk">
<Import Project="..\..\..\common.props" />
<PropertyGroup>
<TargetFramework>netstandard2.0</TargetFramework>
<RootNamespace>LINGYUN.Abp</RootNamespace>
<Description>Abp扩展基础库</Description>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="Volo.Abp.Core" Version="4.4.0" />
</ItemGroup>
</Project>

2
aspnet-core/modules/common/LINGYUN.Abp.DistributedLock.Redis/LINGYUN.Abp.DistributedLock.Redis.csproj

@ -12,7 +12,7 @@
<PackageReference Include="Microsoft.Extensions.Caching.StackExchangeRedis" Version="5.0.0" />
<PackageReference Include="Microsoft.Extensions.Options" Version="5.0.0" />
<PackageReference Include="Polly" Version="7.2.1" />
<PackageReference Include="Volo.Abp.Core" Version="4.3.0" />
<PackageReference Include="Volo.Abp.Core" Version="4.4.0" />
</ItemGroup>
<ItemGroup>

2
aspnet-core/modules/common/LINGYUN.Abp.Domain.Entities.Events/LINGYUN.Abp.Domain.Entities.Events.csproj

@ -6,7 +6,7 @@
</PropertyGroup>
<ItemGroup>
<PackageReference Include="Volo.Abp.Ddd.Domain" Version="4.3.0" />
<PackageReference Include="Volo.Abp.Ddd.Domain" Version="4.4.0" />
</ItemGroup>
</Project>

234
aspnet-core/modules/common/LINGYUN.Abp.EventBus.CAP/DotNetCore/CAP/Processor/AbpCapProcessingServer.cs

@ -1,115 +1,119 @@
using DotNetCore.CAP.Internal;
using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.Logging;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading;
using System.Threading.Tasks;
namespace DotNetCore.CAP.Processor
{
/// <summary>
/// CapProcessingServer
/// </summary>
public class AbpCapProcessingServer : IProcessingServer
{
private readonly CancellationTokenSource _cts;
private readonly ILogger _logger;
private readonly ILoggerFactory _loggerFactory;
private readonly IServiceProvider _provider;
private Task _compositeTask;
private ProcessingContext _context;
private bool _disposed;
/// <summary>
/// CapProcessingServer
/// </summary>
/// <param name="logger"></param>
/// <param name="loggerFactory"></param>
/// <param name="provider"></param>
public AbpCapProcessingServer(
ILogger<AbpCapProcessingServer> logger,
ILoggerFactory loggerFactory,
IServiceProvider provider)
{
_logger = logger;
_loggerFactory = loggerFactory;
_provider = provider;
_cts = new CancellationTokenSource();
}
/// <summary>
/// Start
/// </summary>
public void Start()
{
_logger.LogInformation("Starting the processing server.");
_context = new ProcessingContext(_provider, _cts.Token);
var processorTasks = GetProcessors()
.Select(InfiniteRetry)
.Select(p => p.ProcessAsync(_context));
_compositeTask = Task.WhenAll(processorTasks);
}
/// <summary>
/// Pulse
/// </summary>
public void Pulse()
{
_logger.LogTrace("Pulsing the processor.");
}
/// <summary>
/// Dispose
/// </summary>
public void Dispose()
{
if (_disposed)
{
return;
}
try
{
_disposed = true;
_logger.LogInformation("Shutting down the processing server...");
_cts.Cancel();
_compositeTask?.Wait((int)TimeSpan.FromSeconds(10).TotalMilliseconds);
}
catch (AggregateException ex)
{
var innerEx = ex.InnerExceptions[0];
if (!(innerEx is OperationCanceledException))
{
_logger.LogWarning(innerEx, $"Expected an OperationCanceledException, but found '{innerEx.Message}'.");
}
}
catch (Exception ex)
{
_logger.LogWarning(ex, "An exception was occured when disposing.");
}
finally
{
_logger.LogInformation("### CAP shutdown!");
}
}
private IProcessor InfiniteRetry(IProcessor inner)
{
return new InfiniteRetryProcessor(inner, _loggerFactory);
}
private IProcessor[] GetProcessors()
{
var returnedProcessors = new List<IProcessor>
{
_provider.GetRequiredService<TransportCheckProcessor>(),
_provider.GetRequiredService<MessageNeedToRetryProcessor>(),
};
return returnedProcessors.ToArray();
}
}
}
using DotNetCore.CAP.Internal;
using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.Logging;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading;
using System.Threading.Tasks;
namespace DotNetCore.CAP.Processor
{
/// <summary>
/// CapProcessingServer
/// </summary>
public class AbpCapProcessingServer : IProcessingServer
{
private readonly CancellationTokenSource _cts;
private readonly ILogger _logger;
private readonly ILoggerFactory _loggerFactory;
private readonly IServiceProvider _provider;
private Task _compositeTask;
private ProcessingContext _context;
private bool _disposed;
/// <summary>
/// CapProcessingServer
/// </summary>
/// <param name="logger"></param>
/// <param name="loggerFactory"></param>
/// <param name="provider"></param>
public AbpCapProcessingServer(
ILogger<AbpCapProcessingServer> logger,
ILoggerFactory loggerFactory,
IServiceProvider provider)
{
_logger = logger;
_loggerFactory = loggerFactory;
_provider = provider;
_cts = new CancellationTokenSource();
}
/// <summary>
/// Start
/// </summary>
public void Start(CancellationToken stoppingToken)
{
_logger.LogInformation("Starting the processing server.");
stoppingToken.Register(() =>
{
_cts.Cancel();
});
_context = new ProcessingContext(_provider, _cts.Token);
var processorTasks = GetProcessors()
.Select(InfiniteRetry)
.Select(p => p.ProcessAsync(_context));
_compositeTask = Task.WhenAll(processorTasks);
}
/// <summary>
/// Pulse
/// </summary>
public void Pulse()
{
_logger.LogTrace("Pulsing the processor.");
}
/// <summary>
/// Dispose
/// </summary>
public void Dispose()
{
if (_disposed)
{
return;
}
try
{
_disposed = true;
_logger.LogInformation("Shutting down the processing server...");
_cts.Cancel();
_compositeTask?.Wait((int)TimeSpan.FromSeconds(10).TotalMilliseconds);
}
catch (AggregateException ex)
{
var innerEx = ex.InnerExceptions[0];
if (!(innerEx is OperationCanceledException))
{
_logger.LogWarning(innerEx, $"Expected an OperationCanceledException, but found '{innerEx.Message}'.");
}
}
catch (Exception ex)
{
_logger.LogWarning(ex, "An exception was occured when disposing.");
}
finally
{
_logger.LogInformation("### CAP shutdown!");
}
}
private IProcessor InfiniteRetry(IProcessor inner)
{
return new InfiniteRetryProcessor(inner, _loggerFactory);
}
private IProcessor[] GetProcessors()
{
var returnedProcessors = new List<IProcessor>
{
_provider.GetRequiredService<TransportCheckProcessor>(),
_provider.GetRequiredService<MessageNeedToRetryProcessor>(),
};
return returnedProcessors.ToArray();
}
}
}

40
aspnet-core/modules/common/LINGYUN.Abp.EventBus.CAP/LINGYUN.Abp.EventBus.CAP.csproj

@ -1,20 +1,20 @@
<Project Sdk="Microsoft.NET.Sdk">
<Import Project="..\..\..\common.props" />
<PropertyGroup>
<TargetFramework>netstandard2.1</TargetFramework>
<RootNamespace />
<Description>Cap分布式事件总线</Description>
<GenerateDocumentationFile>true</GenerateDocumentationFile>
<DocumentationFile>$(SolutionDir)modules\common\LINGYUN.Abp.EventBus.CAP\LINGYUN.Abp.EventBus.CAP.xml</DocumentationFile>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="DotNetCore.CAP" Version="5.1.0" />
<PackageReference Include="Volo.Abp.BackgroundWorkers" Version="4.3.0" />
<PackageReference Include="Volo.Abp.EventBus" Version="4.3.0" />
<PackageReference Include="Volo.Abp.Json" Version="4.3.0" />
</ItemGroup>
</Project>
<Project Sdk="Microsoft.NET.Sdk">
<Import Project="..\..\..\common.props" />
<PropertyGroup>
<TargetFramework>netstandard2.1</TargetFramework>
<RootNamespace />
<Description>Cap分布式事件总线</Description>
<GenerateDocumentationFile>true</GenerateDocumentationFile>
<DocumentationFile>$(SolutionDir)modules\common\LINGYUN.Abp.EventBus.CAP\LINGYUN.Abp.EventBus.CAP.xml</DocumentationFile>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="DotNetCore.CAP" Version="5.1.2" />
<PackageReference Include="Volo.Abp.BackgroundWorkers" Version="4.4.0" />
<PackageReference Include="Volo.Abp.EventBus" Version="4.4.0" />
<PackageReference Include="Volo.Abp.Json" Version="4.4.0" />
</ItemGroup>
</Project>

911
aspnet-core/modules/common/LINGYUN.Abp.EventBus.CAP/LINGYUN.Abp.EventBus.CAP.xml

@ -1,455 +1,456 @@
<?xml version="1.0"?>
<doc>
<assembly>
<name>LINGYUN.Abp.EventBus.CAP</name>
</assembly>
<members>
<member name="T:DotNetCore.CAP.ConsumerServiceSelector">
<summary>
消费者查找器
</summary>
</member>
<member name="P:DotNetCore.CAP.ConsumerServiceSelector.CapOptions">
<summary>
CAP配置
</summary>
</member>
<member name="P:DotNetCore.CAP.ConsumerServiceSelector.AbpDistributedEventBusOptions">
<summary>
Abp分布式事件配置
</summary>
</member>
<member name="P:DotNetCore.CAP.ConsumerServiceSelector.ServiceProvider">
<summary>
服务提供者
</summary>
</member>
<member name="M:DotNetCore.CAP.ConsumerServiceSelector.#ctor(System.IServiceProvider,Microsoft.Extensions.Options.IOptions{DotNetCore.CAP.CapOptions},Microsoft.Extensions.Options.IOptions{Volo.Abp.EventBus.Distributed.AbpDistributedEventBusOptions})">
<summary>
Creates a new <see cref="T:DotNetCore.CAP.Internal.ConsumerServiceSelector" />.
</summary>
</member>
<member name="M:DotNetCore.CAP.ConsumerServiceSelector.FindConsumersFromInterfaceTypes(System.IServiceProvider)">
<summary>
查找消费者集合
</summary>
<param name="provider"></param>
<returns></returns>
</member>
<member name="M:DotNetCore.CAP.ConsumerServiceSelector.GetHandlerDescription(System.Type,System.Type)">
<summary>
获取事件处理器集合
</summary>
<param name="eventType"></param>
<param name="typeInfo"></param>
<returns></returns>
</member>
<member name="T:DotNetCore.CAP.Processor.AbpCapExpiresMessageCleanupBackgroundWorker">
<summary>
过期消息清理任务
</summary>
</member>
<member name="P:DotNetCore.CAP.Processor.AbpCapExpiresMessageCleanupBackgroundWorker.Options">
<summary>
过期消息清理配置
</summary>
</member>
<member name="P:DotNetCore.CAP.Processor.AbpCapExpiresMessageCleanupBackgroundWorker.Initializer">
<summary>
Initializer
</summary>
</member>
<member name="P:DotNetCore.CAP.Processor.AbpCapExpiresMessageCleanupBackgroundWorker.Storage">
<summary>
Storage
</summary>
</member>
<member name="M:DotNetCore.CAP.Processor.AbpCapExpiresMessageCleanupBackgroundWorker.#ctor(Volo.Abp.Threading.AbpAsyncTimer,DotNetCore.CAP.Persistence.IDataStorage,DotNetCore.CAP.Persistence.IStorageInitializer,Microsoft.Extensions.Options.IOptions{LINGYUN.Abp.EventBus.CAP.AbpCAPEventBusOptions},Microsoft.Extensions.DependencyInjection.IServiceScopeFactory)">
<summary>
创建过期消息清理任务
</summary>
<param name="timer"></param>
<param name="storage"></param>
<param name="initializer"></param>
<param name="options"></param>
<param name="serviceScopeFactory"></param>
</member>
<member name="M:DotNetCore.CAP.Processor.AbpCapExpiresMessageCleanupBackgroundWorker.DoWorkAsync(Volo.Abp.BackgroundWorkers.PeriodicBackgroundWorkerContext)">
<summary>
异步执行任务
</summary>
<param name="workerContext"></param>
<returns></returns>
</member>
<member name="T:DotNetCore.CAP.Processor.AbpCapProcessingServer">
<summary>
CapProcessingServer
</summary>
</member>
<member name="M:DotNetCore.CAP.Processor.AbpCapProcessingServer.#ctor(Microsoft.Extensions.Logging.ILogger{DotNetCore.CAP.Processor.AbpCapProcessingServer},Microsoft.Extensions.Logging.ILoggerFactory,System.IServiceProvider)">
<summary>
CapProcessingServer
</summary>
<param name="logger"></param>
<param name="loggerFactory"></param>
<param name="provider"></param>
</member>
<member name="M:DotNetCore.CAP.Processor.AbpCapProcessingServer.Start">
<summary>
Start
</summary>
</member>
<member name="M:DotNetCore.CAP.Processor.AbpCapProcessingServer.Pulse">
<summary>
Pulse
</summary>
</member>
<member name="M:DotNetCore.CAP.Processor.AbpCapProcessingServer.Dispose">
<summary>
Dispose
</summary>
</member>
<member name="T:LINGYUN.Abp.EventBus.CAP.AbpCAPEventBusModule">
<summary>
AbpCAPEventBusModule
</summary>
</member>
<member name="M:LINGYUN.Abp.EventBus.CAP.AbpCAPEventBusModule.ConfigureServices(Volo.Abp.Modularity.ServiceConfigurationContext)">
<summary>
ConfigureServices
</summary>
<param name="context"></param>
</member>
<member name="M:LINGYUN.Abp.EventBus.CAP.AbpCAPEventBusModule.OnApplicationInitialization(Volo.Abp.ApplicationInitializationContext)">
<summary>
OnApplicationInitialization
</summary>
<param name="context"></param>
</member>
<member name="T:LINGYUN.Abp.EventBus.CAP.AbpCAPEventBusOptions">
<summary>
过期消息清理配置项
</summary>
</member>
<member name="P:LINGYUN.Abp.EventBus.CAP.AbpCAPEventBusOptions.NotifyFailedCallback">
<summary>
发布消息处理失败通知
default: false
</summary>
</member>
<member name="P:LINGYUN.Abp.EventBus.CAP.AbpCAPEventBusOptions.CleanUpExpiresMessageBatch">
<summary>
批量清理数量
default: 1000
</summary>
</member>
<member name="P:LINGYUN.Abp.EventBus.CAP.AbpCAPEventBusOptions.CleanUpExpiresMessageInterval">
<summary>
执行间隔(ms)
default: 3600000 (1 hours)
</summary>
</member>
<member name="T:LINGYUN.Abp.EventBus.CAP.AbpCAPExecutionFailedException">
<summary>
AbpECAPExecutionFailedException
</summary>
</member>
<member name="P:LINGYUN.Abp.EventBus.CAP.AbpCAPExecutionFailedException.MessageType">
<summary>
MessageType
</summary>
</member>
<member name="P:LINGYUN.Abp.EventBus.CAP.AbpCAPExecutionFailedException.Origin">
<summary>
Message
</summary>
</member>
<member name="M:LINGYUN.Abp.EventBus.CAP.AbpCAPExecutionFailedException.#ctor(DotNetCore.CAP.Messages.MessageType,DotNetCore.CAP.Messages.Message)">
<summary>
constructor
</summary>
<param name="messageType"></param>
<param name="origin"></param>
</member>
<member name="M:LINGYUN.Abp.EventBus.CAP.AbpCAPExecutionFailedException.#ctor(DotNetCore.CAP.Messages.MessageType,DotNetCore.CAP.Messages.Message,System.String)">
<summary>
constructor
</summary>
<param name="messageType"></param>
<param name="origin"></param>
<param name="message"></param>
</member>
<member name="M:LINGYUN.Abp.EventBus.CAP.AbpCAPExecutionFailedException.#ctor(DotNetCore.CAP.Messages.MessageType,DotNetCore.CAP.Messages.Message,System.String,System.Exception)">
<summary>
constructor
</summary>
<param name="messageType"></param>
<param name="origin"></param>
<param name="message"></param>
<param name="innerException"></param>
</member>
<member name="T:LINGYUN.Abp.EventBus.CAP.AbpCAPMessageExtensions">
<summary>
CAP消息扩展
</summary>
</member>
<member name="M:LINGYUN.Abp.EventBus.CAP.AbpCAPMessageExtensions.TryGetTenantId(DotNetCore.CAP.Messages.Message,System.Nullable{System.Guid}@)">
<summary>
尝试获取消息标头中的租户标识
</summary>
<param name="message"></param>
<param name="tenantId"></param>
<returns></returns>
</member>
<member name="M:LINGYUN.Abp.EventBus.CAP.AbpCAPMessageExtensions.GetTenantIdOrNull(DotNetCore.CAP.Messages.Message)">
<summary>
获取消息标头中的租户标识
</summary>
<param name="message"></param>
<returns></returns>
</member>
<member name="T:LINGYUN.Abp.EventBus.CAP.AbpCAPSubscribeInvoker">
<summary>
重写 ISubscribeInvoker 实现 Abp 租户集成
</summary>
</member>
<member name="M:LINGYUN.Abp.EventBus.CAP.AbpCAPSubscribeInvoker.#ctor(Microsoft.Extensions.Logging.ILoggerFactory,System.IServiceProvider,DotNetCore.CAP.Serialization.ISerializer,Volo.Abp.MultiTenancy.ICurrentTenant)">
<summary>
AbpCAPSubscribeInvoker
</summary>
<param name="loggerFactory"></param>
<param name="serviceProvider"></param>
<param name="serializer"></param>
<param name="currentTenant"></param>
</member>
<member name="M:LINGYUN.Abp.EventBus.CAP.AbpCAPSubscribeInvoker.InvokeAsync(DotNetCore.CAP.Internal.ConsumerContext,System.Threading.CancellationToken)">
<summary>
调用订阅者方法
</summary>
<param name="context"></param>
<param name="cancellationToken"></param>
<returns></returns>
</member>
<member name="M:LINGYUN.Abp.EventBus.CAP.AbpCAPSubscribeInvoker.GetInstance(System.IServiceProvider,DotNetCore.CAP.Internal.ConsumerContext)">
<summary>
获取事件处理类实例
</summary>
<param name="provider"></param>
<param name="context"></param>
<returns></returns>
</member>
<member name="M:LINGYUN.Abp.EventBus.CAP.AbpCAPSubscribeInvoker.ExecuteWithParameterAsync(LINGYUN.Abp.EventBus.CAP.Internal.ObjectMethodExecutor,System.Object,System.Object[])">
<summary>
通过给定的类型实例与参数调用订阅者方法
</summary>
<param name="executor"></param>
<param name="class"></param>
<param name="parameter"></param>
<returns></returns>
</member>
<member name="T:LINGYUN.Abp.EventBus.CAP.CAPDistributedEventBus">
<summary>
CAP分布式事件总线
</summary>
</member>
<member name="P:LINGYUN.Abp.EventBus.CAP.CAPDistributedEventBus.AbpDistributedEventBusOptions">
<summary>
Abp分布式事件总线配置
</summary>
</member>
<member name="F:LINGYUN.Abp.EventBus.CAP.CAPDistributedEventBus.CapPublisher">
<summary>
CAP消息发布接口
</summary>
</member>
<member name="P:LINGYUN.Abp.EventBus.CAP.CAPDistributedEventBus.CustomDistributedEventSubscriber">
<summary>
自定义事件注册接口
</summary>
</member>
<member name="P:LINGYUN.Abp.EventBus.CAP.CAPDistributedEventBus.HandlerFactories">
<summary>
本地事件处理器工厂对象集合
</summary>
</member>
<member name="P:LINGYUN.Abp.EventBus.CAP.CAPDistributedEventBus.EventTypes">
<summary>
本地事件集合
</summary>
</member>
<member name="P:LINGYUN.Abp.EventBus.CAP.CAPDistributedEventBus.CurrentUser">
<summary>
当前用户
</summary>
</member>
<member name="P:LINGYUN.Abp.EventBus.CAP.CAPDistributedEventBus.CurrentClient">
<summary>
当前客户端
</summary>
</member>
<member name="P:LINGYUN.Abp.EventBus.CAP.CAPDistributedEventBus.CancellationTokenProvider">
<summary>
取消令牌
</summary>
</member>
<member name="M:LINGYUN.Abp.EventBus.CAP.CAPDistributedEventBus.#ctor(Microsoft.Extensions.DependencyInjection.IServiceScopeFactory,Microsoft.Extensions.Options.IOptions{Volo.Abp.EventBus.Distributed.AbpDistributedEventBusOptions},DotNetCore.CAP.ICapPublisher,Volo.Abp.Users.ICurrentUser,Volo.Abp.Clients.ICurrentClient,Volo.Abp.MultiTenancy.ICurrentTenant,Volo.Abp.Threading.ICancellationTokenProvider,LINGYUN.Abp.EventBus.CAP.ICustomDistributedEventSubscriber)">
<summary>
constructor
</summary>
<param name="serviceScopeFactory"></param>
<param name="distributedEventBusOptions"></param>
<param name="capPublisher"></param>
<param name="currentUser"></param>
<param name="currentTenant"></param>
<param name="currentClient"></param>
<param name="cancellationTokenProvider"></param>
<param name="customDistributedEventSubscriber"></param>
</member>
<member name="M:LINGYUN.Abp.EventBus.CAP.CAPDistributedEventBus.Subscribe(System.Type,Volo.Abp.EventBus.IEventHandlerFactory)">
<summary>
订阅事件
</summary>
<param name="eventType"></param>
<param name="factory"></param>
<returns></returns>
</member>
<member name="M:LINGYUN.Abp.EventBus.CAP.CAPDistributedEventBus.Unsubscribe``1(System.Func{``0,System.Threading.Tasks.Task})">
<summary>
退订事件
</summary>
<typeparam name="TEvent">事件类型</typeparam>
<param name="action"></param>
</member>
<member name="M:LINGYUN.Abp.EventBus.CAP.CAPDistributedEventBus.Unsubscribe(System.Type,Volo.Abp.EventBus.IEventHandler)">
<summary>
退订事件
</summary>
<param name="eventType">事件类型</param>
<param name="handler">事件处理器</param>
</member>
<member name="M:LINGYUN.Abp.EventBus.CAP.CAPDistributedEventBus.Unsubscribe(System.Type,Volo.Abp.EventBus.IEventHandlerFactory)">
<summary>
退订事件
</summary>
<param name="eventType">事件类型</param>
<param name="factory">事件处理器工厂</param>
</member>
<member name="M:LINGYUN.Abp.EventBus.CAP.CAPDistributedEventBus.UnsubscribeAll(System.Type)">
<summary>
退订所有事件
</summary>
<param name="eventType">事件类型</param>
</member>
<member name="M:LINGYUN.Abp.EventBus.CAP.CAPDistributedEventBus.Subscribe``1(Volo.Abp.EventBus.Distributed.IDistributedEventHandler{``0})">
<summary>
订阅事件
</summary>
<typeparam name="TEvent">事件类型</typeparam>
<param name="handler">事件处理器</param>
<returns></returns>
</member>
<member name="M:LINGYUN.Abp.EventBus.CAP.CAPDistributedEventBus.PublishAsync(System.Type,System.Object)">
<summary>
发布事件
</summary>
<param name="eventType">事件类型</param>
<param name="eventData">事件数据对象</param>
<returns></returns>
</member>
<member name="M:LINGYUN.Abp.EventBus.CAP.CAPDistributedEventBus.GetHandlerFactories(System.Type)">
<summary>
获取事件处理器工厂列表
</summary>
<param name="eventType"></param>
<returns></returns>
</member>
<member name="T:LINGYUN.Abp.EventBus.CAP.ICustomDistributedEventSubscriber">
<summary>
自定义事件订阅者
</summary>
</member>
<member name="M:LINGYUN.Abp.EventBus.CAP.ICustomDistributedEventSubscriber.Subscribe(System.Type,Volo.Abp.EventBus.IEventHandlerFactory)">
<summary>
订阅事件
</summary>
<param name="eventType"></param>
<param name="factory"></param>
</member>
<member name="M:LINGYUN.Abp.EventBus.CAP.ICustomDistributedEventSubscriber.UnSubscribe(System.Type,Volo.Abp.EventBus.IEventHandlerFactory)">
<summary>
取消订阅
</summary>
<param name="eventType"></param>
<param name="factory"></param>
</member>
<member name="M:LINGYUN.Abp.EventBus.CAP.Internal.ObjectMethodExecutor.Execute(System.Object,System.Object[])">
<summary>
Executes the configured method on <paramref name="target" />. This can be used whether or not
the configured method is asynchronous.
</summary>
<remarks>
Even if the target method is asynchronous, it's desirable to invoke it using Execute rather than
ExecuteAsync if you know at compile time what the return type is, because then you can directly
"await" that value (via a cast), and then the generated code will be able to reference the
resulting awaitable as a value-typed variable. If you use ExecuteAsync instead, the generated
code will have to treat the resulting awaitable as a boxed object, because it doesn't know at
compile time what type it would be.
</remarks>
<param name="target">The object whose method is to be executed.</param>
<param name="parameters">Parameters to pass to the method.</param>
<returns>The method return value.</returns>
</member>
<member name="M:LINGYUN.Abp.EventBus.CAP.Internal.ObjectMethodExecutor.ExecuteAsync(System.Object,System.Object[])">
<summary>
Executes the configured method on <paramref name="target" />. This can only be used if the configured
method is asynchronous.
</summary>
<remarks>
If you don't know at compile time the type of the method's returned awaitable, you can use ExecuteAsync,
which supplies an awaitable-of-object. This always works, but can incur several extra heap allocations
as compared with using Execute and then using "await" on the result value typecasted to the known
awaitable type. The possible extra heap allocations are for:
1. The custom awaitable (though usually there's a heap allocation for this anyway, since normally
it's a reference type, and you normally create a new instance per call).
2. The custom awaiter (whether or not it's a value type, since if it's not, you need a new instance
of it, and if it is, it will have to be boxed so the calling code can reference it as an object).
3. The async result value, if it's a value type (it has to be boxed as an object, since the calling
code doesn't know what type it's going to be).
</remarks>
<param name="target">The object whose method is to be executed.</param>
<param name="parameters">Parameters to pass to the method.</param>
<returns>An object that you can "await" to get the method return value.</returns>
</member>
<member name="T:LINGYUN.Abp.EventBus.CAP.Internal.ObjectMethodExecutorAwaitable">
<summary>
Provides a common awaitable structure that <see cref="M:LINGYUN.Abp.EventBus.CAP.Internal.ObjectMethodExecutor.ExecuteAsync(System.Object,System.Object[])" /> can
return, regardless of whether the underlying value is a System.Task, an FSharpAsync, or an
application-defined custom awaitable.
</summary>
</member>
<member name="T:LINGYUN.Abp.EventBus.CAP.Internal.ObjectMethodExecutorFSharpSupport">
<summary>
Helper for detecting whether a given type is FSharpAsync`1, and if so, supplying
an <see cref="T:System.Linq.Expressions.Expression" /> for mapping instances of that type to a C# awaitable.
</summary>
<remarks>
The main design goal here is to avoid taking a compile-time dependency on
FSharp.Core.dll, because non-F# applications wouldn't use it. So all the references
to FSharp types have to be constructed dynamically at runtime.
</remarks>
</member>
<member name="T:Microsoft.Extensions.DependencyInjection.ServiceCollectionExtensions">
<summary>
CAP ServiceCollectionExtensions
</summary>
</member>
<member name="M:Microsoft.Extensions.DependencyInjection.ServiceCollectionExtensions.AddCAPEventBus(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.Action{DotNetCore.CAP.CapOptions})">
<summary>
Adds and configures the consistence services for the consistency.
</summary>
<param name="services"></param>
<param name="capAction"></param>
<returns></returns>
</member>
</members>
</doc>
<?xml version="1.0"?>
<doc>
<assembly>
<name>LINGYUN.Abp.EventBus.CAP</name>
</assembly>
<members>
<member name="T:DotNetCore.CAP.ConsumerServiceSelector">
<summary>
消费者查找器
</summary>
</member>
<member name="P:DotNetCore.CAP.ConsumerServiceSelector.CapOptions">
<summary>
CAP配置
</summary>
</member>
<member name="P:DotNetCore.CAP.ConsumerServiceSelector.AbpDistributedEventBusOptions">
<summary>
Abp分布式事件配置
</summary>
</member>
<member name="P:DotNetCore.CAP.ConsumerServiceSelector.ServiceProvider">
<summary>
服务提供者
</summary>
</member>
<member name="M:DotNetCore.CAP.ConsumerServiceSelector.#ctor(System.IServiceProvider,Microsoft.Extensions.Options.IOptions{DotNetCore.CAP.CapOptions},Microsoft.Extensions.Options.IOptions{Volo.Abp.EventBus.Distributed.AbpDistributedEventBusOptions})">
<summary>
Creates a new <see cref="T:DotNetCore.CAP.Internal.ConsumerServiceSelector" />.
</summary>
</member>
<member name="M:DotNetCore.CAP.ConsumerServiceSelector.FindConsumersFromInterfaceTypes(System.IServiceProvider)">
<summary>
查找消费者集合
</summary>
<param name="provider"></param>
<returns></returns>
</member>
<member name="M:DotNetCore.CAP.ConsumerServiceSelector.GetHandlerDescription(System.Type,System.Type)">
<summary>
获取事件处理器集合
</summary>
<param name="eventType"></param>
<param name="typeInfo"></param>
<returns></returns>
</member>
<member name="T:DotNetCore.CAP.Processor.AbpCapExpiresMessageCleanupBackgroundWorker">
<summary>
过期消息清理任务
</summary>
</member>
<member name="P:DotNetCore.CAP.Processor.AbpCapExpiresMessageCleanupBackgroundWorker.Options">
<summary>
过期消息清理配置
</summary>
</member>
<member name="P:DotNetCore.CAP.Processor.AbpCapExpiresMessageCleanupBackgroundWorker.Initializer">
<summary>
Initializer
</summary>
</member>
<member name="P:DotNetCore.CAP.Processor.AbpCapExpiresMessageCleanupBackgroundWorker.Storage">
<summary>
Storage
</summary>
</member>
<member name="M:DotNetCore.CAP.Processor.AbpCapExpiresMessageCleanupBackgroundWorker.#ctor(Volo.Abp.Threading.AbpAsyncTimer,DotNetCore.CAP.Persistence.IDataStorage,DotNetCore.CAP.Persistence.IStorageInitializer,Microsoft.Extensions.Options.IOptions{LINGYUN.Abp.EventBus.CAP.AbpCAPEventBusOptions},Microsoft.Extensions.DependencyInjection.IServiceScopeFactory)">
<summary>
创建过期消息清理任务
</summary>
<param name="timer"></param>
<param name="storage"></param>
<param name="initializer"></param>
<param name="options"></param>
<param name="serviceScopeFactory"></param>
</member>
<member name="M:DotNetCore.CAP.Processor.AbpCapExpiresMessageCleanupBackgroundWorker.DoWorkAsync(Volo.Abp.BackgroundWorkers.PeriodicBackgroundWorkerContext)">
<summary>
异步执行任务
</summary>
<param name="workerContext"></param>
<returns></returns>
</member>
<member name="T:DotNetCore.CAP.Processor.AbpCapProcessingServer">
<summary>
CapProcessingServer
</summary>
</member>
<member name="M:DotNetCore.CAP.Processor.AbpCapProcessingServer.#ctor(Microsoft.Extensions.Logging.ILogger{DotNetCore.CAP.Processor.AbpCapProcessingServer},Microsoft.Extensions.Logging.ILoggerFactory,System.IServiceProvider)">
<summary>
CapProcessingServer
</summary>
<param name="logger"></param>
<param name="loggerFactory"></param>
<param name="provider"></param>
</member>
<member name="M:DotNetCore.CAP.Processor.AbpCapProcessingServer.Start(System.Threading.CancellationToken)">
<summary>
Start
</summary>
</member>
<member name="M:DotNetCore.CAP.Processor.AbpCapProcessingServer.Pulse">
<summary>
Pulse
</summary>
</member>
<member name="M:DotNetCore.CAP.Processor.AbpCapProcessingServer.Dispose">
<summary>
Dispose
</summary>
</member>
<member name="T:LINGYUN.Abp.EventBus.CAP.AbpCAPEventBusModule">
<summary>
AbpCAPEventBusModule
</summary>
</member>
<member name="M:LINGYUN.Abp.EventBus.CAP.AbpCAPEventBusModule.ConfigureServices(Volo.Abp.Modularity.ServiceConfigurationContext)">
<summary>
ConfigureServices
</summary>
<param name="context"></param>
</member>
<member name="M:LINGYUN.Abp.EventBus.CAP.AbpCAPEventBusModule.OnApplicationInitialization(Volo.Abp.ApplicationInitializationContext)">
<summary>
OnApplicationInitialization
</summary>
<param name="context"></param>
</member>
<member name="T:LINGYUN.Abp.EventBus.CAP.AbpCAPEventBusOptions">
<summary>
过期消息清理配置项
</summary>
</member>
<member name="P:LINGYUN.Abp.EventBus.CAP.AbpCAPEventBusOptions.NotifyFailedCallback">
<summary>
发布消息处理失败通知
default: false
</summary>
</member>
<member name="P:LINGYUN.Abp.EventBus.CAP.AbpCAPEventBusOptions.CleanUpExpiresMessageBatch">
<summary>
批量清理数量
default: 1000
</summary>
</member>
<member name="P:LINGYUN.Abp.EventBus.CAP.AbpCAPEventBusOptions.CleanUpExpiresMessageInterval">
<summary>
执行间隔(ms)
default: 3600000 (1 hours)
</summary>
</member>
<member name="T:LINGYUN.Abp.EventBus.CAP.AbpCAPExecutionFailedException">
<summary>
AbpECAPExecutionFailedException
</summary>
</member>
<member name="P:LINGYUN.Abp.EventBus.CAP.AbpCAPExecutionFailedException.MessageType">
<summary>
MessageType
</summary>
</member>
<member name="P:LINGYUN.Abp.EventBus.CAP.AbpCAPExecutionFailedException.Origin">
<summary>
Message
</summary>
</member>
<member name="M:LINGYUN.Abp.EventBus.CAP.AbpCAPExecutionFailedException.#ctor(DotNetCore.CAP.Messages.MessageType,DotNetCore.CAP.Messages.Message)">
<summary>
constructor
</summary>
<param name="messageType"></param>
<param name="origin"></param>
</member>
<member name="M:LINGYUN.Abp.EventBus.CAP.AbpCAPExecutionFailedException.#ctor(DotNetCore.CAP.Messages.MessageType,DotNetCore.CAP.Messages.Message,System.String)">
<summary>
constructor
</summary>
<param name="messageType"></param>
<param name="origin"></param>
<param name="message"></param>
</member>
<member name="M:LINGYUN.Abp.EventBus.CAP.AbpCAPExecutionFailedException.#ctor(DotNetCore.CAP.Messages.MessageType,DotNetCore.CAP.Messages.Message,System.String,System.Exception)">
<summary>
constructor
</summary>
<param name="messageType"></param>
<param name="origin"></param>
<param name="message"></param>
<param name="innerException"></param>
</member>
<member name="T:LINGYUN.Abp.EventBus.CAP.AbpCAPMessageExtensions">
<summary>
CAP消息扩展
</summary>
</member>
<member name="M:LINGYUN.Abp.EventBus.CAP.AbpCAPMessageExtensions.TryGetTenantId(DotNetCore.CAP.Messages.Message,System.Nullable{System.Guid}@)">
<summary>
尝试获取消息标头中的租户标识
</summary>
<param name="message"></param>
<param name="tenantId"></param>
<returns></returns>
</member>
<member name="M:LINGYUN.Abp.EventBus.CAP.AbpCAPMessageExtensions.GetTenantIdOrNull(DotNetCore.CAP.Messages.Message)">
<summary>
获取消息标头中的租户标识
</summary>
<param name="message"></param>
<returns></returns>
</member>
<member name="T:LINGYUN.Abp.EventBus.CAP.AbpCAPSubscribeInvoker">
<summary>
重写 ISubscribeInvoker 实现 Abp 租户集成
</summary>
</member>
<member name="M:LINGYUN.Abp.EventBus.CAP.AbpCAPSubscribeInvoker.#ctor(Microsoft.Extensions.Logging.ILoggerFactory,System.IServiceProvider,DotNetCore.CAP.Serialization.ISerializer,Volo.Abp.MultiTenancy.ICurrentTenant)">
<summary>
AbpCAPSubscribeInvoker
</summary>
<param name="loggerFactory"></param>
<param name="serviceProvider"></param>
<param name="serializer"></param>
<param name="currentTenant"></param>
</member>
<member name="M:LINGYUN.Abp.EventBus.CAP.AbpCAPSubscribeInvoker.InvokeAsync(DotNetCore.CAP.Internal.ConsumerContext,System.Threading.CancellationToken)">
<summary>
调用订阅者方法
</summary>
<param name="context"></param>
<param name="cancellationToken"></param>
<returns></returns>
</member>
<member name="M:LINGYUN.Abp.EventBus.CAP.AbpCAPSubscribeInvoker.GetInstance(System.IServiceProvider,DotNetCore.CAP.Internal.ConsumerContext)">
<summary>
获取事件处理类实例
</summary>
<param name="provider"></param>
<param name="context"></param>
<returns></returns>
</member>
<member name="M:LINGYUN.Abp.EventBus.CAP.AbpCAPSubscribeInvoker.ExecuteWithParameterAsync(LINGYUN.Abp.EventBus.CAP.Internal.ObjectMethodExecutor,System.Object,System.Object[])">
<summary>
通过给定的类型实例与参数调用订阅者方法
</summary>
<param name="executor"></param>
<param name="class"></param>
<param name="parameter"></param>
<returns></returns>
</member>
<member name="T:LINGYUN.Abp.EventBus.CAP.CAPDistributedEventBus">
<summary>
CAP分布式事件总线
</summary>
</member>
<member name="P:LINGYUN.Abp.EventBus.CAP.CAPDistributedEventBus.AbpDistributedEventBusOptions">
<summary>
Abp分布式事件总线配置
</summary>
</member>
<member name="F:LINGYUN.Abp.EventBus.CAP.CAPDistributedEventBus.CapPublisher">
<summary>
CAP消息发布接口
</summary>
</member>
<member name="P:LINGYUN.Abp.EventBus.CAP.CAPDistributedEventBus.CustomDistributedEventSubscriber">
<summary>
自定义事件注册接口
</summary>
</member>
<member name="P:LINGYUN.Abp.EventBus.CAP.CAPDistributedEventBus.HandlerFactories">
<summary>
本地事件处理器工厂对象集合
</summary>
</member>
<member name="P:LINGYUN.Abp.EventBus.CAP.CAPDistributedEventBus.EventTypes">
<summary>
本地事件集合
</summary>
</member>
<member name="P:LINGYUN.Abp.EventBus.CAP.CAPDistributedEventBus.CurrentUser">
<summary>
当前用户
</summary>
</member>
<member name="P:LINGYUN.Abp.EventBus.CAP.CAPDistributedEventBus.CurrentClient">
<summary>
当前客户端
</summary>
</member>
<member name="P:LINGYUN.Abp.EventBus.CAP.CAPDistributedEventBus.CancellationTokenProvider">
<summary>
取消令牌
</summary>
</member>
<member name="M:LINGYUN.Abp.EventBus.CAP.CAPDistributedEventBus.#ctor(Microsoft.Extensions.DependencyInjection.IServiceScopeFactory,Microsoft.Extensions.Options.IOptions{Volo.Abp.EventBus.Distributed.AbpDistributedEventBusOptions},DotNetCore.CAP.ICapPublisher,Volo.Abp.Users.ICurrentUser,Volo.Abp.Clients.ICurrentClient,Volo.Abp.MultiTenancy.ICurrentTenant,Volo.Abp.EventBus.IEventErrorHandler,Volo.Abp.Threading.ICancellationTokenProvider,LINGYUN.Abp.EventBus.CAP.ICustomDistributedEventSubscriber)">
<summary>
constructor
</summary>
<param name="serviceScopeFactory"></param>
<param name="distributedEventBusOptions"></param>
<param name="capPublisher"></param>
<param name="currentUser"></param>
<param name="currentClient"></param>
<param name="currentTenant"></param>
<param name="eventErrorHandler"></param>
<param name="cancellationTokenProvider"></param>
<param name="customDistributedEventSubscriber"></param>
</member>
<member name="M:LINGYUN.Abp.EventBus.CAP.CAPDistributedEventBus.Subscribe(System.Type,Volo.Abp.EventBus.IEventHandlerFactory)">
<summary>
订阅事件
</summary>
<param name="eventType"></param>
<param name="factory"></param>
<returns></returns>
</member>
<member name="M:LINGYUN.Abp.EventBus.CAP.CAPDistributedEventBus.Unsubscribe``1(System.Func{``0,System.Threading.Tasks.Task})">
<summary>
退订事件
</summary>
<typeparam name="TEvent">事件类型</typeparam>
<param name="action"></param>
</member>
<member name="M:LINGYUN.Abp.EventBus.CAP.CAPDistributedEventBus.Unsubscribe(System.Type,Volo.Abp.EventBus.IEventHandler)">
<summary>
退订事件
</summary>
<param name="eventType">事件类型</param>
<param name="handler">事件处理器</param>
</member>
<member name="M:LINGYUN.Abp.EventBus.CAP.CAPDistributedEventBus.Unsubscribe(System.Type,Volo.Abp.EventBus.IEventHandlerFactory)">
<summary>
退订事件
</summary>
<param name="eventType">事件类型</param>
<param name="factory">事件处理器工厂</param>
</member>
<member name="M:LINGYUN.Abp.EventBus.CAP.CAPDistributedEventBus.UnsubscribeAll(System.Type)">
<summary>
退订所有事件
</summary>
<param name="eventType">事件类型</param>
</member>
<member name="M:LINGYUN.Abp.EventBus.CAP.CAPDistributedEventBus.Subscribe``1(Volo.Abp.EventBus.Distributed.IDistributedEventHandler{``0})">
<summary>
订阅事件
</summary>
<typeparam name="TEvent">事件类型</typeparam>
<param name="handler">事件处理器</param>
<returns></returns>
</member>
<member name="M:LINGYUN.Abp.EventBus.CAP.CAPDistributedEventBus.PublishAsync(System.Type,System.Object)">
<summary>
发布事件
</summary>
<param name="eventType">事件类型</param>
<param name="eventData">事件数据对象</param>
<returns></returns>
</member>
<member name="M:LINGYUN.Abp.EventBus.CAP.CAPDistributedEventBus.GetHandlerFactories(System.Type)">
<summary>
获取事件处理器工厂列表
</summary>
<param name="eventType"></param>
<returns></returns>
</member>
<member name="T:LINGYUN.Abp.EventBus.CAP.ICustomDistributedEventSubscriber">
<summary>
自定义事件订阅者
</summary>
</member>
<member name="M:LINGYUN.Abp.EventBus.CAP.ICustomDistributedEventSubscriber.Subscribe(System.Type,Volo.Abp.EventBus.IEventHandlerFactory)">
<summary>
订阅事件
</summary>
<param name="eventType"></param>
<param name="factory"></param>
</member>
<member name="M:LINGYUN.Abp.EventBus.CAP.ICustomDistributedEventSubscriber.UnSubscribe(System.Type,Volo.Abp.EventBus.IEventHandlerFactory)">
<summary>
取消订阅
</summary>
<param name="eventType"></param>
<param name="factory"></param>
</member>
<member name="M:LINGYUN.Abp.EventBus.CAP.Internal.ObjectMethodExecutor.Execute(System.Object,System.Object[])">
<summary>
Executes the configured method on <paramref name="target" />. This can be used whether or not
the configured method is asynchronous.
</summary>
<remarks>
Even if the target method is asynchronous, it's desirable to invoke it using Execute rather than
ExecuteAsync if you know at compile time what the return type is, because then you can directly
"await" that value (via a cast), and then the generated code will be able to reference the
resulting awaitable as a value-typed variable. If you use ExecuteAsync instead, the generated
code will have to treat the resulting awaitable as a boxed object, because it doesn't know at
compile time what type it would be.
</remarks>
<param name="target">The object whose method is to be executed.</param>
<param name="parameters">Parameters to pass to the method.</param>
<returns>The method return value.</returns>
</member>
<member name="M:LINGYUN.Abp.EventBus.CAP.Internal.ObjectMethodExecutor.ExecuteAsync(System.Object,System.Object[])">
<summary>
Executes the configured method on <paramref name="target" />. This can only be used if the configured
method is asynchronous.
</summary>
<remarks>
If you don't know at compile time the type of the method's returned awaitable, you can use ExecuteAsync,
which supplies an awaitable-of-object. This always works, but can incur several extra heap allocations
as compared with using Execute and then using "await" on the result value typecasted to the known
awaitable type. The possible extra heap allocations are for:
1. The custom awaitable (though usually there's a heap allocation for this anyway, since normally
it's a reference type, and you normally create a new instance per call).
2. The custom awaiter (whether or not it's a value type, since if it's not, you need a new instance
of it, and if it is, it will have to be boxed so the calling code can reference it as an object).
3. The async result value, if it's a value type (it has to be boxed as an object, since the calling
code doesn't know what type it's going to be).
</remarks>
<param name="target">The object whose method is to be executed.</param>
<param name="parameters">Parameters to pass to the method.</param>
<returns>An object that you can "await" to get the method return value.</returns>
</member>
<member name="T:LINGYUN.Abp.EventBus.CAP.Internal.ObjectMethodExecutorAwaitable">
<summary>
Provides a common awaitable structure that <see cref="M:LINGYUN.Abp.EventBus.CAP.Internal.ObjectMethodExecutor.ExecuteAsync(System.Object,System.Object[])" /> can
return, regardless of whether the underlying value is a System.Task, an FSharpAsync, or an
application-defined custom awaitable.
</summary>
</member>
<member name="T:LINGYUN.Abp.EventBus.CAP.Internal.ObjectMethodExecutorFSharpSupport">
<summary>
Helper for detecting whether a given type is FSharpAsync`1, and if so, supplying
an <see cref="T:System.Linq.Expressions.Expression" /> for mapping instances of that type to a C# awaitable.
</summary>
<remarks>
The main design goal here is to avoid taking a compile-time dependency on
FSharp.Core.dll, because non-F# applications wouldn't use it. So all the references
to FSharp types have to be constructed dynamically at runtime.
</remarks>
</member>
<member name="T:Microsoft.Extensions.DependencyInjection.ServiceCollectionExtensions">
<summary>
CAP ServiceCollectionExtensions
</summary>
</member>
<member name="M:Microsoft.Extensions.DependencyInjection.ServiceCollectionExtensions.AddCAPEventBus(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.Action{DotNetCore.CAP.CapOptions})">
<summary>
Adds and configures the consistence services for the consistency.
</summary>
<param name="services"></param>
<param name="capAction"></param>
<returns></returns>
</member>
</members>
</doc>

490
aspnet-core/modules/common/LINGYUN.Abp.EventBus.CAP/LINGYUN/Abp/EventBus/CAP/CAPDistributedEventBus.cs

@ -1,244 +1,246 @@
using DotNetCore.CAP;
using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.Options;
using System;
using System.Collections.Concurrent;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using Volo.Abp;
using Volo.Abp.Clients;
using Volo.Abp.DependencyInjection;
using Volo.Abp.EventBus;
using Volo.Abp.EventBus.Distributed;
using Volo.Abp.MultiTenancy;
using Volo.Abp.Threading;
using Volo.Abp.Users;
namespace LINGYUN.Abp.EventBus.CAP
{
/// <summary>
/// CAP分布式事件总线
/// </summary>
[Dependency(ServiceLifetime.Singleton, ReplaceServices = true)]
[ExposeServices(typeof(IDistributedEventBus), typeof(CAPDistributedEventBus))]
public class CAPDistributedEventBus : EventBusBase, IDistributedEventBus
{
/// <summary>
/// Abp分布式事件总线配置
/// </summary>
protected AbpDistributedEventBusOptions AbpDistributedEventBusOptions { get; }
/// <summary>
/// CAP消息发布接口
/// </summary>
protected readonly ICapPublisher CapPublisher;
/// <summary>
/// 自定义事件注册接口
/// </summary>
protected ICustomDistributedEventSubscriber CustomDistributedEventSubscriber { get; }
/// <summary>
/// 本地事件处理器工厂对象集合
/// </summary>
protected ConcurrentDictionary<Type, List<IEventHandlerFactory>> HandlerFactories { get; }
/// <summary>
/// 本地事件集合
/// </summary>
protected ConcurrentDictionary<string, Type> EventTypes { get; }
/// <summary>
/// 当前用户
/// </summary>
protected ICurrentUser CurrentUser { get; }
/// <summary>
/// 当前客户端
/// </summary>
protected ICurrentClient CurrentClient { get; }
/// <summary>
/// 取消令牌
/// </summary>
protected ICancellationTokenProvider CancellationTokenProvider { get; }
/// <summary>
/// constructor
/// </summary>
/// <param name="serviceScopeFactory"></param>
/// <param name="distributedEventBusOptions"></param>
/// <param name="capPublisher"></param>
/// <param name="currentUser"></param>
/// <param name="currentTenant"></param>
/// <param name="currentClient"></param>
/// <param name="cancellationTokenProvider"></param>
/// <param name="customDistributedEventSubscriber"></param>
public CAPDistributedEventBus(IServiceScopeFactory serviceScopeFactory,
IOptions<AbpDistributedEventBusOptions> distributedEventBusOptions,
ICapPublisher capPublisher,
ICurrentUser currentUser,
ICurrentClient currentClient,
ICurrentTenant currentTenant,
ICancellationTokenProvider cancellationTokenProvider,
ICustomDistributedEventSubscriber customDistributedEventSubscriber)
: base(serviceScopeFactory, currentTenant)
{
CapPublisher = capPublisher;
CurrentUser = currentUser;
CurrentClient = currentClient;
CancellationTokenProvider = cancellationTokenProvider;
CustomDistributedEventSubscriber = customDistributedEventSubscriber;
AbpDistributedEventBusOptions = distributedEventBusOptions.Value;
HandlerFactories = new ConcurrentDictionary<Type, List<IEventHandlerFactory>>();
EventTypes = new ConcurrentDictionary<string, Type>();
}
/// <summary>
/// 订阅事件
/// </summary>
/// <param name="eventType"></param>
/// <param name="factory"></param>
/// <returns></returns>
public override IDisposable Subscribe(Type eventType, IEventHandlerFactory factory)
{
// 自定义的事件订阅者,可以不需要事件注册的事件类型
CustomDistributedEventSubscriber.Subscribe(eventType, factory);
return new DisposeAction(() => CustomDistributedEventSubscriber.UnSubscribe(eventType, factory));
}
/// <summary>
/// 退订事件
/// </summary>
/// <typeparam name="TEvent">事件类型</typeparam>
/// <param name="action"></param>
public override void Unsubscribe<TEvent>(Func<TEvent, Task> action)
{
Check.NotNull(action, nameof(action));
GetOrCreateHandlerFactories(typeof(TEvent))
.Locking(factories =>
{
factories.RemoveAll(
factory =>
{
if (!(factory is SingleInstanceHandlerFactory singleInstanceFactory))
{
return false;
}
if (!(singleInstanceFactory.HandlerInstance is ActionEventHandler<TEvent> actionHandler))
{
return false;
}
return actionHandler.Action == action;
});
});
}
/// <summary>
/// 退订事件
/// </summary>
/// <param name="eventType">事件类型</param>
/// <param name="handler">事件处理器</param>
public override void Unsubscribe(Type eventType, IEventHandler handler)
{
GetOrCreateHandlerFactories(eventType)
.Locking(factories =>
{
factories.RemoveAll(
factory =>
factory is SingleInstanceHandlerFactory &&
(factory as SingleInstanceHandlerFactory).HandlerInstance == handler
);
});
}
/// <summary>
/// 退订事件
/// </summary>
/// <param name="eventType">事件类型</param>
/// <param name="factory">事件处理器工厂</param>
public override void Unsubscribe(Type eventType, IEventHandlerFactory factory)
{
GetOrCreateHandlerFactories(eventType).Locking(factories => factories.Remove(factory));
CustomDistributedEventSubscriber.UnSubscribe(eventType, factory);
}
/// <summary>
/// 退订所有事件
/// </summary>
/// <param name="eventType">事件类型</param>
public override void UnsubscribeAll(Type eventType)
{
GetOrCreateHandlerFactories(eventType).Locking(factories => factories.Clear());
}
/// <summary>
/// 订阅事件
/// </summary>
/// <typeparam name="TEvent">事件类型</typeparam>
/// <param name="handler">事件处理器</param>
/// <returns></returns>
public IDisposable Subscribe<TEvent>(IDistributedEventHandler<TEvent> handler) where TEvent : class
{
return Subscribe(typeof(TEvent), handler);
}
/// <summary>
/// 发布事件
/// </summary>
/// <param name="eventType">事件类型</param>
/// <param name="eventData">事件数据对象</param>
/// <returns></returns>
public override async Task PublishAsync(Type eventType, object eventData)
{
var eventName = EventNameAttribute.GetNameOrDefault(eventType);
await CapPublisher
.PublishAsync(
eventName, eventData,
new Dictionary<string, string>
{
{ AbpCAPHeaders.UserId, CurrentUser.Id?.ToString() ?? "" },
{ AbpCAPHeaders.ClientId, CurrentClient.Id ?? "" },
{ AbpCAPHeaders.TenantId, CurrentTenant.Id?.ToString() ?? "" },
},
CancellationTokenProvider.FallbackToProvider());
}
/// <summary>
/// 获取事件处理器工厂列表
/// </summary>
/// <param name="eventType"></param>
/// <returns></returns>
protected override IEnumerable<EventTypeWithEventHandlerFactories> GetHandlerFactories(Type eventType)
{
var handlerFactoryList = new List<EventTypeWithEventHandlerFactories>();
foreach (var handlerFactory in HandlerFactories.Where(hf => ShouldTriggerEventForHandler(eventType, hf.Key)))
{
handlerFactoryList.Add(new EventTypeWithEventHandlerFactories(handlerFactory.Key, handlerFactory.Value));
}
return handlerFactoryList.ToArray();
}
private List<IEventHandlerFactory> GetOrCreateHandlerFactories(Type eventType)
{
return HandlerFactories.GetOrAdd(
eventType,
type =>
{
var eventName = EventNameAttribute.GetNameOrDefault(type);
EventTypes[eventName] = type;
return new List<IEventHandlerFactory>();
}
);
}
private static bool ShouldTriggerEventForHandler(Type targetEventType, Type handlerEventType)
{
//Should trigger same type
if (handlerEventType == targetEventType)
{
return true;
}
//TODO: Support inheritance? But it does not support on subscription to RabbitMq!
//Should trigger for inherited types
if (handlerEventType.IsAssignableFrom(targetEventType))
{
return true;
}
return false;
}
}
}
using DotNetCore.CAP;
using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.Options;
using System;
using System.Collections.Concurrent;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using Volo.Abp;
using Volo.Abp.Clients;
using Volo.Abp.DependencyInjection;
using Volo.Abp.EventBus;
using Volo.Abp.EventBus.Distributed;
using Volo.Abp.MultiTenancy;
using Volo.Abp.Threading;
using Volo.Abp.Users;
namespace LINGYUN.Abp.EventBus.CAP
{
/// <summary>
/// CAP分布式事件总线
/// </summary>
[Dependency(ServiceLifetime.Singleton, ReplaceServices = true)]
[ExposeServices(typeof(IDistributedEventBus), typeof(CAPDistributedEventBus))]
public class CAPDistributedEventBus : EventBusBase, IDistributedEventBus
{
/// <summary>
/// Abp分布式事件总线配置
/// </summary>
protected AbpDistributedEventBusOptions AbpDistributedEventBusOptions { get; }
/// <summary>
/// CAP消息发布接口
/// </summary>
protected readonly ICapPublisher CapPublisher;
/// <summary>
/// 自定义事件注册接口
/// </summary>
protected ICustomDistributedEventSubscriber CustomDistributedEventSubscriber { get; }
/// <summary>
/// 本地事件处理器工厂对象集合
/// </summary>
protected ConcurrentDictionary<Type, List<IEventHandlerFactory>> HandlerFactories { get; }
/// <summary>
/// 本地事件集合
/// </summary>
protected ConcurrentDictionary<string, Type> EventTypes { get; }
/// <summary>
/// 当前用户
/// </summary>
protected ICurrentUser CurrentUser { get; }
/// <summary>
/// 当前客户端
/// </summary>
protected ICurrentClient CurrentClient { get; }
/// <summary>
/// 取消令牌
/// </summary>
protected ICancellationTokenProvider CancellationTokenProvider { get; }
/// <summary>
/// constructor
/// </summary>
/// <param name="serviceScopeFactory"></param>
/// <param name="distributedEventBusOptions"></param>
/// <param name="capPublisher"></param>
/// <param name="currentUser"></param>
/// <param name="currentClient"></param>
/// <param name="currentTenant"></param>
/// <param name="eventErrorHandler"></param>
/// <param name="cancellationTokenProvider"></param>
/// <param name="customDistributedEventSubscriber"></param>
public CAPDistributedEventBus(IServiceScopeFactory serviceScopeFactory,
IOptions<AbpDistributedEventBusOptions> distributedEventBusOptions,
ICapPublisher capPublisher,
ICurrentUser currentUser,
ICurrentClient currentClient,
ICurrentTenant currentTenant,
IEventErrorHandler eventErrorHandler,
ICancellationTokenProvider cancellationTokenProvider,
ICustomDistributedEventSubscriber customDistributedEventSubscriber)
: base(serviceScopeFactory, currentTenant, eventErrorHandler)
{
CapPublisher = capPublisher;
CurrentUser = currentUser;
CurrentClient = currentClient;
CancellationTokenProvider = cancellationTokenProvider;
CustomDistributedEventSubscriber = customDistributedEventSubscriber;
AbpDistributedEventBusOptions = distributedEventBusOptions.Value;
HandlerFactories = new ConcurrentDictionary<Type, List<IEventHandlerFactory>>();
EventTypes = new ConcurrentDictionary<string, Type>();
}
/// <summary>
/// 订阅事件
/// </summary>
/// <param name="eventType"></param>
/// <param name="factory"></param>
/// <returns></returns>
public override IDisposable Subscribe(Type eventType, IEventHandlerFactory factory)
{
// 自定义的事件订阅者,可以不需要事件注册的事件类型
CustomDistributedEventSubscriber.Subscribe(eventType, factory);
return new DisposeAction(() => CustomDistributedEventSubscriber.UnSubscribe(eventType, factory));
}
/// <summary>
/// 退订事件
/// </summary>
/// <typeparam name="TEvent">事件类型</typeparam>
/// <param name="action"></param>
public override void Unsubscribe<TEvent>(Func<TEvent, Task> action)
{
Check.NotNull(action, nameof(action));
GetOrCreateHandlerFactories(typeof(TEvent))
.Locking(factories =>
{
factories.RemoveAll(
factory =>
{
if (!(factory is SingleInstanceHandlerFactory singleInstanceFactory))
{
return false;
}
if (!(singleInstanceFactory.HandlerInstance is ActionEventHandler<TEvent> actionHandler))
{
return false;
}
return actionHandler.Action == action;
});
});
}
/// <summary>
/// 退订事件
/// </summary>
/// <param name="eventType">事件类型</param>
/// <param name="handler">事件处理器</param>
public override void Unsubscribe(Type eventType, IEventHandler handler)
{
GetOrCreateHandlerFactories(eventType)
.Locking(factories =>
{
factories.RemoveAll(
factory =>
factory is SingleInstanceHandlerFactory &&
(factory as SingleInstanceHandlerFactory).HandlerInstance == handler
);
});
}
/// <summary>
/// 退订事件
/// </summary>
/// <param name="eventType">事件类型</param>
/// <param name="factory">事件处理器工厂</param>
public override void Unsubscribe(Type eventType, IEventHandlerFactory factory)
{
GetOrCreateHandlerFactories(eventType).Locking(factories => factories.Remove(factory));
CustomDistributedEventSubscriber.UnSubscribe(eventType, factory);
}
/// <summary>
/// 退订所有事件
/// </summary>
/// <param name="eventType">事件类型</param>
public override void UnsubscribeAll(Type eventType)
{
GetOrCreateHandlerFactories(eventType).Locking(factories => factories.Clear());
}
/// <summary>
/// 订阅事件
/// </summary>
/// <typeparam name="TEvent">事件类型</typeparam>
/// <param name="handler">事件处理器</param>
/// <returns></returns>
public IDisposable Subscribe<TEvent>(IDistributedEventHandler<TEvent> handler) where TEvent : class
{
return Subscribe(typeof(TEvent), handler);
}
/// <summary>
/// 发布事件
/// </summary>
/// <param name="eventType">事件类型</param>
/// <param name="eventData">事件数据对象</param>
/// <returns></returns>
public override async Task PublishAsync(Type eventType, object eventData)
{
var eventName = EventNameAttribute.GetNameOrDefault(eventType);
await CapPublisher
.PublishAsync(
eventName, eventData,
new Dictionary<string, string>
{
{ AbpCAPHeaders.UserId, CurrentUser.Id?.ToString() ?? "" },
{ AbpCAPHeaders.ClientId, CurrentClient.Id ?? "" },
{ AbpCAPHeaders.TenantId, CurrentTenant.Id?.ToString() ?? "" },
},
CancellationTokenProvider.FallbackToProvider());
}
/// <summary>
/// 获取事件处理器工厂列表
/// </summary>
/// <param name="eventType"></param>
/// <returns></returns>
protected override IEnumerable<EventTypeWithEventHandlerFactories> GetHandlerFactories(Type eventType)
{
var handlerFactoryList = new List<EventTypeWithEventHandlerFactories>();
foreach (var handlerFactory in HandlerFactories.Where(hf => ShouldTriggerEventForHandler(eventType, hf.Key)))
{
handlerFactoryList.Add(new EventTypeWithEventHandlerFactories(handlerFactory.Key, handlerFactory.Value));
}
return handlerFactoryList.ToArray();
}
private List<IEventHandlerFactory> GetOrCreateHandlerFactories(Type eventType)
{
return HandlerFactories.GetOrAdd(
eventType,
type =>
{
var eventName = EventNameAttribute.GetNameOrDefault(type);
EventTypes[eventName] = type;
return new List<IEventHandlerFactory>();
}
);
}
private static bool ShouldTriggerEventForHandler(Type targetEventType, Type handlerEventType)
{
//Should trigger same type
if (handlerEventType == targetEventType)
{
return true;
}
//TODO: Support inheritance? But it does not support on subscription to RabbitMq!
//Should trigger for inherited types
if (handlerEventType.IsAssignableFrom(targetEventType))
{
return true;
}
return false;
}
}
}

2
aspnet-core/modules/common/LINGYUN.Abp.ExceptionHandling.Emailing/LINGYUN.Abp.ExceptionHandling.Emailing.csproj

@ -22,7 +22,7 @@
</ItemGroup>
<ItemGroup>
<PackageReference Include="Volo.Abp.Emailing" Version="4.3.0" />
<PackageReference Include="Volo.Abp.Emailing" Version="4.4.0" />
</ItemGroup>
<ItemGroup>

2
aspnet-core/modules/common/LINGYUN.Abp.ExceptionHandling.Notifications/LINGYUN.Abp.ExceptionHandling.Notifications.csproj

@ -18,7 +18,7 @@
</ItemGroup>
<ItemGroup>
<PackageReference Include="Volo.Abp.Localization" Version="4.3.0" />
<PackageReference Include="Volo.Abp.Localization" Version="4.4.0" />
</ItemGroup>

2
aspnet-core/modules/common/LINGYUN.Abp.ExceptionHandling/LINGYUN.Abp.ExceptionHandling.csproj

@ -8,7 +8,7 @@
</PropertyGroup>
<ItemGroup>
<PackageReference Include="Volo.Abp.Localization" Version="4.3.0" />
<PackageReference Include="Volo.Abp.Localization" Version="4.4.0" />
</ItemGroup>
</Project>

30
aspnet-core/modules/common/LINGYUN.Abp.Features.LimitValidation.Redis.Client/LINGYUN.Abp.Features.LimitValidation.Redis.Client.csproj

@ -1,15 +1,15 @@
<Project Sdk="Microsoft.NET.Sdk">
<Import Project="..\..\..\common.props" />
<PropertyGroup>
<TargetFramework>netstandard2.0</TargetFramework>
<RootNamespace />
<Description>功能限制验证组件Redis客户端格式实现</Description>
</PropertyGroup>
<ItemGroup>
<ProjectReference Include="..\LINGYUN.Abp.Features.LimitValidation.Redis\LINGYUN.Abp.Features.LimitValidation.Redis.csproj" />
</ItemGroup>
</Project>
<Project Sdk="Microsoft.NET.Sdk">
<Import Project="..\..\..\common.props" />
<PropertyGroup>
<TargetFramework>netstandard2.0</TargetFramework>
<RootNamespace />
<Description>功能限制验证组件Redis客户端格式实现</Description>
</PropertyGroup>
<ItemGroup>
<ProjectReference Include="..\LINGYUN.Abp.Features.LimitValidation.Redis\LINGYUN.Abp.Features.LimitValidation.Redis.csproj" />
</ItemGroup>
</Project>

2
aspnet-core/modules/common/LINGYUN.Abp.Features.LimitValidation.Redis/LINGYUN.Abp.Features.LimitValidation.Redis.csproj

@ -11,7 +11,7 @@
<ItemGroup>
<PackageReference Include="Microsoft.Extensions.Options" Version="5.0.0" />
<PackageReference Include="StackExchange.Redis" Version="2.0.593" />
<PackageReference Include="Volo.Abp.Core" Version="4.3.0" />
<PackageReference Include="Volo.Abp.Core" Version="4.4.0" />
</ItemGroup>
<ItemGroup>

2
aspnet-core/modules/common/LINGYUN.Abp.Features.LimitValidation/LINGYUN.Abp.Features.LimitValidation.csproj

@ -18,7 +18,7 @@
</ItemGroup>
<ItemGroup>
<PackageReference Include="Volo.Abp.Features" Version="4.3.0" />
<PackageReference Include="Volo.Abp.Features" Version="4.4.0" />
</ItemGroup>
</Project>

50
aspnet-core/modules/common/LINGYUN.Abp.Hangfire.Dashboard/LINGYUN.Abp.Hangfire.Dashboard.csproj

@ -1,25 +1,25 @@
<Project Sdk="Microsoft.NET.Sdk">
<Import Project="..\..\..\common.props" />
<PropertyGroup>
<TargetFramework>netstandard2.0</TargetFramework>
<RootNamespace />
</PropertyGroup>
<ItemGroup>
<None Remove="LINGYUN\Abp\Hangfire\Dashboard\Localization\Resources\en.json" />
<None Remove="LINGYUN\Abp\Hangfire\Dashboard\Localization\Resources\zh-Hans.json" />
</ItemGroup>
<ItemGroup>
<EmbeddedResource Include="LINGYUN\Abp\Hangfire\Dashboard\Localization\Resources\en.json" />
<EmbeddedResource Include="LINGYUN\Abp\Hangfire\Dashboard\Localization\Resources\zh-Hans.json" />
</ItemGroup>
<ItemGroup>
<PackageReference Include="Volo.Abp.Authorization" Version="4.3.0" />
<PackageReference Include="Volo.Abp.Hangfire" Version="4.3.0" />
</ItemGroup>
</Project>
<Project Sdk="Microsoft.NET.Sdk">
<Import Project="..\..\..\common.props" />
<PropertyGroup>
<TargetFramework>netstandard2.0</TargetFramework>
<RootNamespace />
</PropertyGroup>
<ItemGroup>
<None Remove="LINGYUN\Abp\Hangfire\Dashboard\Localization\Resources\en.json" />
<None Remove="LINGYUN\Abp\Hangfire\Dashboard\Localization\Resources\zh-Hans.json" />
</ItemGroup>
<ItemGroup>
<EmbeddedResource Include="LINGYUN\Abp\Hangfire\Dashboard\Localization\Resources\en.json" />
<EmbeddedResource Include="LINGYUN\Abp\Hangfire\Dashboard\Localization\Resources\zh-Hans.json" />
</ItemGroup>
<ItemGroup>
<PackageReference Include="Volo.Abp.Authorization" Version="4.4.0" />
<PackageReference Include="Volo.Abp.Hangfire" Version="4.4.0" />
</ItemGroup>
</Project>

30
aspnet-core/modules/common/LINGYUN.Abp.Hangfire.MySqlStorage/LINGYUN.Abp.Hangfire.Storage.MySql.csproj

@ -1,15 +1,15 @@
<Project Sdk="Microsoft.NET.Sdk">
<Import Project="..\..\..\common.props" />
<PropertyGroup>
<TargetFramework>netstandard2.0</TargetFramework>
<RootNamespace />
</PropertyGroup>
<ItemGroup>
<PackageReference Include="Hangfire.MySqlStorage" Version="2.0.3" />
<PackageReference Include="Volo.Abp.HangFire" Version="4.3.0" />
</ItemGroup>
</Project>
<Project Sdk="Microsoft.NET.Sdk">
<Import Project="..\..\..\common.props" />
<PropertyGroup>
<TargetFramework>netstandard2.0</TargetFramework>
<RootNamespace />
</PropertyGroup>
<ItemGroup>
<PackageReference Include="Hangfire.MySqlStorage" Version="2.0.3" />
<PackageReference Include="Volo.Abp.HangFire" Version="4.4.0" />
</ItemGroup>
</Project>

4
aspnet-core/modules/common/LINGYUN.Abp.Hangfire.Storage.SqlServer/LINGYUN.Abp.Hangfire.Storage.SqlServer.csproj

@ -8,8 +8,8 @@
</PropertyGroup>
<ItemGroup>
<PackageReference Include="HangFire.SqlServer" Version="1.7.22" />
<PackageReference Include="Volo.Abp.HangFire" Version="4.3.0" />
<PackageReference Include="HangFire.SqlServer" Version="1.7.24" />
<PackageReference Include="Volo.Abp.HangFire" Version="4.4.0" />
</ItemGroup>
</Project>

4
aspnet-core/modules/common/LINGYUN.Abp.IM.SignalR/LINGYUN.Abp.IM.SignalR.csproj

@ -8,8 +8,8 @@
</PropertyGroup>
<ItemGroup>
<PackageReference Include="Volo.Abp.AspNetCore.SignalR" Version="4.3.0" />
<PackageReference Include="Volo.Abp.Ddd.Application.Contracts" Version="4.3.0" />
<PackageReference Include="Volo.Abp.AspNetCore.SignalR" Version="4.4.0" />
<PackageReference Include="Volo.Abp.Ddd.Application.Contracts" Version="4.4.0" />
</ItemGroup>
<ItemGroup>

8
aspnet-core/modules/common/LINGYUN.Abp.IM/LINGYUN.Abp.IM.csproj

@ -8,12 +8,12 @@
</PropertyGroup>
<ItemGroup>
<PackageReference Include="Volo.Abp.Auditing" Version="4.3.0" />
<PackageReference Include="Volo.Abp.EventBus" Version="4.3.0" />
<PackageReference Include="Volo.Abp.Auditing" Version="4.4.0" />
<PackageReference Include="Volo.Abp.EventBus" Version="4.4.0" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\LINGYUN.Abp.RealTime\LINGYUN.Abp.RealTime.csproj" />
<ItemGroup>
<ProjectReference Include="..\LINGYUN.Abp.RealTime\LINGYUN.Abp.RealTime.csproj" />
</ItemGroup>
</Project>

4
aspnet-core/modules/common/LINGYUN.Abp.IdentityModel/LINGYUN.Abp.IdentityModel.csproj

@ -13,8 +13,8 @@
</PropertyGroup>
<ItemGroup>
<PackageReference Include="Volo.Abp.Caching" Version="4.3.0" />
<PackageReference Include="Volo.Abp.IdentityModel" Version="4.3.0" />
<PackageReference Include="Volo.Abp.Caching" Version="4.4.0" />
<PackageReference Include="Volo.Abp.IdentityModel" Version="4.4.0" />
</ItemGroup>
</Project>

30
aspnet-core/modules/common/LINGYUN.Abp.Localization.Dynamic/LINGYUN.Abp.Localization.Dynamic.csproj

@ -1,15 +1,15 @@
<Project Sdk="Microsoft.NET.Sdk">
<Import Project="..\..\..\common.props" />
<PropertyGroup>
<TargetFramework>netstandard2.0</TargetFramework>
<RootNamespace />
</PropertyGroup>
<ItemGroup>
<PackageReference Include="Volo.Abp.EventBus" Version="4.3.0" />
<PackageReference Include="Volo.Abp.Localization" Version="4.3.0" />
</ItemGroup>
</Project>
<Project Sdk="Microsoft.NET.Sdk">
<Import Project="..\..\..\common.props" />
<PropertyGroup>
<TargetFramework>netstandard2.0</TargetFramework>
<RootNamespace />
</PropertyGroup>
<ItemGroup>
<PackageReference Include="Volo.Abp.EventBus" Version="4.4.0" />
<PackageReference Include="Volo.Abp.Localization" Version="4.4.0" />
</ItemGroup>
</Project>

58
aspnet-core/modules/common/LINGYUN.Abp.Location.Amap/LINGYUN.Abp.Location.Amap.csproj

@ -1,29 +1,29 @@
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>netstandard2.0</TargetFramework>
<RootNamespace />
</PropertyGroup>
<ItemGroup>
<None Remove="LINGYUN\Abp\Location\Amap\Localization\Resources\en.json" />
<None Remove="LINGYUN\Abp\Location\Amap\Localization\Resources\zh-Hans.json" />
</ItemGroup>
<ItemGroup>
<EmbeddedResource Include="LINGYUN\Abp\Location\Amap\Localization\Resources\en.json" />
<EmbeddedResource Include="LINGYUN\Abp\Location\Amap\Localization\Resources\zh-Hans.json" />
</ItemGroup>
<ItemGroup>
<PackageReference Include="Microsoft.Extensions.Http.Polly" Version="3.1.2" />
<PackageReference Include="Volo.Abp.Json" Version="4.3.0" />
<PackageReference Include="Volo.Abp.Localization" Version="4.3.0" />
<PackageReference Include="Volo.Abp.Threading" Version="4.3.0" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\LINGYUN.Abp.Location\LINGYUN.Abp.Location.csproj" />
</ItemGroup>
</Project>
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>netstandard2.0</TargetFramework>
<RootNamespace />
</PropertyGroup>
<ItemGroup>
<None Remove="LINGYUN\Abp\Location\Amap\Localization\Resources\en.json" />
<None Remove="LINGYUN\Abp\Location\Amap\Localization\Resources\zh-Hans.json" />
</ItemGroup>
<ItemGroup>
<EmbeddedResource Include="LINGYUN\Abp\Location\Amap\Localization\Resources\en.json" />
<EmbeddedResource Include="LINGYUN\Abp\Location\Amap\Localization\Resources\zh-Hans.json" />
</ItemGroup>
<ItemGroup>
<PackageReference Include="Microsoft.Extensions.Http.Polly" Version="3.1.2" />
<PackageReference Include="Volo.Abp.Json" Version="4.4.0" />
<PackageReference Include="Volo.Abp.Localization" Version="4.4.0" />
<PackageReference Include="Volo.Abp.Threading" Version="4.4.0" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\LINGYUN.Abp.Location\LINGYUN.Abp.Location.csproj" />
</ItemGroup>
</Project>

6
aspnet-core/modules/common/LINGYUN.Abp.Location.Baidu/LINGYUN.Abp.Location.Baidu.csproj

@ -20,9 +20,9 @@
<ItemGroup>
<PackageReference Include="Microsoft.Extensions.Http.Polly" Version="5.0.0" />
<PackageReference Include="Volo.Abp.Localization" Version="4.3.0" />
<PackageReference Include="Volo.Abp.Json" Version="4.3.0" />
<PackageReference Include="Volo.Abp.Threading" Version="4.3.0" />
<PackageReference Include="Volo.Abp.Localization" Version="4.4.0" />
<PackageReference Include="Volo.Abp.Json" Version="4.4.0" />
<PackageReference Include="Volo.Abp.Threading" Version="4.4.0" />
</ItemGroup>
<ItemGroup>

6
aspnet-core/modules/common/LINGYUN.Abp.Location.Tencent/LINGYUN.Abp.Location.Tencent.csproj

@ -20,9 +20,9 @@
<ItemGroup>
<PackageReference Include="Microsoft.Extensions.Http.Polly" Version="5.0.0" />
<PackageReference Include="Volo.Abp.Localization" Version="4.3.0" />
<PackageReference Include="Volo.Abp.Json" Version="4.3.0" />
<PackageReference Include="Volo.Abp.Threading" Version="4.3.0" />
<PackageReference Include="Volo.Abp.Localization" Version="4.4.0" />
<PackageReference Include="Volo.Abp.Json" Version="4.4.0" />
<PackageReference Include="Volo.Abp.Threading" Version="4.4.0" />
</ItemGroup>
<ItemGroup>

2
aspnet-core/modules/common/LINGYUN.Abp.Location/LINGYUN.Abp.Location.csproj

@ -9,7 +9,7 @@
</PropertyGroup>
<ItemGroup>
<PackageReference Include="Volo.Abp.Core" Version="4.3.0" />
<PackageReference Include="Volo.Abp.Core" Version="4.4.0" />
</ItemGroup>
</Project>

4
aspnet-core/modules/common/LINGYUN.Abp.Notifications.SignalR/LINGYUN.Abp.Notifications.SignalR.csproj

@ -8,8 +8,8 @@
</PropertyGroup>
<ItemGroup>
<PackageReference Include="Volo.Abp.AspNetCore.SignalR" Version="4.3.0" />
<PackageReference Include="Volo.Abp.Ddd.Application" Version="4.3.0" />
<PackageReference Include="Volo.Abp.AspNetCore.SignalR" Version="4.4.0" />
<PackageReference Include="Volo.Abp.Ddd.Application" Version="4.4.0" />
</ItemGroup>
<ItemGroup>

2
aspnet-core/modules/common/LINGYUN.Abp.Notifications.Sms/LINGYUN.Abp.Notifications.Sms.csproj

@ -8,7 +8,7 @@
</PropertyGroup>
<ItemGroup>
<PackageReference Include="Volo.Abp.Sms" Version="4.3.0" />
<PackageReference Include="Volo.Abp.Sms" Version="4.4.0" />
</ItemGroup>
<ItemGroup>

28
aspnet-core/modules/common/LINGYUN.Abp.Notifications.Workers/LINGYUN.Abp.Notifications.Workers.csproj

@ -1,14 +1,14 @@
<Project Sdk="Microsoft.NET.Sdk">
<Import Project="..\..\..\common.props" />
<PropertyGroup>
<TargetFramework>netstandard2.0</TargetFramework>
<RootNamespace />
</PropertyGroup>
<ItemGroup>
<ProjectReference Include="..\LINGYUN.Abp.Notifications\LINGYUN.Abp.Notifications.csproj" />
</ItemGroup>
</Project>
<Project Sdk="Microsoft.NET.Sdk">
<Import Project="..\..\..\common.props" />
<PropertyGroup>
<TargetFramework>netstandard2.0</TargetFramework>
<RootNamespace />
</PropertyGroup>
<ItemGroup>
<ProjectReference Include="..\LINGYUN.Abp.Notifications\LINGYUN.Abp.Notifications.csproj" />
</ItemGroup>
</Project>

42
aspnet-core/modules/common/LINGYUN.Abp.Notifications/LINGYUN.Abp.Notifications.csproj

@ -1,21 +1,21 @@
<Project Sdk="Microsoft.NET.Sdk">
<Import Project="..\..\..\common.props" />
<PropertyGroup>
<TargetFramework>netstandard2.0</TargetFramework>
<RootNamespace />
</PropertyGroup>
<ItemGroup>
<PackageReference Include="Volo.Abp.EventBus" Version="4.3.0" />
<PackageReference Include="Volo.Abp.Json" Version="4.3.0" />
<PackageReference Include="Volo.Abp.BackgroundJobs.Abstractions" Version="4.3.0" />
<PackageReference Include="Volo.Abp.BackgroundWorkers" Version="4.3.0" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\LINGYUN.Abp.RealTime\LINGYUN.Abp.RealTime.csproj" />
</ItemGroup>
</Project>
<Project Sdk="Microsoft.NET.Sdk">
<Import Project="..\..\..\common.props" />
<PropertyGroup>
<TargetFramework>netstandard2.0</TargetFramework>
<RootNamespace />
</PropertyGroup>
<ItemGroup>
<PackageReference Include="Volo.Abp.EventBus" Version="4.4.0" />
<PackageReference Include="Volo.Abp.Json" Version="4.4.0" />
<PackageReference Include="Volo.Abp.BackgroundJobs.Abstractions" Version="4.4.0" />
<PackageReference Include="Volo.Abp.BackgroundWorkers" Version="4.4.0" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\LINGYUN.Abp.RealTime\LINGYUN.Abp.RealTime.csproj" />
</ItemGroup>
</Project>

2
aspnet-core/modules/common/LINGYUN.Abp.RealTime.SignalR/LINGYUN.Abp.RealTime.SignalR.csproj

@ -8,7 +8,7 @@
</PropertyGroup>
<ItemGroup>
<PackageReference Include="Volo.Abp.AspNetCore.SignalR" Version="4.3.0" />
<PackageReference Include="Volo.Abp.AspNetCore.SignalR" Version="4.4.0" />
</ItemGroup>
<ItemGroup>

4
aspnet-core/modules/common/LINGYUN.Abp.RealTime/LINGYUN.Abp.RealTime.csproj

@ -8,8 +8,8 @@
</PropertyGroup>
<ItemGroup>
<PackageReference Include="Volo.Abp.Core" Version="4.3.0" />
<PackageReference Include="Volo.Abp.EventBus.Abstractions" Version="4.3.0" />
<PackageReference Include="Volo.Abp.Core" Version="4.4.0" />
<PackageReference Include="Volo.Abp.EventBus.Abstractions" Version="4.4.0" />
</ItemGroup>
</Project>

2
aspnet-core/modules/common/LINGYUN.Abp.Settings/LINGYUN.Abp.Settings.csproj

@ -8,7 +8,7 @@
</PropertyGroup>
<ItemGroup>
<PackageReference Include="Volo.Abp.Settings" Version="4.3.0" />
<PackageReference Include="Volo.Abp.Settings" Version="4.4.0" />
</ItemGroup>
</Project>

58
aspnet-core/modules/common/LINGYUN.Abp.Sms.Aliyun/LINGYUN.Abp.Sms.Aliyun.csproj

@ -1,29 +1,29 @@
<Project Sdk="Microsoft.NET.Sdk">
<Import Project="..\..\..\common.props" />
<PropertyGroup>
<TargetFramework>netstandard2.0</TargetFramework>
<RootNamespace />
<Description>阿里云短信服务</Description>
</PropertyGroup>
<ItemGroup>
<None Remove="LINGYUN\Abp\Sms\Aliyun\Localization\Resources\en.json" />
<None Remove="LINGYUN\Abp\Sms\Aliyun\Localization\Resources\zh-Hans.json" />
</ItemGroup>
<ItemGroup>
<EmbeddedResource Include="LINGYUN\Abp\Sms\Aliyun\Localization\Resources\en.json" />
<EmbeddedResource Include="LINGYUN\Abp\Sms\Aliyun\Localization\Resources\zh-Hans.json" />
</ItemGroup>
<ItemGroup>
<PackageReference Include="Volo.Abp.Sms" Version="4.3.0" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\..\cloud-aliyun\LINGYUN.Abp.Aliyun\LINGYUN.Abp.Aliyun.csproj" />
</ItemGroup>
</Project>
<Project Sdk="Microsoft.NET.Sdk">
<Import Project="..\..\..\common.props" />
<PropertyGroup>
<TargetFramework>netstandard2.0</TargetFramework>
<RootNamespace />
<Description>阿里云短信服务</Description>
</PropertyGroup>
<ItemGroup>
<None Remove="LINGYUN\Abp\Sms\Aliyun\Localization\Resources\en.json" />
<None Remove="LINGYUN\Abp\Sms\Aliyun\Localization\Resources\zh-Hans.json" />
</ItemGroup>
<ItemGroup>
<EmbeddedResource Include="LINGYUN\Abp\Sms\Aliyun\Localization\Resources\en.json" />
<EmbeddedResource Include="LINGYUN\Abp\Sms\Aliyun\Localization\Resources\zh-Hans.json" />
</ItemGroup>
<ItemGroup>
<PackageReference Include="Volo.Abp.Sms" Version="4.4.0" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\..\cloud-aliyun\LINGYUN.Abp.Aliyun\LINGYUN.Abp.Aliyun.csproj" />
</ItemGroup>
</Project>

24
aspnet-core/modules/console/LINGYUN.Abp.Encryption.Console/LINGYUN.Abp.Encryption.Console.csproj

@ -1,12 +1,12 @@
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<OutputType>Exe</OutputType>
<TargetFramework>netcoreapp3.1</TargetFramework>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="Volo.Abp.Security" Version="4.3.0" />
</ItemGroup>
</Project>
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<OutputType>Exe</OutputType>
<TargetFramework>netcoreapp3.1</TargetFramework>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="Volo.Abp.Security" Version="4.4.0" />
</ItemGroup>
</Project>

30
aspnet-core/modules/dapr/LINGYUN.Abp.Dapr.Actors.AspNetCore/LINGYUN.Abp.Dapr.Actors.AspNetCore.csproj

@ -1,15 +1,15 @@
<Project Sdk="Microsoft.NET.Sdk">
<Import Project="..\..\..\common.props" />
<PropertyGroup>
<TargetFramework>net5.0</TargetFramework>
<RootNamespace />
</PropertyGroup>
<ItemGroup>
<PackageReference Include="Dapr.Actors.AspNetCore" Version="1.1.0" />
<PackageReference Include="Volo.Abp.AspNetCore" Version="4.3.0" />
</ItemGroup>
</Project>
<Project Sdk="Microsoft.NET.Sdk">
<Import Project="..\..\..\common.props" />
<PropertyGroup>
<TargetFramework>net5.0</TargetFramework>
<RootNamespace />
</PropertyGroup>
<ItemGroup>
<PackageReference Include="Dapr.Actors.AspNetCore" Version="1.1.0" />
<PackageReference Include="Volo.Abp.AspNetCore" Version="4.4.0" />
</ItemGroup>
</Project>

28
aspnet-core/modules/dapr/LINGYUN.Abp.Dapr.Actors/LINGYUN.Abp.Dapr.Actors.csproj

@ -1,14 +1,14 @@
<Project Sdk="Microsoft.NET.Sdk">
<Import Project="..\..\..\common.props" />
<PropertyGroup>
<TargetFramework>net5.0</TargetFramework>
<RootNamespace />
</PropertyGroup>
<ItemGroup>
<PackageReference Include="Dapr.Actors" Version="1.1.0" />
<PackageReference Include="Volo.Abp.Http.Client" Version="4.3.0" />
</ItemGroup>
</Project>
<Project Sdk="Microsoft.NET.Sdk">
<Import Project="..\..\..\common.props" />
<PropertyGroup>
<TargetFramework>net5.0</TargetFramework>
<RootNamespace />
</PropertyGroup>
<ItemGroup>
<PackageReference Include="Dapr.Actors" Version="1.1.0" />
<PackageReference Include="Volo.Abp.Http.Client" Version="4.4.0" />
</ItemGroup>
</Project>

26
aspnet-core/modules/dapr/LINGYUN.Abp.Dapr.Client/LINGYUN.Abp.Dapr.Client.csproj

@ -1,13 +1,13 @@
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>net5.0</TargetFramework>
<RootNamespace />
</PropertyGroup>
<ItemGroup>
<PackageReference Include="Dapr.Client" Version="1.1.0" />
<PackageReference Include="Volo.Abp.Http.Client" Version="4.3.0" />
</ItemGroup>
</Project>
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>net5.0</TargetFramework>
<RootNamespace />
</PropertyGroup>
<ItemGroup>
<PackageReference Include="Dapr.Client" Version="1.1.0" />
<PackageReference Include="Volo.Abp.Http.Client" Version="4.4.0" />
</ItemGroup>
</Project>

4
aspnet-core/modules/features/LINGYUN.Abp.FeatureManagement.Client/LINGYUN.Abp.FeatureManagement.Client.csproj

@ -13,8 +13,8 @@
</ItemGroup>
<ItemGroup>
<PackageReference Include="Volo.Abp.Authorization" Version="4.3.0" />
<PackageReference Include="Volo.Abp.FeatureManagement.Domain" Version="4.3.0" />
<PackageReference Include="Volo.Abp.Authorization" Version="4.4.0" />
<PackageReference Include="Volo.Abp.FeatureManagement.Domain" Version="4.4.0" />
</ItemGroup>
<ItemGroup>

2
aspnet-core/modules/features/LINGYUN.Abp.Features.Client/LINGYUN.Abp.Features.Client.csproj

@ -8,7 +8,7 @@
</PropertyGroup>
<ItemGroup>
<PackageReference Include="Volo.Abp.Features" Version="4.3.0" />
<PackageReference Include="Volo.Abp.Features" Version="4.4.0" />
</ItemGroup>
</Project>

2
aspnet-core/modules/identity/LINGYUN.Abp.Identity.Application.Contracts/LINGYUN.Abp.Identity.Application.Contracts.csproj

@ -8,7 +8,7 @@
</PropertyGroup>
<ItemGroup>
<PackageReference Include="Volo.Abp.Identity.Application.Contracts" Version="4.3.0" />
<PackageReference Include="Volo.Abp.Identity.Application.Contracts" Version="4.4.0" />
</ItemGroup>
<ItemGroup>

30
aspnet-core/modules/identity/LINGYUN.Abp.Identity.Application.Contracts/LINGYUN/Abp/Identity/AbpIdentityApplicationContractsModule.cs

@ -1,16 +1,14 @@
using Volo.Abp.Application;
using Volo.Abp.Authorization;
using Volo.Abp.Modularity;
namespace LINGYUN.Abp.Identity
{
[DependsOn(
typeof(Volo.Abp.Identity.AbpIdentityApplicationContractsModule),
typeof(AbpIdentityDomainSharedModule),
typeof(AbpAuthorizationModule),
typeof(AbpDddApplicationModule)
)]
public class AbpIdentityApplicationContractsModule : AbpModule
{
}
}
using Volo.Abp.Authorization;
using Volo.Abp.Modularity;
namespace LINGYUN.Abp.Identity
{
[DependsOn(
typeof(Volo.Abp.Identity.AbpIdentityApplicationContractsModule),
typeof(AbpIdentityDomainSharedModule),
typeof(AbpAuthorizationModule)
)]
public class AbpIdentityApplicationContractsModule : AbpModule
{
}
}

111
aspnet-core/modules/identity/LINGYUN.Abp.Identity.Application.Contracts/LINGYUN/Abp/Identity/IIdentityUserAppService.cs

@ -1,49 +1,62 @@
using System;
using System.Threading.Tasks;
using Volo.Abp.Application.Dtos;
using Volo.Abp.Application.Services;
using Volo.Abp.Identity;
namespace LINGYUN.Abp.Identity
{
public interface IIdentityUserAppService : IApplicationService
{
#region OrganizationUnit
Task<ListResultDto<OrganizationUnitDto>> GetOrganizationUnitsAsync(Guid id);
Task SetOrganizationUnitsAsync(Guid id, IdentityUserOrganizationUnitUpdateDto input);
Task RemoveOrganizationUnitsAsync(Guid id, Guid ouId);
#endregion
#region ClaimType
Task<ListResultDto<IdentityClaimDto>> GetClaimsAsync(Guid id);
Task AddClaimAsync(Guid id, IdentityUserClaimCreateDto input);
Task UpdateClaimAsync(Guid id, IdentityUserClaimUpdateDto input);
Task DeleteClaimAsync(Guid id, IdentityUserClaimDeleteDto input);
#endregion
/// <summary>
/// 变更用户双因素验证选项
/// </summary>
/// <param name="id"></param>
/// <param name="input"></param>
/// <returns></returns>
Task ChangeTwoFactorEnabledAsync(Guid id, ChangeTwoFactorEnabledDto input);
/// <summary>
/// 变更用户密码
/// </summary>
/// <param name="id"></param>
/// <param name="input"></param>
/// <returns></returns>
Task ChangePasswordAsync(Guid id, ChangePasswordInput input);
}
}
using System;
using System.Threading.Tasks;
using Volo.Abp.Application.Dtos;
using Volo.Abp.Application.Services;
using Volo.Abp.Identity;
namespace LINGYUN.Abp.Identity
{
public interface IIdentityUserAppService : IApplicationService
{
#region OrganizationUnit
Task<ListResultDto<OrganizationUnitDto>> GetOrganizationUnitsAsync(Guid id);
Task SetOrganizationUnitsAsync(Guid id, IdentityUserOrganizationUnitUpdateDto input);
Task RemoveOrganizationUnitsAsync(Guid id, Guid ouId);
#endregion
#region ClaimType
Task<ListResultDto<IdentityClaimDto>> GetClaimsAsync(Guid id);
Task AddClaimAsync(Guid id, IdentityUserClaimCreateDto input);
Task UpdateClaimAsync(Guid id, IdentityUserClaimUpdateDto input);
Task DeleteClaimAsync(Guid id, IdentityUserClaimDeleteDto input);
#endregion
/// <summary>
/// 变更用户双因素验证选项
/// </summary>
/// <param name="id"></param>
/// <param name="input"></param>
/// <returns></returns>
Task ChangeTwoFactorEnabledAsync(Guid id, ChangeTwoFactorEnabledDto input);
/// <summary>
/// 变更用户密码
/// </summary>
/// <param name="id"></param>
/// <param name="input"></param>
/// <returns></returns>
Task ChangePasswordAsync(Guid id, ChangePasswordInput input);
/// <summary>
/// 锁定
/// </summary>
/// <param name="id"></param>
/// <param name="seconds">锁定时长</param>
/// <returns></returns>
Task LockAsync(Guid id, int seconds);
/// <summary>
/// 解除锁定
/// </summary>
/// <param name="id"></param>
/// <returns></returns>
Task UnLockAsync(Guid id);
}
}

2
aspnet-core/modules/identity/LINGYUN.Abp.Identity.Application/LINGYUN.Abp.Identity.Application.csproj

@ -8,7 +8,7 @@
</PropertyGroup>
<ItemGroup>
<PackageReference Include="Volo.Abp.Identity.Application" Version="4.3.0" />
<PackageReference Include="Volo.Abp.Identity.Application" Version="4.4.0" />
</ItemGroup>
<ItemGroup>

323
aspnet-core/modules/identity/LINGYUN.Abp.Identity.Application/LINGYUN/Abp/Identity/IdentityUserAppService.cs

@ -1,142 +1,181 @@
using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Identity;
using Microsoft.Extensions.Options;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Security.Claims;
using System.Threading.Tasks;
using Volo.Abp;
using Volo.Abp.Application.Dtos;
using Volo.Abp.Identity;
namespace LINGYUN.Abp.Identity
{
[Authorize(Volo.Abp.Identity.IdentityPermissions.Users.Default)]
public class IdentityUserAppService : IdentityAppServiceBase, IIdentityUserAppService
{
protected IdentityUserManager UserManager { get; }
protected IOptions<IdentityOptions> IdentityOptions { get; }
public IdentityUserAppService(
IdentityUserManager userManager,
IOptions<IdentityOptions> identityOptions)
{
UserManager = userManager;
IdentityOptions = identityOptions;
}
#region OrganizationUnit
[Authorize(IdentityPermissions.Users.ManageOrganizationUnits)]
public virtual async Task<ListResultDto<OrganizationUnitDto>> GetOrganizationUnitsAsync(Guid id)
{
var user = await UserManager.GetByIdAsync(id);
var origanizationUnits = await UserManager.GetOrganizationUnitsAsync(user);
return new ListResultDto<OrganizationUnitDto>(
ObjectMapper.Map<List<OrganizationUnit>, List<OrganizationUnitDto>>(origanizationUnits));
}
[Authorize(IdentityPermissions.Users.ManageOrganizationUnits)]
public virtual async Task SetOrganizationUnitsAsync(Guid id, IdentityUserOrganizationUnitUpdateDto input)
{
var user = await UserManager.GetByIdAsync(id);
await UserManager.SetOrganizationUnitsAsync(user, input.OrganizationUnitIds);
await CurrentUnitOfWork.SaveChangesAsync();
}
[Authorize(IdentityPermissions.Users.ManageOrganizationUnits)]
public virtual async Task RemoveOrganizationUnitsAsync(Guid id, Guid ouId)
{
await UserManager.RemoveFromOrganizationUnitAsync(id, ouId);
await CurrentUnitOfWork.SaveChangesAsync();
}
#endregion
#region Claim
public virtual async Task<ListResultDto<IdentityClaimDto>> GetClaimsAsync(Guid id)
{
var user = await UserManager.GetByIdAsync(id);
return new ListResultDto<IdentityClaimDto>(ObjectMapper.Map<ICollection<IdentityUserClaim>, List<IdentityClaimDto>>(user.Claims));
}
[Authorize(IdentityPermissions.Users.ManageClaims)]
public virtual async Task AddClaimAsync(Guid id, IdentityUserClaimCreateDto input)
{
var user = await UserManager.GetByIdAsync(id);
var claim = new Claim(input.ClaimType, input.ClaimValue);
if (user.FindClaim(claim) != null)
{
throw new UserFriendlyException(L["UserClaimAlreadyExists"]);
}
user.AddClaim(GuidGenerator, claim);
(await UserManager.UpdateAsync(user)).CheckErrors();
await CurrentUnitOfWork.SaveChangesAsync();
}
[Authorize(IdentityPermissions.Users.ManageClaims)]
public virtual async Task UpdateClaimAsync(Guid id, IdentityUserClaimUpdateDto input)
{
var user = await UserManager.GetByIdAsync(id);
var oldClaim = new Claim(input.ClaimType, input.ClaimValue);
var newClaim = new Claim(input.ClaimType, input.NewClaimValue);
user.ReplaceClaim(oldClaim, newClaim);
(await UserManager.UpdateAsync(user)).CheckErrors();
await CurrentUnitOfWork.SaveChangesAsync();
}
[Authorize(IdentityPermissions.Users.ManageClaims)]
public virtual async Task DeleteClaimAsync(Guid id, IdentityUserClaimDeleteDto input)
{
var user = await UserManager.GetByIdAsync(id);
user.RemoveClaim(new Claim(input.ClaimType, input.ClaimValue));
(await UserManager.UpdateAsync(user)).CheckErrors();
await CurrentUnitOfWork.SaveChangesAsync();
}
#endregion
[Authorize(Volo.Abp.Identity.IdentityPermissions.Users.Update)]
public virtual async Task ChangePasswordAsync(Guid id, ChangePasswordInput input)
{
await IdentityOptions.SetAsync();
var user = await UserManager.GetByIdAsync(id);
if (user.IsExternal)
{
throw new BusinessException(code: Volo.Abp.Identity.IdentityErrorCodes.ExternalUserPasswordChange);
}
if (user.PasswordHash == null)
{
(await UserManager.AddPasswordAsync(user, input.NewPassword)).CheckErrors();
return;
}
(await UserManager.ChangePasswordAsync(user, input.CurrentPassword, input.NewPassword)).CheckErrors();
}
[Authorize(Volo.Abp.Identity.IdentityPermissions.Users.Update)]
public virtual async Task ChangeTwoFactorEnabledAsync(Guid id, ChangeTwoFactorEnabledDto input)
{
await IdentityOptions.SetAsync();
var user = await UserManager.GetByIdAsync(id);
(await UserManager.SetTwoFactorEnabledWithAccountConfirmedAsync(user, input.Enabled)).CheckErrors();
await CurrentUnitOfWork.SaveChangesAsync();
}
}
}
using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Identity;
using Microsoft.Extensions.Options;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Security.Claims;
using System.Threading.Tasks;
using Volo.Abp;
using Volo.Abp.Application.Dtos;
using Volo.Abp.Identity;
namespace LINGYUN.Abp.Identity
{
[Authorize(Volo.Abp.Identity.IdentityPermissions.Users.Default)]
public class IdentityUserAppService : IdentityAppServiceBase, IIdentityUserAppService
{
protected IdentityUserManager UserManager { get; }
protected IOptions<IdentityOptions> IdentityOptions { get; }
public IdentityUserAppService(
IdentityUserManager userManager,
IOptions<IdentityOptions> identityOptions)
{
UserManager = userManager;
IdentityOptions = identityOptions;
}
#region OrganizationUnit
[Authorize(IdentityPermissions.Users.ManageOrganizationUnits)]
public virtual async Task<ListResultDto<OrganizationUnitDto>> GetOrganizationUnitsAsync(Guid id)
{
var user = await UserManager.GetByIdAsync(id);
var origanizationUnits = await UserManager.GetOrganizationUnitsAsync(user);
return new ListResultDto<OrganizationUnitDto>(
ObjectMapper.Map<List<OrganizationUnit>, List<OrganizationUnitDto>>(origanizationUnits));
}
[Authorize(IdentityPermissions.Users.ManageOrganizationUnits)]
public virtual async Task SetOrganizationUnitsAsync(Guid id, IdentityUserOrganizationUnitUpdateDto input)
{
var user = await UserManager.GetByIdAsync(id);
await UserManager.SetOrganizationUnitsAsync(user, input.OrganizationUnitIds);
await CurrentUnitOfWork.SaveChangesAsync();
}
[Authorize(IdentityPermissions.Users.ManageOrganizationUnits)]
public virtual async Task RemoveOrganizationUnitsAsync(Guid id, Guid ouId)
{
await UserManager.RemoveFromOrganizationUnitAsync(id, ouId);
await CurrentUnitOfWork.SaveChangesAsync();
}
#endregion
#region Claim
public virtual async Task<ListResultDto<IdentityClaimDto>> GetClaimsAsync(Guid id)
{
var user = await UserManager.GetByIdAsync(id);
return new ListResultDto<IdentityClaimDto>(ObjectMapper.Map<ICollection<IdentityUserClaim>, List<IdentityClaimDto>>(user.Claims));
}
[Authorize(IdentityPermissions.Users.ManageClaims)]
public virtual async Task AddClaimAsync(Guid id, IdentityUserClaimCreateDto input)
{
var user = await UserManager.GetByIdAsync(id);
var claim = new Claim(input.ClaimType, input.ClaimValue);
if (user.FindClaim(claim) != null)
{
throw new UserFriendlyException(L["UserClaimAlreadyExists"]);
}
user.AddClaim(GuidGenerator, claim);
(await UserManager.UpdateAsync(user)).CheckErrors();
await CurrentUnitOfWork.SaveChangesAsync();
}
[Authorize(IdentityPermissions.Users.ManageClaims)]
public virtual async Task UpdateClaimAsync(Guid id, IdentityUserClaimUpdateDto input)
{
var user = await UserManager.GetByIdAsync(id);
var oldClaim = new Claim(input.ClaimType, input.ClaimValue);
var newClaim = new Claim(input.ClaimType, input.NewClaimValue);
user.ReplaceClaim(oldClaim, newClaim);
(await UserManager.UpdateAsync(user)).CheckErrors();
await CurrentUnitOfWork.SaveChangesAsync();
}
[Authorize(IdentityPermissions.Users.ManageClaims)]
public virtual async Task DeleteClaimAsync(Guid id, IdentityUserClaimDeleteDto input)
{
var user = await UserManager.GetByIdAsync(id);
user.RemoveClaim(new Claim(input.ClaimType, input.ClaimValue));
(await UserManager.UpdateAsync(user)).CheckErrors();
await CurrentUnitOfWork.SaveChangesAsync();
}
#endregion
[Authorize(Volo.Abp.Identity.IdentityPermissions.Users.Update)]
public virtual async Task ChangePasswordAsync(Guid id, ChangePasswordInput input)
{
var user = await GetUserAsync(id);
if (user.IsExternal)
{
throw new BusinessException(code: Volo.Abp.Identity.IdentityErrorCodes.ExternalUserPasswordChange);
}
if (user.PasswordHash == null)
{
(await UserManager.AddPasswordAsync(user, input.NewPassword)).CheckErrors();
return;
}
if (input.CurrentPassword.IsNullOrWhiteSpace())
{
// 管理员重置用户密码
var resetToken = await UserManager.GeneratePasswordResetTokenAsync(user);
(await UserManager.ResetPasswordAsync(user, resetToken, input.NewPassword)).CheckErrors();
}
else
{
// 用户重置密码
(await UserManager.ChangePasswordAsync(user, input.CurrentPassword, input.NewPassword)).CheckErrors();
}
}
[Authorize(Volo.Abp.Identity.IdentityPermissions.Users.Update)]
public virtual async Task ChangeTwoFactorEnabledAsync(Guid id, ChangeTwoFactorEnabledDto input)
{
var user = await GetUserAsync(id);
(await UserManager.SetTwoFactorEnabledWithAccountConfirmedAsync(user, input.Enabled)).CheckErrors();
await CurrentUnitOfWork.SaveChangesAsync();
}
[Authorize(Volo.Abp.Identity.IdentityPermissions.Users.Update)]
public virtual async Task LockAsync(Guid id, int seconds)
{
var user = await GetUserAsync(id);
//if (!UserManager.SupportsUserLockout)
//{
// throw new UserFriendlyException(L["Volo.Abp.Identity:UserLockoutNotEnabled"]);
//}
var endDate = new DateTimeOffset(Clock.Now).AddSeconds(seconds);
(await UserManager.SetLockoutEndDateAsync(user, endDate)).CheckErrors();
await CurrentUnitOfWork.SaveChangesAsync();
}
[Authorize(Volo.Abp.Identity.IdentityPermissions.Users.Update)]
public virtual async Task UnLockAsync(Guid id)
{
var user = await GetUserAsync(id);
(await UserManager.SetLockoutEndDateAsync(user, null)).CheckErrors();
await CurrentUnitOfWork.SaveChangesAsync();
}
protected virtual async Task<IdentityUser> GetUserAsync(Guid id)
{
await IdentityOptions.SetAsync();
var user = await UserManager.GetByIdAsync(id);
return user;
}
}
}

2
aspnet-core/modules/identity/LINGYUN.Abp.Identity.Domain.Shared/LINGYUN.Abp.Identity.Domain.Shared.csproj

@ -18,7 +18,7 @@
</ItemGroup>
<ItemGroup>
<PackageReference Include="Volo.Abp.Identity.Domain.Shared" Version="4.3.0" />
<PackageReference Include="Volo.Abp.Identity.Domain.Shared" Version="4.4.0" />
</ItemGroup>
</Project>

2
aspnet-core/modules/identity/LINGYUN.Abp.Identity.Domain/LINGYUN.Abp.Identity.Domain.csproj

@ -8,7 +8,7 @@
</PropertyGroup>
<ItemGroup>
<PackageReference Include="Volo.Abp.Identity.Domain" Version="4.3.0" />
<PackageReference Include="Volo.Abp.Identity.Domain" Version="4.4.0" />
</ItemGroup>
<ItemGroup>

2
aspnet-core/modules/identity/LINGYUN.Abp.Identity.EntityFrameworkCore/LINGYUN.Abp.Identity.EntityFrameworkCore.csproj

@ -8,7 +8,7 @@
</PropertyGroup>
<ItemGroup>
<PackageReference Include="Volo.Abp.Identity.EntityFrameworkCore" Version="4.3.0" />
<PackageReference Include="Volo.Abp.Identity.EntityFrameworkCore" Version="4.4.0" />
</ItemGroup>
<ItemGroup>

2
aspnet-core/modules/identity/LINGYUN.Abp.Identity.HttpApi.Client/LINGYUN.Abp.Identity.HttpApi.Client.csproj

@ -8,7 +8,7 @@
</PropertyGroup>
<ItemGroup>
<PackageReference Include="Volo.Abp.Identity.HttpApi.Client" Version="4.3.0" />
<PackageReference Include="Volo.Abp.Identity.HttpApi.Client" Version="4.4.0" />
</ItemGroup>
<ItemGroup>

2
aspnet-core/modules/identity/LINGYUN.Abp.Identity.HttpApi/LINGYUN.Abp.Identity.HttpApi.csproj

@ -8,7 +8,7 @@
</PropertyGroup>
<ItemGroup>
<PackageReference Include="Volo.Abp.Identity.HttpApi" Version="4.3.0" />
<PackageReference Include="Volo.Abp.Identity.HttpApi" Version="4.4.0" />
</ItemGroup>
<ItemGroup>

204
aspnet-core/modules/identity/LINGYUN.Abp.Identity.HttpApi/LINGYUN/Abp/Identity/IdentityUserController.cs

@ -1,95 +1,109 @@
using Microsoft.AspNetCore.Mvc;
using System;
using System.Threading.Tasks;
using Volo.Abp;
using Volo.Abp.Application.Dtos;
using Volo.Abp.AspNetCore.Mvc;
using Volo.Abp.Identity;
namespace LINGYUN.Abp.Identity
{
[RemoteService(true, Name = IdentityRemoteServiceConsts.RemoteServiceName)]
[Area("identity")]
[ControllerName("User")]
[Route("api/identity/users")]
public class IdentityUserController : AbpController, IIdentityUserAppService
{
protected IIdentityUserAppService UserAppService { get; }
public IdentityUserController(
IIdentityUserAppService userAppService)
{
UserAppService = userAppService;
}
#region OrganizationUnit
[HttpGet]
[Route("{id}/organization-units")]
public virtual async Task<ListResultDto<OrganizationUnitDto>> GetOrganizationUnitsAsync(Guid id)
{
return await UserAppService.GetOrganizationUnitsAsync(id);
}
[HttpPut]
[Route("{id}/organization-units")]
public virtual async Task SetOrganizationUnitsAsync(Guid id, IdentityUserOrganizationUnitUpdateDto input)
{
await UserAppService.SetOrganizationUnitsAsync(id, input);
}
[HttpDelete]
[Route("{id}/organization-units/{ouId}")]
public virtual async Task RemoveOrganizationUnitsAsync(Guid id, Guid ouId)
{
await UserAppService.RemoveOrganizationUnitsAsync(id, ouId);
}
#endregion
#region Claim
[HttpGet]
[Route("{id}/claims")]
public virtual async Task<ListResultDto<IdentityClaimDto>> GetClaimsAsync(Guid id)
{
return await UserAppService.GetClaimsAsync(id);
}
[HttpPost]
[Route("{id}/claims")]
public virtual async Task AddClaimAsync(Guid id, IdentityUserClaimCreateDto input)
{
await UserAppService.AddClaimAsync(id, input);
}
[HttpPut]
[Route("{id}/claims")]
public virtual async Task UpdateClaimAsync(Guid id, IdentityUserClaimUpdateDto input)
{
await UserAppService.UpdateClaimAsync(id, input);
}
[HttpDelete]
[Route("{id}/claims")]
public virtual async Task DeleteClaimAsync(Guid id, IdentityUserClaimDeleteDto input)
{
await UserAppService.DeleteClaimAsync(id, input);
}
#endregion
[HttpPut] //TODO: Post?
[Route("change-password")]
public virtual async Task ChangePasswordAsync(Guid id, ChangePasswordInput input)
{
await UserAppService.ChangePasswordAsync(id, input);
}
[HttpPut]
[Route("change-two-factor")]
public virtual async Task ChangeTwoFactorEnabledAsync(Guid id, ChangeTwoFactorEnabledDto input)
{
await UserAppService.ChangeTwoFactorEnabledAsync(id, input);
}
}
}
using Microsoft.AspNetCore.Mvc;
using System;
using System.Threading.Tasks;
using Volo.Abp;
using Volo.Abp.Application.Dtos;
using Volo.Abp.AspNetCore.Mvc;
using Volo.Abp.Identity;
namespace LINGYUN.Abp.Identity
{
[RemoteService(true, Name = IdentityRemoteServiceConsts.RemoteServiceName)]
[Area("identity")]
[ControllerName("User")]
[Route("api/identity/users")]
public class IdentityUserController : AbpController, IIdentityUserAppService
{
protected IIdentityUserAppService UserAppService { get; }
public IdentityUserController(
IIdentityUserAppService userAppService)
{
UserAppService = userAppService;
}
#region OrganizationUnit
[HttpGet]
[Route("{id}/organization-units")]
public virtual async Task<ListResultDto<OrganizationUnitDto>> GetOrganizationUnitsAsync(Guid id)
{
return await UserAppService.GetOrganizationUnitsAsync(id);
}
[HttpPut]
[Route("{id}/organization-units")]
public virtual async Task SetOrganizationUnitsAsync(Guid id, IdentityUserOrganizationUnitUpdateDto input)
{
await UserAppService.SetOrganizationUnitsAsync(id, input);
}
[HttpDelete]
[Route("{id}/organization-units/{ouId}")]
public virtual async Task RemoveOrganizationUnitsAsync(Guid id, Guid ouId)
{
await UserAppService.RemoveOrganizationUnitsAsync(id, ouId);
}
#endregion
#region Claim
[HttpGet]
[Route("{id}/claims")]
public virtual async Task<ListResultDto<IdentityClaimDto>> GetClaimsAsync(Guid id)
{
return await UserAppService.GetClaimsAsync(id);
}
[HttpPost]
[Route("{id}/claims")]
public virtual async Task AddClaimAsync(Guid id, IdentityUserClaimCreateDto input)
{
await UserAppService.AddClaimAsync(id, input);
}
[HttpPut]
[Route("{id}/claims")]
public virtual async Task UpdateClaimAsync(Guid id, IdentityUserClaimUpdateDto input)
{
await UserAppService.UpdateClaimAsync(id, input);
}
[HttpDelete]
[Route("{id}/claims")]
public virtual async Task DeleteClaimAsync(Guid id, IdentityUserClaimDeleteDto input)
{
await UserAppService.DeleteClaimAsync(id, input);
}
#endregion
[HttpPut] //TODO: Post?
[Route("change-password")]
public virtual async Task ChangePasswordAsync(Guid id, ChangePasswordInput input)
{
await UserAppService.ChangePasswordAsync(id, input);
}
[HttpPut]
[Route("change-two-factor")]
public virtual async Task ChangeTwoFactorEnabledAsync(Guid id, ChangeTwoFactorEnabledDto input)
{
await UserAppService.ChangeTwoFactorEnabledAsync(id, input);
}
[HttpPut]
[Route("{id}/lock/{seconds}")]
public virtual async Task LockAsync(Guid id, int seconds)
{
await UserAppService.LockAsync(id, seconds);
}
[HttpPut]
[Route("{id}/unlock")]
public virtual async Task UnLockAsync(Guid id)
{
await UserAppService.UnLockAsync(id);
}
}
}

4
aspnet-core/modules/identity/LINGYUN.Abp.PermissionManagement.Domain.Identity/LINGYUN.Abp.PermissionManagement.Domain.Identity.csproj

@ -8,8 +8,8 @@
</PropertyGroup>
<ItemGroup>
<PackageReference Include="Volo.Abp.Uow" Version="4.3.0" />
<PackageReference Include="Volo.Abp.PermissionManagement.Domain.Identity" Version="4.3.0" />
<PackageReference Include="Volo.Abp.Uow" Version="4.4.0" />
<PackageReference Include="Volo.Abp.PermissionManagement.Domain.Identity" Version="4.4.0" />
</ItemGroup>
<ItemGroup>

181
aspnet-core/modules/identity/LINGYUN.Abp.PermissionManagement.Domain.Identity/LINGYUN/Abp/PermissionManagement/Identity/IdentityPermissionManager.cs

@ -1,90 +1,91 @@
using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.Options;
using System;
using System.Threading.Tasks;
using Volo.Abp.Authorization.Permissions;
using Volo.Abp.Caching;
using Volo.Abp.DependencyInjection;
using Volo.Abp.Guids;
using Volo.Abp.Identity;
using Volo.Abp.MultiTenancy;
using Volo.Abp.PermissionManagement;
using Volo.Abp.Uow;
namespace LINGYUN.Abp.PermissionManagement.Identity
{
[Dependency(ServiceLifetime.Singleton, ReplaceServices = true)]
[ExposeServices(typeof(IPermissionManager), typeof(PermissionManager), typeof(DefaultPermissionManager))]
public class IdentityPermissionManager : DefaultPermissionManager
{
protected IUnitOfWorkManager UnitOfWorkManager => LazyGetRequiredService(ref _unitOfWorkManager);
private IUnitOfWorkManager _unitOfWorkManager;
protected IUnitOfWork CurrentUnitOfWork => UnitOfWorkManager?.Current;
protected IUserRoleFinder UserRoleFinder { get; }
public IdentityPermissionManager(
IPermissionDefinitionManager permissionDefinitionManager,
IPermissionStateManager permissionStateManager,
IPermissionGrantRepository permissionGrantRepository,
IPermissionStore permissionStore,
IServiceProvider serviceProvider,
IGuidGenerator guidGenerator,
IOptions<PermissionManagementOptions> options,
ICurrentTenant currentTenant,
IDistributedCache<PermissionGrantCacheItem> cache,
IUserRoleFinder userRoleFinder)
: base(
permissionDefinitionManager,
permissionStateManager,
permissionGrantRepository,
permissionStore,
serviceProvider,
guidGenerator,
options,
currentTenant,
cache)
{
UserRoleFinder = userRoleFinder;
}
protected override async Task<bool> IsGrantedAsync(string permissionName, string providerName, string providerKey)
{
if (!RolePermissionValueProvider.ProviderName.Equals(providerName))
{
// 如果查询的是用户权限,需要查询用户角色权限
if (providerName == UserPermissionValueProvider.ProviderName)
{
var userId = Guid.Parse(providerKey);
var roleNames = await GetUserRolesAsync(userId);
foreach (var roleName in roleNames)
{
var permissionGrant = await PermissionStore.IsGrantedAsync(permissionName, RolePermissionValueProvider.ProviderName, roleName);
if (permissionGrant)
{
return true;
}
}
}
}
return await base.IsGrantedAsync(permissionName, providerName, providerKey);
}
protected virtual async Task<string[]> GetUserRolesAsync(Guid userId)
{
// 通过工作单元来缓存用户角色,防止多次查询
if (CurrentUnitOfWork != null)
{
var userRoleItemKey = $"FindRolesByUser:{userId}";
return await CurrentUnitOfWork.GetOrAddItem(userRoleItemKey, (key) =>
{
// 取消同步调用
//var roles = AsyncHelper.RunSync(async ()=> await UserRoleFinder.GetRolesAsync(userId));
return UserRoleFinder.GetRolesAsync(userId);
});
}
return await UserRoleFinder.GetRolesAsync(userId);
}
}
}
using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.Options;
using System;
using System.Threading.Tasks;
using Volo.Abp.Authorization.Permissions;
using Volo.Abp.Caching;
using Volo.Abp.DependencyInjection;
using Volo.Abp.Guids;
using Volo.Abp.Identity;
using Volo.Abp.MultiTenancy;
using Volo.Abp.PermissionManagement;
using Volo.Abp.SimpleStateChecking;
using Volo.Abp.Uow;
namespace LINGYUN.Abp.PermissionManagement.Identity
{
[Dependency(ServiceLifetime.Singleton, ReplaceServices = true)]
[ExposeServices(typeof(IPermissionManager), typeof(PermissionManager), typeof(DefaultPermissionManager))]
public class IdentityPermissionManager : DefaultPermissionManager
{
protected IUnitOfWorkManager UnitOfWorkManager => LazyGetRequiredService(ref _unitOfWorkManager);
private IUnitOfWorkManager _unitOfWorkManager;
protected IUnitOfWork CurrentUnitOfWork => UnitOfWorkManager?.Current;
protected IUserRoleFinder UserRoleFinder { get; }
public IdentityPermissionManager(
IPermissionDefinitionManager permissionDefinitionManager,
ISimpleStateCheckerManager<PermissionDefinition> simpleStateCheckerManager,
IPermissionGrantRepository permissionGrantRepository,
IPermissionStore permissionStore,
IServiceProvider serviceProvider,
IGuidGenerator guidGenerator,
IOptions<PermissionManagementOptions> options,
ICurrentTenant currentTenant,
IDistributedCache<PermissionGrantCacheItem> cache,
IUserRoleFinder userRoleFinder)
: base(
permissionDefinitionManager,
simpleStateCheckerManager,
permissionGrantRepository,
permissionStore,
serviceProvider,
guidGenerator,
options,
currentTenant,
cache)
{
UserRoleFinder = userRoleFinder;
}
protected override async Task<bool> IsGrantedAsync(string permissionName, string providerName, string providerKey)
{
if (!RolePermissionValueProvider.ProviderName.Equals(providerName))
{
// 如果查询的是用户权限,需要查询用户角色权限
if (providerName == UserPermissionValueProvider.ProviderName)
{
var userId = Guid.Parse(providerKey);
var roleNames = await GetUserRolesAsync(userId);
foreach (var roleName in roleNames)
{
var permissionGrant = await PermissionStore.IsGrantedAsync(permissionName, RolePermissionValueProvider.ProviderName, roleName);
if (permissionGrant)
{
return true;
}
}
}
}
return await base.IsGrantedAsync(permissionName, providerName, providerKey);
}
protected virtual async Task<string[]> GetUserRolesAsync(Guid userId)
{
// 通过工作单元来缓存用户角色,防止多次查询
if (CurrentUnitOfWork != null)
{
var userRoleItemKey = $"FindRolesByUser:{userId}";
return await CurrentUnitOfWork.GetOrAddItem(userRoleItemKey, (key) =>
{
// 取消同步调用
//var roles = AsyncHelper.RunSync(async ()=> await UserRoleFinder.GetRolesAsync(userId));
return UserRoleFinder.GetRolesAsync(userId);
});
}
return await UserRoleFinder.GetRolesAsync(userId);
}
}
}

6
aspnet-core/modules/identityServer/LINGYUN.Abp.IdentityServer.Application.Contracts/LINGYUN.Abp.IdentityServer.Application.Contracts.csproj

@ -18,9 +18,9 @@
</ItemGroup>
<ItemGroup>
<PackageReference Include="Volo.Abp.Ddd.Application.Contracts" Version="4.3.0" />
<PackageReference Include="Volo.Abp.Authorization" Version="4.3.0" />
<PackageReference Include="Volo.Abp.IdentityServer.Domain.Shared" Version="4.3.0" />
<PackageReference Include="Volo.Abp.Ddd.Application.Contracts" Version="4.4.0" />
<PackageReference Include="Volo.Abp.Authorization" Version="4.4.0" />
<PackageReference Include="Volo.Abp.IdentityServer.Domain.Shared" Version="4.4.0" />
</ItemGroup>
</Project>

38
aspnet-core/modules/identityServer/LINGYUN.Abp.IdentityServer.Application/LINGYUN.Abp.IdentityServer.Application.csproj

@ -1,19 +1,19 @@
<Project Sdk="Microsoft.NET.Sdk">
<Import Project="..\..\..\common.props" />
<PropertyGroup>
<TargetFramework>net5.0</TargetFramework>
<RootNamespace />
</PropertyGroup>
<ItemGroup>
<PackageReference Include="Volo.Abp.Ddd.Application" Version="4.3.0" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\LINGYUN.Abp.IdentityServer.Application.Contracts\LINGYUN.Abp.IdentityServer.Application.Contracts.csproj" />
<ProjectReference Include="..\LINGYUN.Abp.IdentityServer.Domain\LINGYUN.Abp.IdentityServer.Domain.csproj" />
</ItemGroup>
</Project>
<Project Sdk="Microsoft.NET.Sdk">
<Import Project="..\..\..\common.props" />
<PropertyGroup>
<TargetFramework>net5.0</TargetFramework>
<RootNamespace />
</PropertyGroup>
<ItemGroup>
<PackageReference Include="Volo.Abp.Ddd.Application" Version="4.4.0" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\LINGYUN.Abp.IdentityServer.Application.Contracts\LINGYUN.Abp.IdentityServer.Application.Contracts.csproj" />
<ProjectReference Include="..\LINGYUN.Abp.IdentityServer.Domain\LINGYUN.Abp.IdentityServer.Domain.csproj" />
</ItemGroup>
</Project>

2
aspnet-core/modules/identityServer/LINGYUN.Abp.IdentityServer.Domain/LINGYUN.Abp.IdentityServer.Domain.csproj

@ -8,7 +8,7 @@
</PropertyGroup>
<ItemGroup>
<PackageReference Include="Volo.Abp.IdentityServer.Domain" Version="4.3.0" />
<PackageReference Include="Volo.Abp.IdentityServer.Domain" Version="4.4.0" />
</ItemGroup>
</Project>

2
aspnet-core/modules/identityServer/LINGYUN.Abp.IdentityServer.EntityFrameworkCore/LINGYUN.Abp.IdentityServer.EntityFrameworkCore.csproj

@ -8,7 +8,7 @@
</PropertyGroup>
<ItemGroup>
<PackageReference Include="Volo.Abp.IdentityServer.EntityFrameworkCore" Version="4.3.0" />
<PackageReference Include="Volo.Abp.IdentityServer.EntityFrameworkCore" Version="4.4.0" />
</ItemGroup>
<ItemGroup>

2
aspnet-core/modules/identityServer/LINGYUN.Abp.IdentityServer.HttpApi/LINGYUN.Abp.IdentityServer.HttpApi.csproj

@ -8,7 +8,7 @@
</PropertyGroup>
<ItemGroup>
<PackageReference Include="Volo.Abp.AspNetCore.Mvc" Version="4.3.0" />
<PackageReference Include="Volo.Abp.AspNetCore.Mvc" Version="4.4.0" />
</ItemGroup>
<ItemGroup>

2
aspnet-core/modules/identityServer/LINGYUN.Abp.IdentityServer.SmsValidator/LINGYUN.Abp.IdentityServer.SmsValidator.csproj

@ -18,7 +18,7 @@
</ItemGroup>
<ItemGroup>
<PackageReference Include="Volo.Abp.IdentityServer.Domain" Version="4.3.0" />
<PackageReference Include="Volo.Abp.IdentityServer.Domain" Version="4.4.0" />
</ItemGroup>
<ItemGroup>

2
aspnet-core/modules/identityServer/LINGYUN.Abp.IdentityServer.WeChat/LINGYUN.Abp.IdentityServer.WeChat.csproj

@ -13,7 +13,7 @@
</ItemGroup>
<ItemGroup>
<PackageReference Include="Volo.Abp.IdentityServer.Domain" Version="4.3.0" />
<PackageReference Include="Volo.Abp.IdentityServer.Domain" Version="4.4.0" />
</ItemGroup>
<ItemGroup>

6
aspnet-core/modules/identityServer/LINGYUN.Abp.IdentityServer.WeChatValidator/LINGYUN.Abp.IdentityServer.WeChatValidator.csproj

@ -18,11 +18,11 @@
</ItemGroup>
<ItemGroup>
<PackageReference Include="Volo.Abp.IdentityServer.Domain" Version="4.3.0" />
<PackageReference Include="Volo.Abp.IdentityServer.Domain" Version="4.4.0" />
</ItemGroup>
<ItemGroup>
<Folder Include="Microsoft\DependencyInjection\" />
<ItemGroup>
<Folder Include="Microsoft\DependencyInjection\" />
</ItemGroup>
</Project>

30
aspnet-core/modules/localization/LINGYUN.Abp.Localization.Json/LINGYUN.Abp.Localization.Json.csproj

@ -1,15 +1,15 @@
<Project Sdk="Microsoft.NET.Sdk">
<Import Project="..\..\..\common.props" />
<PropertyGroup>
<TargetFramework>netstandard2.0</TargetFramework>
<RootNamespace />
</PropertyGroup>
<ItemGroup>
<PackageReference Include="Volo.Abp.Localization" Version="4.3.0" />
<PackageReference Include="Microsoft.Extensions.FileProviders.Physical" Version="5.0.*" />
</ItemGroup>
</Project>
<Project Sdk="Microsoft.NET.Sdk">
<Import Project="..\..\..\common.props" />
<PropertyGroup>
<TargetFramework>netstandard2.0</TargetFramework>
<RootNamespace />
</PropertyGroup>
<ItemGroup>
<PackageReference Include="Volo.Abp.Localization" Version="4.4.0" />
<PackageReference Include="Microsoft.Extensions.FileProviders.Physical" Version="5.0.*" />
</ItemGroup>
</Project>

30
aspnet-core/modules/localization/LINGYUN.Abp.Localization.Xml/LINGYUN.Abp.Localization.Xml.csproj

@ -1,15 +1,15 @@
<Project Sdk="Microsoft.NET.Sdk">
<Import Project="..\..\..\common.props" />
<PropertyGroup>
<TargetFramework>netstandard2.0</TargetFramework>
<RootNamespace />
</PropertyGroup>
<ItemGroup>
<PackageReference Include="Volo.Abp.Localization" Version="4.3.0" />
<PackageReference Include="Microsoft.Extensions.FileProviders.Physical" Version="5.0.*" />
</ItemGroup>
</Project>
<Project Sdk="Microsoft.NET.Sdk">
<Import Project="..\..\..\common.props" />
<PropertyGroup>
<TargetFramework>netstandard2.0</TargetFramework>
<RootNamespace />
</PropertyGroup>
<ItemGroup>
<PackageReference Include="Volo.Abp.Localization" Version="4.4.0" />
<PackageReference Include="Microsoft.Extensions.FileProviders.Physical" Version="5.0.*" />
</ItemGroup>
</Project>

38
aspnet-core/modules/lt/LINGYUN.Abp.LocalizationManagement.Application.Contracts/LINGYUN.Abp.LocalizationManagement.Application.Contracts.csproj

@ -1,19 +1,19 @@
<Project Sdk="Microsoft.NET.Sdk">
<Import Project="..\..\..\common.props" />
<PropertyGroup>
<TargetFramework>netstandard2.0</TargetFramework>
<RootNamespace />
</PropertyGroup>
<ItemGroup>
<PackageReference Include="Volo.Abp.Authorization" Version="4.3.0" />
<PackageReference Include="Volo.Abp.Ddd.Application.Contracts" Version="4.3.0" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\LINGYUN.Abp.LocalizationManagement.Domain.Shared\LINGYUN.Abp.LocalizationManagement.Domain.Shared.csproj" />
</ItemGroup>
</Project>
<Project Sdk="Microsoft.NET.Sdk">
<Import Project="..\..\..\common.props" />
<PropertyGroup>
<TargetFramework>netstandard2.0</TargetFramework>
<RootNamespace />
</PropertyGroup>
<ItemGroup>
<PackageReference Include="Volo.Abp.Authorization" Version="4.4.0" />
<PackageReference Include="Volo.Abp.Ddd.Application.Contracts" Version="4.4.0" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\LINGYUN.Abp.LocalizationManagement.Domain.Shared\LINGYUN.Abp.LocalizationManagement.Domain.Shared.csproj" />
</ItemGroup>
</Project>

38
aspnet-core/modules/lt/LINGYUN.Abp.LocalizationManagement.Application/LINGYUN.Abp.LocalizationManagement.Application.csproj

@ -1,19 +1,19 @@
<Project Sdk="Microsoft.NET.Sdk">
<Import Project="..\..\..\common.props" />
<PropertyGroup>
<TargetFramework>netstandard2.0</TargetFramework>
<RootNamespace />
</PropertyGroup>
<ItemGroup>
<PackageReference Include="Volo.Abp.Ddd.Application" Version="4.3.0" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\LINGYUN.Abp.LocalizationManagement.Domain\LINGYUN.Abp.LocalizationManagement.Domain.csproj" />
<ProjectReference Include="..\LINGYUN.Abp.LocalizationManagement.Application.Contracts\LINGYUN.Abp.LocalizationManagement.Application.Contracts.csproj" />
</ItemGroup>
</Project>
<Project Sdk="Microsoft.NET.Sdk">
<Import Project="..\..\..\common.props" />
<PropertyGroup>
<TargetFramework>netstandard2.0</TargetFramework>
<RootNamespace />
</PropertyGroup>
<ItemGroup>
<PackageReference Include="Volo.Abp.Ddd.Application" Version="4.4.0" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\LINGYUN.Abp.LocalizationManagement.Domain\LINGYUN.Abp.LocalizationManagement.Domain.csproj" />
<ProjectReference Include="..\LINGYUN.Abp.LocalizationManagement.Application.Contracts\LINGYUN.Abp.LocalizationManagement.Application.Contracts.csproj" />
</ItemGroup>
</Project>

50
aspnet-core/modules/lt/LINGYUN.Abp.LocalizationManagement.Domain.Shared/LINGYUN.Abp.LocalizationManagement.Domain.Shared.csproj

@ -1,25 +1,25 @@
<Project Sdk="Microsoft.NET.Sdk">
<Import Project="..\..\..\common.props" />
<PropertyGroup>
<TargetFramework>netstandard2.0</TargetFramework>
<RootNamespace />
</PropertyGroup>
<ItemGroup>
<None Remove="LINGYUN\Abp\LocalizationManagement\Localization\Resources\en.json" />
<None Remove="LINGYUN\Abp\LocalizationManagement\Localization\Resources\zh-Hans.json" />
</ItemGroup>
<ItemGroup>
<EmbeddedResource Include="LINGYUN\Abp\LocalizationManagement\Localization\Resources\en.json" />
<EmbeddedResource Include="LINGYUN\Abp\LocalizationManagement\Localization\Resources\zh-Hans.json" />
</ItemGroup>
<ItemGroup>
<PackageReference Include="Volo.Abp.Validation" Version="4.3.0" />
<PackageReference Include="Volo.Abp.Localization" Version="4.3.0" />
</ItemGroup>
</Project>
<Project Sdk="Microsoft.NET.Sdk">
<Import Project="..\..\..\common.props" />
<PropertyGroup>
<TargetFramework>netstandard2.0</TargetFramework>
<RootNamespace />
</PropertyGroup>
<ItemGroup>
<None Remove="LINGYUN\Abp\LocalizationManagement\Localization\Resources\en.json" />
<None Remove="LINGYUN\Abp\LocalizationManagement\Localization\Resources\zh-Hans.json" />
</ItemGroup>
<ItemGroup>
<EmbeddedResource Include="LINGYUN\Abp\LocalizationManagement\Localization\Resources\en.json" />
<EmbeddedResource Include="LINGYUN\Abp\LocalizationManagement\Localization\Resources\zh-Hans.json" />
</ItemGroup>
<ItemGroup>
<PackageReference Include="Volo.Abp.Validation" Version="4.4.0" />
<PackageReference Include="Volo.Abp.Localization" Version="4.4.0" />
</ItemGroup>
</Project>

40
aspnet-core/modules/lt/LINGYUN.Abp.LocalizationManagement.Domain/LINGYUN.Abp.LocalizationManagement.Domain.csproj

@ -1,20 +1,20 @@
<Project Sdk="Microsoft.NET.Sdk">
<Import Project="..\..\..\common.props" />
<PropertyGroup>
<TargetFramework>netstandard2.0</TargetFramework>
<RootNamespace />
</PropertyGroup>
<ItemGroup>
<PackageReference Include="Volo.Abp.AutoMapper" Version="4.3.0" />
<PackageReference Include="Volo.Abp.Ddd.Domain" Version="4.3.0" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\..\common\LINGYUN.Abp.Localization.Dynamic\LINGYUN.Abp.Localization.Dynamic.csproj" />
<ProjectReference Include="..\LINGYUN.Abp.LocalizationManagement.Domain.Shared\LINGYUN.Abp.LocalizationManagement.Domain.Shared.csproj" />
</ItemGroup>
</Project>
<Project Sdk="Microsoft.NET.Sdk">
<Import Project="..\..\..\common.props" />
<PropertyGroup>
<TargetFramework>netstandard2.0</TargetFramework>
<RootNamespace />
</PropertyGroup>
<ItemGroup>
<PackageReference Include="Volo.Abp.AutoMapper" Version="4.4.0" />
<PackageReference Include="Volo.Abp.Ddd.Domain" Version="4.4.0" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\..\common\LINGYUN.Abp.Localization.Dynamic\LINGYUN.Abp.Localization.Dynamic.csproj" />
<ProjectReference Include="..\LINGYUN.Abp.LocalizationManagement.Domain.Shared\LINGYUN.Abp.LocalizationManagement.Domain.Shared.csproj" />
</ItemGroup>
</Project>

36
aspnet-core/modules/lt/LINGYUN.Abp.LocalizationManagement.EntityFrameworkCore/LINGYUN.Abp.LocalizationManagement.EntityFrameworkCore.csproj

@ -1,18 +1,18 @@
<Project Sdk="Microsoft.NET.Sdk">
<Import Project="..\..\..\common.props" />
<PropertyGroup>
<TargetFramework>netstandard2.1</TargetFramework>
<RootNamespace />
</PropertyGroup>
<ItemGroup>
<PackageReference Include="Volo.Abp.EntityFrameworkCore" Version="4.3.0" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\LINGYUN.Abp.LocalizationManagement.Domain\LINGYUN.Abp.LocalizationManagement.Domain.csproj" />
</ItemGroup>
</Project>
<Project Sdk="Microsoft.NET.Sdk">
<Import Project="..\..\..\common.props" />
<PropertyGroup>
<TargetFramework>netstandard2.1</TargetFramework>
<RootNamespace />
</PropertyGroup>
<ItemGroup>
<PackageReference Include="Volo.Abp.EntityFrameworkCore" Version="4.4.0" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\LINGYUN.Abp.LocalizationManagement.Domain\LINGYUN.Abp.LocalizationManagement.Domain.csproj" />
</ItemGroup>
</Project>

36
aspnet-core/modules/lt/LINGYUN.Abp.LocalizationManagement.HttpApi/LINGYUN.Abp.LocalizationManagement.HttpApi.csproj

@ -1,18 +1,18 @@
<Project Sdk="Microsoft.NET.Sdk">
<Import Project="..\..\..\common.props" />
<PropertyGroup>
<TargetFramework>net5.0</TargetFramework>
<RootNamespace />
</PropertyGroup>
<ItemGroup>
<PackageReference Include="Volo.Abp.AspNetCore.Mvc" Version="4.3.0" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\LINGYUN.Abp.LocalizationManagement.Application.Contracts\LINGYUN.Abp.LocalizationManagement.Application.Contracts.csproj" />
</ItemGroup>
</Project>
<Project Sdk="Microsoft.NET.Sdk">
<Import Project="..\..\..\common.props" />
<PropertyGroup>
<TargetFramework>net5.0</TargetFramework>
<RootNamespace />
</PropertyGroup>
<ItemGroup>
<PackageReference Include="Volo.Abp.AspNetCore.Mvc" Version="4.4.0" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\LINGYUN.Abp.LocalizationManagement.Application.Contracts\LINGYUN.Abp.LocalizationManagement.Application.Contracts.csproj" />
</ItemGroup>
</Project>

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

Loading…
Cancel
Save