From 90ea28c1fbf3937478238a7256d6d5d3254b85cf Mon Sep 17 00:00:00 2001 From: cKey <35512826+colinin@users.noreply.github.com> Date: Wed, 1 Feb 2023 09:50:02 +0800 Subject: [PATCH 1/2] upgrade abp framework to 7.0.1 --- aspnet-core/Directory.Build.props | 6 +- aspnet-core/LINGYUN.MicroService.Common.sln | 32 ++++++--- aspnet-core/LINGYUN.MicroService.Workflow.sln | 23 +++++++ aspnet-core/common.props | 2 +- .../Abp/Cli/Commands/GenerateProxyCommand.cs | 29 ++++++++ .../CSharp/CSharpServiceProxyGenerator.cs | 7 +- .../Cli/ServiceProxying/GenerateProxyArgs.cs | 4 +- .../TypeScriptServiceProxyGenerator.cs | 25 +------ .../Properties/launchSettings.json | 12 ++++ .../Abp/Notifications/NotificationKeywords.cs | 31 +++++++++ .../AbpNotificationsPublishOptions.cs | 9 +++ .../Dapr/Actors/AbpDaprActorProxyOptions.cs | 3 - ...aprRemoteServiceConfigurationExtensions.cs | 2 +- .../BlobStoring/Activities/BlobExists.cs | 2 +- .../BlobStoring/Activities/DeleteBlob.cs | 2 +- .../BlobStoring/Activities/ReadBlob.cs | 2 +- .../BlobStoring/Activities/WriteBlob.cs | 2 +- .../Emailing/Activities/SendEmailing.cs | 3 +- .../Activities/IM/Activities/SendMessage.cs | 8 +-- .../Activities/SendNotification.cs | 9 +-- .../Elsa/Activities/Sms/Activities/SendSms.cs | 5 +- .../Webhooks/Activities/PublishWebhook.cs | 9 +-- .../LINGYUN/Abp/Elsa/AbpActivity.cs | 8 +-- .../LINGYUN/Abp/Elsa/AbpActivityExtensions.cs | 24 +++---- ...INGYUN.Abp.Localization.Persistence.csproj | 1 - .../Notifications/NotificationAppService.cs | 6 +- .../Quartz/QuartzJobCreator.cs | 5 ++ .../LINGYUN/Abp/BackgroundTasks/IJobStore.cs | 2 +- .../Internal/BackgroundCleaningJob.cs | 14 +++- .../Internal/BackgroundPollingJob.cs | 5 +- .../Internal/InMemoryJobStore.cs | 7 +- .../Internal/JobExecutedEvent.cs | 13 ++++ .../Abp/TaskManagement/BackgroundJobStore.cs | 8 ++- .../EfCoreBackgroundJobInfoRepository.cs | 6 +- .../TuiJuheNotificationPublishProvider.cs | 8 ++- .../LINGYUN.Abp.TuiJuhe.csproj | 2 +- .../LINGYUN/Abp/TuiJuhe/AbpTuiJuheModule.cs | 10 +-- .../Identity/OrganizationUnitWebHooker.cs | 1 + .../AuthServerHttpApiHostModule.Configure.cs | 2 +- .../AuthServerModule.Configure.cs | 2 +- ...BackendAdminHttpApiHostModule.Configure.cs | 2 +- ...onManagementHttpApiHostModule.Configure.cs | 2 +- ...rmManagementHttpApiHostModule.Configure.cs | 2 +- .../Distributed/NotificationEventHandler.cs | 11 ++-- ...ltimeMessageHttpApiHostModule.Configure.cs | 2 +- ...entityServerHttpApiHostModule.Configure.cs | 2 +- .../IdentityServerModule.Configure.cs | 2 +- .../AbpElsaActivitiesWebhooksTests.cs | 7 ++ .../AbpElsaActivitiesWebhooksTestsModule.cs | 30 +++++++++ ....Abp.Elsa.Activities.Webhooks.Tests.csproj | 29 ++++++++ .../MemoryWebhookPublisher.cs | 66 +++++++++++++++++++ .../PublishWebhookData.cs | 7 ++ .../PublishWebhookTests.cs | 21 ++++++ .../PublishWebhookWorkflow.cs | 26 ++++++++ .../Usings.cs | 2 + .../LINGYUN.Abp.Elsa.Tests/AbpElsaTests.cs | 8 +++ .../AbpElsaTestsModule.cs | 12 ++++ .../LINGYUN.Abp.Elsa.Tests.csproj | 28 ++++++++ .../tests/LINGYUN.Abp.Elsa.Tests/Usings.cs | 2 + 59 files changed, 487 insertions(+), 125 deletions(-) create mode 100644 aspnet-core/modules/common/LINGYUN.Abp.AspNetCore.Mvc.Client/Properties/launchSettings.json create mode 100644 aspnet-core/modules/common/LINGYUN.Abp.Notifications.Core/LINGYUN/Abp/Notifications/NotificationKeywords.cs create mode 100644 aspnet-core/tests/LINGYUN.Abp.Elsa.Activities.Webhooks.Tests/AbpElsaActivitiesWebhooksTests.cs create mode 100644 aspnet-core/tests/LINGYUN.Abp.Elsa.Activities.Webhooks.Tests/AbpElsaActivitiesWebhooksTestsModule.cs create mode 100644 aspnet-core/tests/LINGYUN.Abp.Elsa.Activities.Webhooks.Tests/LINGYUN.Abp.Elsa.Activities.Webhooks.Tests.csproj create mode 100644 aspnet-core/tests/LINGYUN.Abp.Elsa.Activities.Webhooks.Tests/MemoryWebhookPublisher.cs create mode 100644 aspnet-core/tests/LINGYUN.Abp.Elsa.Activities.Webhooks.Tests/PublishWebhookData.cs create mode 100644 aspnet-core/tests/LINGYUN.Abp.Elsa.Activities.Webhooks.Tests/PublishWebhookTests.cs create mode 100644 aspnet-core/tests/LINGYUN.Abp.Elsa.Activities.Webhooks.Tests/PublishWebhookWorkflow.cs create mode 100644 aspnet-core/tests/LINGYUN.Abp.Elsa.Activities.Webhooks.Tests/Usings.cs create mode 100644 aspnet-core/tests/LINGYUN.Abp.Elsa.Tests/AbpElsaTests.cs create mode 100644 aspnet-core/tests/LINGYUN.Abp.Elsa.Tests/AbpElsaTestsModule.cs create mode 100644 aspnet-core/tests/LINGYUN.Abp.Elsa.Tests/LINGYUN.Abp.Elsa.Tests.csproj create mode 100644 aspnet-core/tests/LINGYUN.Abp.Elsa.Tests/Usings.cs diff --git a/aspnet-core/Directory.Build.props b/aspnet-core/Directory.Build.props index 6f785d6ed..da5878eb3 100644 --- a/aspnet-core/Directory.Build.props +++ b/aspnet-core/Directory.Build.props @@ -1,11 +1,11 @@  - 7.0.0 - 7.0.0 + 7.0.1 + 7.0.1 1.9.0 1.0.2 7.0.0 - 2.10.0-rc2 + 2.10.1 1.5.10 2.13.0 3.0.434 diff --git a/aspnet-core/LINGYUN.MicroService.Common.sln b/aspnet-core/LINGYUN.MicroService.Common.sln index 5e7eb96e1..d622f7c1e 100644 --- a/aspnet-core/LINGYUN.MicroService.Common.sln +++ b/aspnet-core/LINGYUN.MicroService.Common.sln @@ -168,8 +168,6 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.Abp.Logging.Serilog EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.Abp.Serilog.Enrichers.Application", "modules\logging\LINGYUN.Abp.Serilog.Enrichers.Application\LINGYUN.Abp.Serilog.Enrichers.Application.csproj", "{CCB4AE25-7059-4CA0-A3AB-CBB863A3F672}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.Abp.Localization.Dynamic", "modules\common\LINGYUN.Abp.Localization.Dynamic\LINGYUN.Abp.Localization.Dynamic.csproj", "{4635BDFB-B647-43E2-BAA5-D3C17899AF24}" -EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.Abp.Data.DbMigrator", "modules\common\LINGYUN.Abp.Data.DbMigrator\LINGYUN.Abp.Data.DbMigrator.csproj", "{3993A315-B250-4C5D-98C7-90FD06841B66}" EndProject Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "data-protection", "data-protection", "{A0910407-CE69-4DC8-9721-F4324C22EEA8}" @@ -294,9 +292,15 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.Abp.Dynamic.Queryab EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.Abp.Dynamic.Queryable.HttpApi", "modules\dynamic-queryable\LINGYUN.Abp.Dynamic.Queryable.HttpApi\LINGYUN.Abp.Dynamic.Queryable.HttpApi.csproj", "{F515E8FA-449F-4D54-98A7-0F7DF1AA3C94}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "LINGYUN.Linq.Dynamic.Queryable.Tests", "tests\LINGYUN.Linq.Dynamic.Queryable.Tests\LINGYUN.Linq.Dynamic.Queryable.Tests.csproj", "{E9AD81CA-D992-4F74-BD23-680CF98BE262}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.Linq.Dynamic.Queryable.Tests", "tests\LINGYUN.Linq.Dynamic.Queryable.Tests\LINGYUN.Linq.Dynamic.Queryable.Tests.csproj", "{E9AD81CA-D992-4F74-BD23-680CF98BE262}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.Abp.DynamicQueryable.EntityFrameworkCore.Tests", "tests\LINGYUN.Abp.DynamicQueryable.EntityFrameworkCore.Tests\LINGYUN.Abp.DynamicQueryable.EntityFrameworkCore.Tests.csproj", "{2E29FBF7-CECB-4DF9-9E02-5AFB704DDD10}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.Abp.Localization.CultureMap", "modules\localization\LINGYUN.Abp.Localization.CultureMap\LINGYUN.Abp.Localization.CultureMap.csproj", "{1206B9FC-0177-4061-A06E-F82B2CC01ACE}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.Abp.Localization.Persistence", "modules\localization\LINGYUN.Abp.Localization.Persistence\LINGYUN.Abp.Localization.Persistence.csproj", "{E097FAEC-5015-4159-BC00-A737483EFA80}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "LINGYUN.Abp.DynamicQueryable.EntityFrameworkCore.Tests", "tests\LINGYUN.Abp.DynamicQueryable.EntityFrameworkCore.Tests\LINGYUN.Abp.DynamicQueryable.EntityFrameworkCore.Tests.csproj", "{2E29FBF7-CECB-4DF9-9E02-5AFB704DDD10}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.Abp.AspNetCore.Mvc.Localization", "modules\localization\LINGYUN.Abp.AspNetCore.Mvc.Localization\LINGYUN.Abp.AspNetCore.Mvc.Localization.csproj", "{809C86E9-0C70-41E4-B26D-D9AFF34F03D0}" EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution @@ -560,10 +564,6 @@ Global {CCB4AE25-7059-4CA0-A3AB-CBB863A3F672}.Debug|Any CPU.Build.0 = Debug|Any CPU {CCB4AE25-7059-4CA0-A3AB-CBB863A3F672}.Release|Any CPU.ActiveCfg = Release|Any CPU {CCB4AE25-7059-4CA0-A3AB-CBB863A3F672}.Release|Any CPU.Build.0 = Release|Any CPU - {4635BDFB-B647-43E2-BAA5-D3C17899AF24}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {4635BDFB-B647-43E2-BAA5-D3C17899AF24}.Debug|Any CPU.Build.0 = Debug|Any CPU - {4635BDFB-B647-43E2-BAA5-D3C17899AF24}.Release|Any CPU.ActiveCfg = Release|Any CPU - {4635BDFB-B647-43E2-BAA5-D3C17899AF24}.Release|Any CPU.Build.0 = Release|Any CPU {3993A315-B250-4C5D-98C7-90FD06841B66}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {3993A315-B250-4C5D-98C7-90FD06841B66}.Debug|Any CPU.Build.0 = Debug|Any CPU {3993A315-B250-4C5D-98C7-90FD06841B66}.Release|Any CPU.ActiveCfg = Release|Any CPU @@ -772,6 +772,18 @@ Global {2E29FBF7-CECB-4DF9-9E02-5AFB704DDD10}.Debug|Any CPU.Build.0 = Debug|Any CPU {2E29FBF7-CECB-4DF9-9E02-5AFB704DDD10}.Release|Any CPU.ActiveCfg = Release|Any CPU {2E29FBF7-CECB-4DF9-9E02-5AFB704DDD10}.Release|Any CPU.Build.0 = Release|Any CPU + {1206B9FC-0177-4061-A06E-F82B2CC01ACE}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {1206B9FC-0177-4061-A06E-F82B2CC01ACE}.Debug|Any CPU.Build.0 = Debug|Any CPU + {1206B9FC-0177-4061-A06E-F82B2CC01ACE}.Release|Any CPU.ActiveCfg = Release|Any CPU + {1206B9FC-0177-4061-A06E-F82B2CC01ACE}.Release|Any CPU.Build.0 = Release|Any CPU + {E097FAEC-5015-4159-BC00-A737483EFA80}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {E097FAEC-5015-4159-BC00-A737483EFA80}.Debug|Any CPU.Build.0 = Debug|Any CPU + {E097FAEC-5015-4159-BC00-A737483EFA80}.Release|Any CPU.ActiveCfg = Release|Any CPU + {E097FAEC-5015-4159-BC00-A737483EFA80}.Release|Any CPU.Build.0 = Release|Any CPU + {809C86E9-0C70-41E4-B26D-D9AFF34F03D0}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {809C86E9-0C70-41E4-B26D-D9AFF34F03D0}.Debug|Any CPU.Build.0 = Debug|Any CPU + {809C86E9-0C70-41E4-B26D-D9AFF34F03D0}.Release|Any CPU.ActiveCfg = Release|Any CPU + {809C86E9-0C70-41E4-B26D-D9AFF34F03D0}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE @@ -856,7 +868,6 @@ Global {CE7E525F-8628-4076-8A2E-B615B944D140} = {23F4260D-87C1-4AA6-A302-0A8A76D53BA1} {CD556F2A-A96B-43A2-8BB3-6C0EBA27EB02} = {23F4260D-87C1-4AA6-A302-0A8A76D53BA1} {CCB4AE25-7059-4CA0-A3AB-CBB863A3F672} = {23F4260D-87C1-4AA6-A302-0A8A76D53BA1} - {4635BDFB-B647-43E2-BAA5-D3C17899AF24} = {E73A0F8B-2B4B-4CED-82A4-1EE5E0B89744} {3993A315-B250-4C5D-98C7-90FD06841B66} = {086BE5BE-8594-4DA7-8819-935FEF76DABD} {A0910407-CE69-4DC8-9721-F4324C22EEA8} = {02EA4E78-5891-43BC-944F-3E52FEE032E4} {519BF5DA-30E4-40CF-829A-93F526E2AED8} = {A0910407-CE69-4DC8-9721-F4324C22EEA8} @@ -920,6 +931,9 @@ Global {F515E8FA-449F-4D54-98A7-0F7DF1AA3C94} = {3975D028-3672-4D23-BF77-B7F4A445D44E} {E9AD81CA-D992-4F74-BD23-680CF98BE262} = {B86C21A4-73B7-471E-B73A-B4B905EC9435} {2E29FBF7-CECB-4DF9-9E02-5AFB704DDD10} = {B86C21A4-73B7-471E-B73A-B4B905EC9435} + {1206B9FC-0177-4061-A06E-F82B2CC01ACE} = {E73A0F8B-2B4B-4CED-82A4-1EE5E0B89744} + {E097FAEC-5015-4159-BC00-A737483EFA80} = {E73A0F8B-2B4B-4CED-82A4-1EE5E0B89744} + {809C86E9-0C70-41E4-B26D-D9AFF34F03D0} = {E73A0F8B-2B4B-4CED-82A4-1EE5E0B89744} EndGlobalSection GlobalSection(ExtensibilityGlobals) = postSolution SolutionGuid = {06C707C6-02C0-411A-AD3B-2D0E13787CB8} diff --git a/aspnet-core/LINGYUN.MicroService.Workflow.sln b/aspnet-core/LINGYUN.MicroService.Workflow.sln index 87889e316..9357b7af5 100644 --- a/aspnet-core/LINGYUN.MicroService.Workflow.sln +++ b/aspnet-core/LINGYUN.MicroService.Workflow.sln @@ -47,6 +47,14 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.Abp.Webhooks.EventB EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.Abp.Elsa.EntityFrameworkCore.MySql", "modules\elsa\LINGYUN.Abp.Elsa.EntityFrameworkCore.MySql\LINGYUN.Abp.Elsa.EntityFrameworkCore.MySql.csproj", "{4B20572A-10E7-4414-943A-974F275677B4}" EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "tests", "tests", "{035B86BF-DD63-4A78-B8CE-29994860C948}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "LINGYUN.Abp.Elsa.Tests", "tests\LINGYUN.Abp.Elsa.Tests\LINGYUN.Abp.Elsa.Tests.csproj", "{9F96F261-93F7-47C0-8F07-72CE39CE20A3}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.Abp.TestsBase", "tests\LINGYUN.Abp.TestBase\LINGYUN.Abp.TestsBase.csproj", "{8395DA41-AF40-4B0D-B36D-FA8A56E75AED}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "LINGYUN.Abp.Elsa.Activities.Webhooks.Tests", "tests\LINGYUN.Abp.Elsa.Activities.Webhooks.Tests\LINGYUN.Abp.Elsa.Activities.Webhooks.Tests.csproj", "{B3C2AFCC-EE59-4CB4-AB62-B90D60335632}" +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU @@ -129,6 +137,18 @@ Global {4B20572A-10E7-4414-943A-974F275677B4}.Debug|Any CPU.Build.0 = Debug|Any CPU {4B20572A-10E7-4414-943A-974F275677B4}.Release|Any CPU.ActiveCfg = Release|Any CPU {4B20572A-10E7-4414-943A-974F275677B4}.Release|Any CPU.Build.0 = Release|Any CPU + {9F96F261-93F7-47C0-8F07-72CE39CE20A3}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {9F96F261-93F7-47C0-8F07-72CE39CE20A3}.Debug|Any CPU.Build.0 = Debug|Any CPU + {9F96F261-93F7-47C0-8F07-72CE39CE20A3}.Release|Any CPU.ActiveCfg = Release|Any CPU + {9F96F261-93F7-47C0-8F07-72CE39CE20A3}.Release|Any CPU.Build.0 = Release|Any CPU + {8395DA41-AF40-4B0D-B36D-FA8A56E75AED}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {8395DA41-AF40-4B0D-B36D-FA8A56E75AED}.Debug|Any CPU.Build.0 = Debug|Any CPU + {8395DA41-AF40-4B0D-B36D-FA8A56E75AED}.Release|Any CPU.ActiveCfg = Release|Any CPU + {8395DA41-AF40-4B0D-B36D-FA8A56E75AED}.Release|Any CPU.Build.0 = Release|Any CPU + {B3C2AFCC-EE59-4CB4-AB62-B90D60335632}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {B3C2AFCC-EE59-4CB4-AB62-B90D60335632}.Debug|Any CPU.Build.0 = Debug|Any CPU + {B3C2AFCC-EE59-4CB4-AB62-B90D60335632}.Release|Any CPU.ActiveCfg = Release|Any CPU + {B3C2AFCC-EE59-4CB4-AB62-B90D60335632}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE @@ -153,6 +173,9 @@ Global {6489B162-2B28-42B9-9AD4-EB5CCBB8AE85} = {6DA78E72-BA55-4ECF-97DB-6258174D3E2A} {B6246B7A-4095-433A-B981-5D1E43CDF712} = {6DA78E72-BA55-4ECF-97DB-6258174D3E2A} {4B20572A-10E7-4414-943A-974F275677B4} = {F1CCBEC7-ACAB-4DC5-909E-D8CC2E1B7EEC} + {9F96F261-93F7-47C0-8F07-72CE39CE20A3} = {035B86BF-DD63-4A78-B8CE-29994860C948} + {8395DA41-AF40-4B0D-B36D-FA8A56E75AED} = {035B86BF-DD63-4A78-B8CE-29994860C948} + {B3C2AFCC-EE59-4CB4-AB62-B90D60335632} = {035B86BF-DD63-4A78-B8CE-29994860C948} EndGlobalSection GlobalSection(ExtensibilityGlobals) = postSolution SolutionGuid = {6BB7A5DE-DA12-44DC-BC9B-0F6CA524346F} diff --git a/aspnet-core/common.props b/aspnet-core/common.props index 2fb95982f..217d8cf72 100644 --- a/aspnet-core/common.props +++ b/aspnet-core/common.props @@ -1,7 +1,7 @@ latest - 7.0.0 + 7.0.1 colin $(NoWarn);CS1591;CS0436;CS8618;NU1803 https://github.com/colinin/abp-next-admin diff --git a/aspnet-core/modules/cli/LINGYUN.Abp.Cli/LINGYUN/Abp/Cli/Commands/GenerateProxyCommand.cs b/aspnet-core/modules/cli/LINGYUN.Abp.Cli/LINGYUN/Abp/Cli/Commands/GenerateProxyCommand.cs index e2e8ddcb3..a76c5daaf 100644 --- a/aspnet-core/modules/cli/LINGYUN.Abp.Cli/LINGYUN/Abp/Cli/Commands/GenerateProxyCommand.cs +++ b/aspnet-core/modules/cli/LINGYUN.Abp.Cli/LINGYUN/Abp/Cli/Commands/GenerateProxyCommand.cs @@ -13,6 +13,7 @@ using Volo.Abp.DependencyInjection; using AbpCliServiceProxyOptions = Volo.Abp.Cli.ServiceProxying.AbpCliServiceProxyOptions; using IServiceProxyGenerator = Volo.Abp.Cli.ServiceProxying.IServiceProxyGenerator; using VoloGenerateProxyArgs = Volo.Abp.Cli.ServiceProxying.GenerateProxyArgs; +using ServiceType = Volo.Abp.Cli.ServiceProxying.ServiceType; namespace LINGYUN.Abp.Cli.Commands; @@ -65,6 +66,20 @@ public class GenerateProxyCommand : IConsoleCommand, ITransientDependency var source = commandLineArgs.Options.GetOrNull(Options.Source.Short, Options.Source.Long); var workDirectory = commandLineArgs.Options.GetOrNull(Options.WorkDirectory.Short, Options.WorkDirectory.Long) ?? Directory.GetCurrentDirectory(); var folder = commandLineArgs.Options.GetOrNull(Options.Folder.Long); + var serviceTypeArg = commandLineArgs.Options.GetOrNull(Options.Module.Short, Options.ServiceType.Long); + + ServiceType? serviceType = null; + if (!serviceTypeArg.IsNullOrWhiteSpace()) + { + serviceType = serviceTypeArg.ToLower() == "application" + ? ServiceType.Application + : serviceTypeArg.ToLower() == "integration" + ? ServiceType.Integration + : null; + } + + var withoutContracts = commandLineArgs.Options.ContainsKey(Options.WithoutContracts.Short) || + commandLineArgs.Options.ContainsKey(Options.WithoutContracts.Long); return new GenerateProxyArgs( CommandName, @@ -78,6 +93,8 @@ public class GenerateProxyCommand : IConsoleCommand, ITransientDependency folder, provider, apiScriptProxy, + serviceType, + withoutContracts, commandLineArgs.Options); } @@ -192,5 +209,17 @@ public class GenerateProxyCommand : IConsoleCommand, ITransientDependency public const string Short = "wd"; public const string Long = "working-directory"; } + + public static class ServiceType + { + public const string Short = "st"; + public const string Long = "service-type"; + } + + public static class WithoutContracts + { + public const string Short = "c"; + public const string Long = "without-contracts"; + } } } diff --git a/aspnet-core/modules/cli/LINGYUN.Abp.Cli/LINGYUN/Abp/Cli/ServiceProxying/CSharp/CSharpServiceProxyGenerator.cs b/aspnet-core/modules/cli/LINGYUN.Abp.Cli/LINGYUN/Abp/Cli/ServiceProxying/CSharp/CSharpServiceProxyGenerator.cs index 2a24a356c..eac4e173a 100644 --- a/aspnet-core/modules/cli/LINGYUN.Abp.Cli/LINGYUN/Abp/Cli/ServiceProxying/CSharp/CSharpServiceProxyGenerator.cs +++ b/aspnet-core/modules/cli/LINGYUN.Abp.Cli/LINGYUN/Abp/Cli/ServiceProxying/CSharp/CSharpServiceProxyGenerator.cs @@ -428,5 +428,10 @@ public class CSharpServiceProxyGenerator : ServiceProxyGeneratorBase extraProperties = null) - : base(commandName, workDirectory, module, url, output, target, apiName, source, folder, extraProperties) + : base(commandName, workDirectory, module, url, output, target, apiName, source, folder, serviceType, withoutContracts, extraProperties) { ApiScriptProxy = apiScriptProxy; Provider = provider; diff --git a/aspnet-core/modules/cli/LINGYUN.Abp.Cli/LINGYUN/Abp/Cli/ServiceProxying/TypeScript/TypeScriptServiceProxyGenerator.cs b/aspnet-core/modules/cli/LINGYUN.Abp.Cli/LINGYUN/Abp/Cli/ServiceProxying/TypeScript/TypeScriptServiceProxyGenerator.cs index 9aebe281a..ca8e7db70 100644 --- a/aspnet-core/modules/cli/LINGYUN.Abp.Cli/LINGYUN/Abp/Cli/ServiceProxying/TypeScript/TypeScriptServiceProxyGenerator.cs +++ b/aspnet-core/modules/cli/LINGYUN.Abp.Cli/LINGYUN/Abp/Cli/ServiceProxying/TypeScript/TypeScriptServiceProxyGenerator.cs @@ -2,14 +2,11 @@ using Microsoft.Extensions.Options; using System; using System.IO; -using System.Linq; using System.Threading.Tasks; -using Volo.Abp; using Volo.Abp.Cli; using Volo.Abp.Cli.Http; using Volo.Abp.Cli.ServiceProxying; using Volo.Abp.DependencyInjection; -using Volo.Abp.Http.Modeling; using Volo.Abp.IO; using Volo.Abp.Json; @@ -111,26 +108,8 @@ public class TypeScriptServiceProxyGenerator : ServiceProxyGeneratorBase GetApplicationApiDescriptionModelAsync(Volo.Abp.Cli.ServiceProxying.GenerateProxyArgs args) + protected override ServiceType? GetDefaultServiceType(Volo.Abp.Cli.ServiceProxying.GenerateProxyArgs args) { - Check.NotNull(args.Url, nameof(args.Url)); - - var client = CliHttpClientFactory.CreateClient(); - - var url = CliUrls.GetApiDefinitionUrl(args.Url); - var apiDefinitionResult = await client.GetStringAsync(url + "?includeTypes=true"); - var apiDefinition = JsonSerializer.Deserialize(apiDefinitionResult); - - var moduleDefinition = apiDefinition.Modules.FirstOrDefault(x => string.Equals(x.Key, args.Module, StringComparison.CurrentCultureIgnoreCase)).Value; - if (moduleDefinition == null) - { - throw new CliUsageException($"Module name: {args.Module} is invalid"); - } - - var apiDescriptionModel = ApplicationApiDescriptionModel.Create(); - apiDescriptionModel.AddModule(moduleDefinition); - apiDescriptionModel.Types = apiDefinition.Types; - - return apiDescriptionModel; + return ServiceType.Application; } } diff --git a/aspnet-core/modules/common/LINGYUN.Abp.AspNetCore.Mvc.Client/Properties/launchSettings.json b/aspnet-core/modules/common/LINGYUN.Abp.AspNetCore.Mvc.Client/Properties/launchSettings.json new file mode 100644 index 000000000..3ad267eac --- /dev/null +++ b/aspnet-core/modules/common/LINGYUN.Abp.AspNetCore.Mvc.Client/Properties/launchSettings.json @@ -0,0 +1,12 @@ +{ + "profiles": { + "LINGYUN.Abp.AspNetCore.Mvc.Client": { + "commandName": "Project", + "launchBrowser": true, + "environmentVariables": { + "ASPNETCORE_ENVIRONMENT": "Development" + }, + "applicationUrl": "https://localhost:52376;http://localhost:52377" + } + } +} \ No newline at end of file diff --git a/aspnet-core/modules/common/LINGYUN.Abp.Notifications.Core/LINGYUN/Abp/Notifications/NotificationKeywords.cs b/aspnet-core/modules/common/LINGYUN.Abp.Notifications.Core/LINGYUN/Abp/Notifications/NotificationKeywords.cs new file mode 100644 index 000000000..a06b25307 --- /dev/null +++ b/aspnet-core/modules/common/LINGYUN.Abp.Notifications.Core/LINGYUN/Abp/Notifications/NotificationKeywords.cs @@ -0,0 +1,31 @@ +namespace LINGYUN.Abp.Notifications; +/// +/// 通知类关键字,请勿随意占用 +/// +public static class NotificationKeywords +{ + /// + /// 通知标识,全局唯一标识,long类型字段 + /// + public const string Id = "notificationId"; + /// + /// 通知名称 + /// + public const string Name = "notification"; + /// + /// 来源用户标识 + /// + public const string FormUser = "formUser"; + /// + /// 目标用户标识 + /// + public const string ToUser = "toUser"; + /// + /// 通知标题 + /// + public const string Title = "title"; + /// + /// 创建时间 + /// + public const string CreationTime = "creationTime"; +} diff --git a/aspnet-core/modules/common/LINGYUN.Abp.Notifications/LINGYUN/Abp/Notifications/AbpNotificationsPublishOptions.cs b/aspnet-core/modules/common/LINGYUN.Abp.Notifications/LINGYUN/Abp/Notifications/AbpNotificationsPublishOptions.cs index 9a14bc0de..e53173e6f 100644 --- a/aspnet-core/modules/common/LINGYUN.Abp.Notifications/LINGYUN/Abp/Notifications/AbpNotificationsPublishOptions.cs +++ b/aspnet-core/modules/common/LINGYUN.Abp.Notifications/LINGYUN/Abp/Notifications/AbpNotificationsPublishOptions.cs @@ -5,6 +5,7 @@ namespace LINGYUN.Abp.Notifications; public class AbpNotificationsPublishOptions { + public const string DefaultDateTimeFormat = "yyyy-MM-dd HH:mm:ss"; /// /// 自定义通知发布提供者集合 /// @@ -18,11 +19,19 @@ public class AbpNotificationsPublishOptions /// 默认60天 /// public TimeSpan ExpirationTime { get; set; } + /// + /// 默认时间日期序列化格式 + /// + /// + /// 默认: yyyy-MM-dd HH:mm:ss + /// + public string DateTimeFormat { get; set; } public AbpNotificationsPublishOptions() { PublishProviders = new TypeList(); NotificationDataMappings = new NotificationDataMappingDictionary(); ExpirationTime = TimeSpan.FromDays(60); + DateTimeFormat = DefaultDateTimeFormat; } } diff --git a/aspnet-core/modules/dapr/LINGYUN.Abp.Dapr.Actors/LINGYUN/Abp/Dapr/Actors/AbpDaprActorProxyOptions.cs b/aspnet-core/modules/dapr/LINGYUN.Abp.Dapr.Actors/LINGYUN/Abp/Dapr/Actors/AbpDaprActorProxyOptions.cs index 8fd9331c7..890064acc 100644 --- a/aspnet-core/modules/dapr/LINGYUN.Abp.Dapr.Actors/LINGYUN/Abp/Dapr/Actors/AbpDaprActorProxyOptions.cs +++ b/aspnet-core/modules/dapr/LINGYUN.Abp.Dapr.Actors/LINGYUN/Abp/Dapr/Actors/AbpDaprActorProxyOptions.cs @@ -1,9 +1,6 @@ using LINGYUN.Abp.Dapr.Actors.DynamicProxying; using System; using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; namespace LINGYUN.Abp.Dapr.Actors { diff --git a/aspnet-core/modules/dapr/LINGYUN.Abp.Dapr.Actors/LINGYUN/Abp/Dapr/Actors/DaprRemoteServiceConfigurationExtensions.cs b/aspnet-core/modules/dapr/LINGYUN.Abp.Dapr.Actors/LINGYUN/Abp/Dapr/Actors/DaprRemoteServiceConfigurationExtensions.cs index edb32a620..ef7524660 100644 --- a/aspnet-core/modules/dapr/LINGYUN.Abp.Dapr.Actors/LINGYUN/Abp/Dapr/Actors/DaprRemoteServiceConfigurationExtensions.cs +++ b/aspnet-core/modules/dapr/LINGYUN.Abp.Dapr.Actors/LINGYUN/Abp/Dapr/Actors/DaprRemoteServiceConfigurationExtensions.cs @@ -32,7 +32,7 @@ public static class DaprRemoteServiceConfigurationExtensions { Check.NotNullOrEmpty(configuration, nameof(configuration)); - configuration.TryGetValue("DaprTimeout", out var timeOutValue); + configuration.TryGetValue(RequestTimeOut, out var timeOutValue); if (!int.TryParse(timeOutValue ?? "30000", out var timeOut)) { timeOut = 30000; diff --git a/aspnet-core/modules/elsa/LINGYUN.Abp.Elsa.Activities.BlobStoring/LINGYUN/Abp/Elsa/Activities/BlobStoring/Activities/BlobExists.cs b/aspnet-core/modules/elsa/LINGYUN.Abp.Elsa.Activities.BlobStoring/LINGYUN/Abp/Elsa/Activities/BlobStoring/Activities/BlobExists.cs index 551b3958a..3d59f5744 100644 --- a/aspnet-core/modules/elsa/LINGYUN.Abp.Elsa.Activities.BlobStoring/LINGYUN/Abp/Elsa/Activities/BlobStoring/Activities/BlobExists.cs +++ b/aspnet-core/modules/elsa/LINGYUN.Abp.Elsa.Activities.BlobStoring/LINGYUN/Abp/Elsa/Activities/BlobStoring/Activities/BlobExists.cs @@ -18,7 +18,7 @@ public class BlobExists : BlobActivity { } - protected async override ValueTask OnActivitExecuteAsync(ActivityExecutionContext context) + protected async override ValueTask OnActivityExecuteAsync(ActivityExecutionContext context) { var exists = await BlobContainer.ExistsAsync(Path, context.CancellationToken); if (exists) diff --git a/aspnet-core/modules/elsa/LINGYUN.Abp.Elsa.Activities.BlobStoring/LINGYUN/Abp/Elsa/Activities/BlobStoring/Activities/DeleteBlob.cs b/aspnet-core/modules/elsa/LINGYUN.Abp.Elsa.Activities.BlobStoring/LINGYUN/Abp/Elsa/Activities/BlobStoring/Activities/DeleteBlob.cs index bec05b7fa..d62d7ee62 100644 --- a/aspnet-core/modules/elsa/LINGYUN.Abp.Elsa.Activities.BlobStoring/LINGYUN/Abp/Elsa/Activities/BlobStoring/Activities/DeleteBlob.cs +++ b/aspnet-core/modules/elsa/LINGYUN.Abp.Elsa.Activities.BlobStoring/LINGYUN/Abp/Elsa/Activities/BlobStoring/Activities/DeleteBlob.cs @@ -18,7 +18,7 @@ public class DeleteBlob : BlobActivity { } - protected async override ValueTask OnActivitExecuteAsync(ActivityExecutionContext context) + protected async override ValueTask OnActivityExecuteAsync(ActivityExecutionContext context) { await BlobContainer.DeleteAsync(Path, context.CancellationToken); diff --git a/aspnet-core/modules/elsa/LINGYUN.Abp.Elsa.Activities.BlobStoring/LINGYUN/Abp/Elsa/Activities/BlobStoring/Activities/ReadBlob.cs b/aspnet-core/modules/elsa/LINGYUN.Abp.Elsa.Activities.BlobStoring/LINGYUN/Abp/Elsa/Activities/BlobStoring/Activities/ReadBlob.cs index 42d345c56..44b2a0257 100644 --- a/aspnet-core/modules/elsa/LINGYUN.Abp.Elsa.Activities.BlobStoring/LINGYUN/Abp/Elsa/Activities/BlobStoring/Activities/ReadBlob.cs +++ b/aspnet-core/modules/elsa/LINGYUN.Abp.Elsa.Activities.BlobStoring/LINGYUN/Abp/Elsa/Activities/BlobStoring/Activities/ReadBlob.cs @@ -21,7 +21,7 @@ public class ReadBlob : BlobActivity { } - protected async override ValueTask OnActivitExecuteAsync(ActivityExecutionContext context) + protected async override ValueTask OnActivityExecuteAsync(ActivityExecutionContext context) { Output = await BlobContainer.GetAllBytesAsync(Path, context.CancellationToken); diff --git a/aspnet-core/modules/elsa/LINGYUN.Abp.Elsa.Activities.BlobStoring/LINGYUN/Abp/Elsa/Activities/BlobStoring/Activities/WriteBlob.cs b/aspnet-core/modules/elsa/LINGYUN.Abp.Elsa.Activities.BlobStoring/LINGYUN/Abp/Elsa/Activities/BlobStoring/Activities/WriteBlob.cs index 21a99c7e5..11bdef347 100644 --- a/aspnet-core/modules/elsa/LINGYUN.Abp.Elsa.Activities.BlobStoring/LINGYUN/Abp/Elsa/Activities/BlobStoring/Activities/WriteBlob.cs +++ b/aspnet-core/modules/elsa/LINGYUN.Abp.Elsa.Activities.BlobStoring/LINGYUN/Abp/Elsa/Activities/BlobStoring/Activities/WriteBlob.cs @@ -28,7 +28,7 @@ public class WriteBlob : BlobActivity { } - protected async override ValueTask OnActivitExecuteAsync(ActivityExecutionContext context) + protected async override ValueTask OnActivityExecuteAsync(ActivityExecutionContext context) { await BlobContainer.SaveAsync(Path, Bytes, Overwrite, context.CancellationToken); diff --git a/aspnet-core/modules/elsa/LINGYUN.Abp.Elsa.Activities.Emailing/LINGYUN/Abp/Elsa/Activities/Emailing/Activities/SendEmailing.cs b/aspnet-core/modules/elsa/LINGYUN.Abp.Elsa.Activities.Emailing/LINGYUN/Abp/Elsa/Activities/Emailing/Activities/SendEmailing.cs index 24f78161b..46bb40c1e 100644 --- a/aspnet-core/modules/elsa/LINGYUN.Abp.Elsa.Activities.Emailing/LINGYUN/Abp/Elsa/Activities/Emailing/Activities/SendEmailing.cs +++ b/aspnet-core/modules/elsa/LINGYUN.Abp.Elsa.Activities.Emailing/LINGYUN/Abp/Elsa/Activities/Emailing/Activities/SendEmailing.cs @@ -4,7 +4,6 @@ using Elsa.Attributes; using Elsa.Design; using Elsa.Expressions; using Elsa.Providers.WorkflowStorage; -using Elsa.Services; using Elsa.Services.Models; using System; using System.Collections.Generic; @@ -61,7 +60,7 @@ public class SendEmailing : AbpActivity )] public object? Model { get; set; } - protected async override ValueTask OnActivitExecuteAsync(ActivityExecutionContext context) + protected async override ValueTask OnActivityExecuteAsync(ActivityExecutionContext context) { var to = To.JoinAsString(";"); var content = Body; diff --git a/aspnet-core/modules/elsa/LINGYUN.Abp.Elsa.Activities.IM/LINGYUN/Abp/Elsa/Activities/IM/Activities/SendMessage.cs b/aspnet-core/modules/elsa/LINGYUN.Abp.Elsa.Activities.IM/LINGYUN/Abp/Elsa/Activities/IM/Activities/SendMessage.cs index 870f42904..c011fe078 100644 --- a/aspnet-core/modules/elsa/LINGYUN.Abp.Elsa.Activities.IM/LINGYUN/Abp/Elsa/Activities/IM/Activities/SendMessage.cs +++ b/aspnet-core/modules/elsa/LINGYUN.Abp.Elsa.Activities.IM/LINGYUN/Abp/Elsa/Activities/IM/Activities/SendMessage.cs @@ -5,7 +5,6 @@ using Elsa.Services.Models; using LINGYUN.Abp.IM.Messages; using System; using System.Threading.Tasks; -using Volo.Abp.MultiTenancy; using Volo.Abp.Timing; namespace LINGYUN.Abp.Elsa.Activities.IM; @@ -50,10 +49,9 @@ public class SendMessage : AbpActivity } - protected async override ValueTask OnActivitExecuteAsync(ActivityExecutionContext context) + protected async override ValueTask OnActivityExecuteAsync(ActivityExecutionContext context) { ChatMessage? chatMessage = null; - var currentTenant = context.GetService(); if (!GroupId.IsNullOrWhiteSpace()) { @@ -66,7 +64,7 @@ public class SendMessage : AbpActivity false, MessageType.Text, MessageSourceType.User, - currentTenant.Id); + TenantId); } else if (To.HasValue) { @@ -79,7 +77,7 @@ public class SendMessage : AbpActivity false, MessageType.Text, MessageSourceType.User, - currentTenant.Id); + TenantId); } if (chatMessage != null) diff --git a/aspnet-core/modules/elsa/LINGYUN.Abp.Elsa.Activities.Notifications/LINGYUN/Abp/Elsa/Activities/Notifications/Activities/SendNotification.cs b/aspnet-core/modules/elsa/LINGYUN.Abp.Elsa.Activities.Notifications/LINGYUN/Abp/Elsa/Activities/Notifications/Activities/SendNotification.cs index 1de561e7a..7e570da78 100644 --- a/aspnet-core/modules/elsa/LINGYUN.Abp.Elsa.Activities.Notifications/LINGYUN/Abp/Elsa/Activities/Notifications/Activities/SendNotification.cs +++ b/aspnet-core/modules/elsa/LINGYUN.Abp.Elsa.Activities.Notifications/LINGYUN/Abp/Elsa/Activities/Notifications/Activities/SendNotification.cs @@ -4,14 +4,12 @@ using Elsa.Attributes; using Elsa.Design; using Elsa.Expressions; using Elsa.Providers.WorkflowStorage; -using Elsa.Services; using Elsa.Services.Models; using LINGYUN.Abp.Notifications; using System; using System.Collections.Generic; using System.Linq; using System.Threading.Tasks; -using Volo.Abp.MultiTenancy; namespace LINGYUN.Abp.Elsa.Activities.Notifications; @@ -54,9 +52,8 @@ public class SendNotification : AbpActivity } - protected async override ValueTask OnActivitExecuteAsync(ActivityExecutionContext context) + protected async override ValueTask OnActivityExecuteAsync(ActivityExecutionContext context) { - var currentTenant = context.GetService(); switch (NotificationData) { case NotificationData data: @@ -64,7 +61,7 @@ public class SendNotification : AbpActivity NotificationName, data, GetUserIdentifiers(), - currentTenant.Id, + TenantId, Severity); return Done(); case NotificationTemplate template: @@ -72,7 +69,7 @@ public class SendNotification : AbpActivity NotificationName, template, GetUserIdentifiers(), - currentTenant.Id, + TenantId, Severity); return Done(); } diff --git a/aspnet-core/modules/elsa/LINGYUN.Abp.Elsa.Activities.Sms/LINGYUN/Abp/Elsa/Activities/Sms/Activities/SendSms.cs b/aspnet-core/modules/elsa/LINGYUN.Abp.Elsa.Activities.Sms/LINGYUN/Abp/Elsa/Activities/Sms/Activities/SendSms.cs index c0fb509ef..c2c2d3cc0 100644 --- a/aspnet-core/modules/elsa/LINGYUN.Abp.Elsa.Activities.Sms/LINGYUN/Abp/Elsa/Activities/Sms/Activities/SendSms.cs +++ b/aspnet-core/modules/elsa/LINGYUN.Abp.Elsa.Activities.Sms/LINGYUN/Abp/Elsa/Activities/Sms/Activities/SendSms.cs @@ -3,7 +3,6 @@ using Elsa.ActivityResults; using Elsa.Attributes; using Elsa.Design; using Elsa.Expressions; -using Elsa.Services; using Elsa.Services.Models; using System; using System.Collections.Generic; @@ -16,7 +15,7 @@ namespace LINGYUN.Abp.Elsa.Activities.Sms; Category = "Sms", Description = "Send an sms message.", Outcomes = new[] { OutcomeNames.Done })] -public class SendSms : Activity +public class SendSms : AbpActivity { private readonly ISmsSender _smsSender; @@ -44,7 +43,7 @@ public class SendSms : Activity )] public Dictionary Properties { get; set; } = new(); - protected async override ValueTask OnExecuteAsync(ActivityExecutionContext context) + protected async override ValueTask OnActivityExecuteAsync(ActivityExecutionContext context) { var smsMessage = new SmsMessage(To.JoinAsString(";"), Message); foreach (var prop in Properties) diff --git a/aspnet-core/modules/elsa/LINGYUN.Abp.Elsa.Activities.Webhooks/LINGYUN/Abp/Elsa/Activities/Webhooks/Activities/PublishWebhook.cs b/aspnet-core/modules/elsa/LINGYUN.Abp.Elsa.Activities.Webhooks/LINGYUN/Abp/Elsa/Activities/Webhooks/Activities/PublishWebhook.cs index f0d074103..466bd93ff 100644 --- a/aspnet-core/modules/elsa/LINGYUN.Abp.Elsa.Activities.Webhooks/LINGYUN/Abp/Elsa/Activities/Webhooks/Activities/PublishWebhook.cs +++ b/aspnet-core/modules/elsa/LINGYUN.Abp.Elsa.Activities.Webhooks/LINGYUN/Abp/Elsa/Activities/Webhooks/Activities/PublishWebhook.cs @@ -4,7 +4,6 @@ using Elsa.Attributes; using Elsa.Design; using Elsa.Expressions; using Elsa.Providers.WorkflowStorage; -using Elsa.Services; using Elsa.Services.Models; using LINGYUN.Abp.Webhooks; using System; @@ -17,7 +16,7 @@ namespace LINGYUN.Abp.Elsa.Activities.Webhooks; Category = "PublishWebhook", Description = "Sends webhooks to subscriptions.", Outcomes = new[] { OutcomeNames.Done })] -public class PublishWebhook : Activity +public class PublishWebhook : AbpActivity { private readonly IWebhookPublisher _webhookPublisher; @@ -59,14 +58,12 @@ public class PublishWebhook : Activity } - protected async override ValueTask OnExecuteAsync(ActivityExecutionContext context) + protected async override ValueTask OnActivityExecuteAsync(ActivityExecutionContext context) { - var tenantId = context.GetTenantId(); - await _webhookPublisher.PublishAsync( WebhooName, WebhookData, - tenantId, + TenantId, SendExactSameData, new WebhookHeader { diff --git a/aspnet-core/modules/elsa/LINGYUN.Abp.Elsa/LINGYUN/Abp/Elsa/AbpActivity.cs b/aspnet-core/modules/elsa/LINGYUN.Abp.Elsa/LINGYUN/Abp/Elsa/AbpActivity.cs index 1427a91c4..2a49befc7 100644 --- a/aspnet-core/modules/elsa/LINGYUN.Abp.Elsa/LINGYUN/Abp/Elsa/AbpActivity.cs +++ b/aspnet-core/modules/elsa/LINGYUN.Abp.Elsa/LINGYUN/Abp/Elsa/AbpActivity.cs @@ -18,7 +18,7 @@ public abstract class AbpActivity : Activity, IMultiTenantActivitySupport var currentTenant = context.GetService(); using (currentTenant.Change(TenantId ?? context.GetTenantId() ?? currentTenant.Id)) { - return OnActivitCanExecuteAsync(context); + return OnActivityCanExecuteAsync(context); } } @@ -27,16 +27,16 @@ public abstract class AbpActivity : Activity, IMultiTenantActivitySupport var currentTenant = context.GetService(); using (currentTenant.Change(TenantId ?? context.GetTenantId() ?? currentTenant.Id)) { - return OnActivitExecuteAsync(context); + return OnActivityExecuteAsync(context); } } - protected virtual ValueTask OnActivitCanExecuteAsync(ActivityExecutionContext context) + protected virtual ValueTask OnActivityCanExecuteAsync(ActivityExecutionContext context) { return new ValueTask(OnCanExecute(context)); } - protected virtual ValueTask OnActivitExecuteAsync(ActivityExecutionContext context) + protected virtual ValueTask OnActivityExecuteAsync(ActivityExecutionContext context) { return new ValueTask(OnExecute(context)); } diff --git a/aspnet-core/modules/elsa/LINGYUN.Abp.Elsa/LINGYUN/Abp/Elsa/AbpActivityExtensions.cs b/aspnet-core/modules/elsa/LINGYUN.Abp.Elsa/LINGYUN/Abp/Elsa/AbpActivityExtensions.cs index ab8cb5fa4..a48d3066d 100644 --- a/aspnet-core/modules/elsa/LINGYUN.Abp.Elsa/LINGYUN/Abp/Elsa/AbpActivityExtensions.cs +++ b/aspnet-core/modules/elsa/LINGYUN.Abp.Elsa/LINGYUN/Abp/Elsa/AbpActivityExtensions.cs @@ -7,19 +7,19 @@ namespace LINGYUN.Abp.Elsa; public static class AbpActivityExtensions { - public static ISetupActivity WithTenantId( - this ISetupActivity activity, - Func> value) => activity.Set(x => x.TenantId, value); + public static ISetupActivity WithTenantId( + this ISetupActivity activity, + Func> value) where TActivity : AbpActivity => activity.Set(x => x.TenantId, value); - public static ISetupActivity WithTenantId( - this ISetupActivity activity, - Func value) => activity.Set(x => x.TenantId, value); + public static ISetupActivity WithTenantId( + this ISetupActivity activity, + Func value) where TActivity : AbpActivity => activity.Set(x => x.TenantId, value); - public static ISetupActivity WithTenantId( - this ISetupActivity activity, - Func value) => activity.Set(x => x.TenantId, value); + public static ISetupActivity WithTenantId( + this ISetupActivity activity, + Func value) where TActivity : AbpActivity => activity.Set(x => x.TenantId, value); - public static ISetupActivity WithTenantId( - this ISetupActivity activity, - Guid? value) => activity.Set(x => x.TenantId, value); + public static ISetupActivity WithTenantId( + this ISetupActivity activity, + Guid? value) where TActivity : AbpActivity => activity.Set(x => x.TenantId, value); } diff --git a/aspnet-core/modules/localization/LINGYUN.Abp.Localization.Persistence/LINGYUN.Abp.Localization.Persistence.csproj b/aspnet-core/modules/localization/LINGYUN.Abp.Localization.Persistence/LINGYUN.Abp.Localization.Persistence.csproj index 68a757b72..d8f1642fc 100644 --- a/aspnet-core/modules/localization/LINGYUN.Abp.Localization.Persistence/LINGYUN.Abp.Localization.Persistence.csproj +++ b/aspnet-core/modules/localization/LINGYUN.Abp.Localization.Persistence/LINGYUN.Abp.Localization.Persistence.csproj @@ -10,7 +10,6 @@ - diff --git a/aspnet-core/modules/notifications/LINGYUN.Abp.Notifications.Application/LINGYUN/Abp/Notifications/NotificationAppService.cs b/aspnet-core/modules/notifications/LINGYUN.Abp.Notifications.Application/LINGYUN/Abp/Notifications/NotificationAppService.cs index 367db47b9..184150dd4 100644 --- a/aspnet-core/modules/notifications/LINGYUN.Abp.Notifications.Application/LINGYUN/Abp/Notifications/NotificationAppService.cs +++ b/aspnet-core/modules/notifications/LINGYUN.Abp.Notifications.Application/LINGYUN/Abp/Notifications/NotificationAppService.cs @@ -38,7 +38,6 @@ public class NotificationAppService : ApplicationService, INotificationAppServic if (!group.AllowSubscriptionToClients) { continue; - } var notificationGroup = new NotificationGroupDto { @@ -81,6 +80,11 @@ public class NotificationAppService : ApplicationService, INotificationAppServic foreach (var notification in notifications) { + if (!notification.AllowSubscriptionToClients) + { + continue; + } + templates.Add( new NotificationTemplateDto { diff --git a/aspnet-core/modules/task-management/LINGYUN.Abp.BackgroundTasks.Quartz/LINGYUN/Abp/BackgroundTasks/Quartz/QuartzJobCreator.cs b/aspnet-core/modules/task-management/LINGYUN.Abp.BackgroundTasks.Quartz/LINGYUN/Abp/BackgroundTasks/Quartz/QuartzJobCreator.cs index a9fdb09ec..3c789a9e9 100644 --- a/aspnet-core/modules/task-management/LINGYUN.Abp.BackgroundTasks.Quartz/LINGYUN/Abp/BackgroundTasks/Quartz/QuartzJobCreator.cs +++ b/aspnet-core/modules/task-management/LINGYUN.Abp.BackgroundTasks.Quartz/LINGYUN/Abp/BackgroundTasks/Quartz/QuartzJobCreator.cs @@ -47,6 +47,11 @@ public class QuartzJobCreator : IQuartzJobCreator, ISingletonDependency } } + if (jobType == null) + { + return null; + } + // 改为 JobId作为名称 var jobBuilder = JobBuilder.Create(jobType) .WithIdentity(KeyBuilder.CreateJobKey(job)) diff --git a/aspnet-core/modules/task-management/LINGYUN.Abp.BackgroundTasks/LINGYUN/Abp/BackgroundTasks/IJobStore.cs b/aspnet-core/modules/task-management/LINGYUN.Abp.BackgroundTasks/LINGYUN/Abp/BackgroundTasks/IJobStore.cs index 2de1f1350..9d408f046 100644 --- a/aspnet-core/modules/task-management/LINGYUN.Abp.BackgroundTasks/LINGYUN/Abp/BackgroundTasks/IJobStore.cs +++ b/aspnet-core/modules/task-management/LINGYUN.Abp.BackgroundTasks/LINGYUN/Abp/BackgroundTasks/IJobStore.cs @@ -28,7 +28,7 @@ public interface IJobStore string jobId, CancellationToken cancellationToken = default); - Task CleanupAsync( + Task> CleanupAsync( int maxResultCount, TimeSpan jobExpiratime, CancellationToken cancellationToken = default); diff --git a/aspnet-core/modules/task-management/LINGYUN.Abp.BackgroundTasks/LINGYUN/Abp/BackgroundTasks/Internal/BackgroundCleaningJob.cs b/aspnet-core/modules/task-management/LINGYUN.Abp.BackgroundTasks/LINGYUN/Abp/BackgroundTasks/Internal/BackgroundCleaningJob.cs index 454f15717..6300efe4d 100644 --- a/aspnet-core/modules/task-management/LINGYUN.Abp.BackgroundTasks/LINGYUN/Abp/BackgroundTasks/Internal/BackgroundCleaningJob.cs +++ b/aspnet-core/modules/task-management/LINGYUN.Abp.BackgroundTasks/LINGYUN/Abp/BackgroundTasks/Internal/BackgroundCleaningJob.cs @@ -1,5 +1,6 @@ using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.Options; +using System.Threading; using System.Threading.Tasks; using Volo.Abp.Auditing; using Volo.Abp.MultiTenancy; @@ -20,9 +21,18 @@ public class BackgroundCleaningJob : IJobRunnable using (currentTenant.Change(tenantId)) { - await store.CleanupAsync( + var expiredJobs = await store.CleanupAsync( options.MaxJobCleanCount, - options.JobExpiratime); + options.JobExpiratime, + context.CancellationToken); + + var jobScheduler = context.ServiceProvider.GetRequiredService(); + + foreach (var expiredJob in expiredJobs) + { + // 从队列强制移除作业 + await jobScheduler.RemoveAsync(expiredJob, context.CancellationToken); + } } } } diff --git a/aspnet-core/modules/task-management/LINGYUN.Abp.BackgroundTasks/LINGYUN/Abp/BackgroundTasks/Internal/BackgroundPollingJob.cs b/aspnet-core/modules/task-management/LINGYUN.Abp.BackgroundTasks/LINGYUN/Abp/BackgroundTasks/Internal/BackgroundPollingJob.cs index b0477ba60..e69724c42 100644 --- a/aspnet-core/modules/task-management/LINGYUN.Abp.BackgroundTasks/LINGYUN/Abp/BackgroundTasks/Internal/BackgroundPollingJob.cs +++ b/aspnet-core/modules/task-management/LINGYUN.Abp.BackgroundTasks/LINGYUN/Abp/BackgroundTasks/Internal/BackgroundPollingJob.cs @@ -21,7 +21,8 @@ public class BackgroundPollingJob : IJobRunnable using (currentTenant.Change(tenantId)) { - var waitingJobs = await store.GetWaitingListAsync(options.MaxJobFetchCount); + var waitingJobs = await store.GetWaitingListAsync( + options.MaxJobFetchCount, context.CancellationToken); if (!waitingJobs.Any()) { @@ -32,7 +33,7 @@ public class BackgroundPollingJob : IJobRunnable foreach (var job in waitingJobs) { - await jobPublisher.PublishAsync(job); + await jobPublisher.PublishAsync(job, context.CancellationToken); } } } diff --git a/aspnet-core/modules/task-management/LINGYUN.Abp.BackgroundTasks/LINGYUN/Abp/BackgroundTasks/Internal/InMemoryJobStore.cs b/aspnet-core/modules/task-management/LINGYUN.Abp.BackgroundTasks/LINGYUN/Abp/BackgroundTasks/Internal/InMemoryJobStore.cs index b49e262fb..69d292b8c 100644 --- a/aspnet-core/modules/task-management/LINGYUN.Abp.BackgroundTasks/LINGYUN/Abp/BackgroundTasks/Internal/InMemoryJobStore.cs +++ b/aspnet-core/modules/task-management/LINGYUN.Abp.BackgroundTasks/LINGYUN/Abp/BackgroundTasks/Internal/InMemoryJobStore.cs @@ -106,7 +106,7 @@ internal class InMemoryJobStore : IJobStore, ISingletonDependency return Task.CompletedTask; } - public Task CleanupAsync(int maxResultCount, TimeSpan jobExpiratime, CancellationToken cancellationToken = default) + public Task> CleanupAsync(int maxResultCount, TimeSpan jobExpiratime, CancellationToken cancellationToken = default) { cancellationToken.ThrowIfCancellationRequested(); @@ -115,10 +115,11 @@ internal class InMemoryJobStore : IJobStore, ISingletonDependency var expriaJobs = _memoryJobStore .Where(x => x.Status == JobStatus.Completed && expiratime.CompareTo(x.LastRunTime ?? x.EndTime ?? x.CreationTime) <= 0) - .Take(maxResultCount); + .Take(maxResultCount) + .ToList(); _memoryJobStore.RemoveAll(expriaJobs); - return Task.CompletedTask; + return Task.FromResult(expriaJobs); } } diff --git a/aspnet-core/modules/task-management/LINGYUN.Abp.BackgroundTasks/LINGYUN/Abp/BackgroundTasks/Internal/JobExecutedEvent.cs b/aspnet-core/modules/task-management/LINGYUN.Abp.BackgroundTasks/LINGYUN/Abp/BackgroundTasks/Internal/JobExecutedEvent.cs index 66b600f6f..9f7837a02 100644 --- a/aspnet-core/modules/task-management/LINGYUN.Abp.BackgroundTasks/LINGYUN/Abp/BackgroundTasks/Internal/JobExecutedEvent.cs +++ b/aspnet-core/modules/task-management/LINGYUN.Abp.BackgroundTasks/LINGYUN/Abp/BackgroundTasks/Internal/JobExecutedEvent.cs @@ -73,9 +73,22 @@ public class JobExecutedEvent : JobEventBase, ITransientDepend { // 成功一次重置重试次数 job.TryCount = 0; + var jobCompleted = false; + + // 尝试达到上限则标记已完成 + if (job.Status == JobStatus.FailedRetry && + job.TryCount >= job.MaxTryCount) + { + jobCompleted = true; + } // 所有任务达到上限则标记已完成 if (job.MaxCount > 0 && job.TriggerCount >= job.MaxCount) + { + jobCompleted = true; + } + + if (jobCompleted) { job.Status = JobStatus.Completed; job.NextRunTime = null; diff --git a/aspnet-core/modules/task-management/LINGYUN.Abp.TaskManagement.Domain/LINGYUN/Abp/TaskManagement/BackgroundJobStore.cs b/aspnet-core/modules/task-management/LINGYUN.Abp.TaskManagement.Domain/LINGYUN/Abp/TaskManagement/BackgroundJobStore.cs index 1d7f907dc..b9001ad5f 100644 --- a/aspnet-core/modules/task-management/LINGYUN.Abp.TaskManagement.Domain/LINGYUN/Abp/TaskManagement/BackgroundJobStore.cs +++ b/aspnet-core/modules/task-management/LINGYUN.Abp.TaskManagement.Domain/LINGYUN/Abp/TaskManagement/BackgroundJobStore.cs @@ -158,7 +158,7 @@ public class BackgroundJobStore : IJobStore, ITransientDependency } } - public async virtual Task CleanupAsync( + public async virtual Task> CleanupAsync( int maxResultCount, TimeSpan jobExpiratime, CancellationToken cancellationToken = default) @@ -169,9 +169,13 @@ public class BackgroundJobStore : IJobStore, ITransientDependency jobExpiratime, cancellationToken); + var expiredJobs = ObjectMapper.Map, List>(jobs); + await JobInfoRepository.DeleteManyAsync(jobs, cancellationToken: cancellationToken); - await unitOfWork.SaveChangesAsync(); + await unitOfWork.SaveChangesAsync(cancellationToken); + + return expiredJobs; } protected virtual Exception GetSourceException(Exception exception) diff --git a/aspnet-core/modules/task-management/LINGYUN.Abp.TaskManagement.EntityFrameworkCore/LINGYUN/Abp/TaskManagement/EntityFrameworkCore/EfCoreBackgroundJobInfoRepository.cs b/aspnet-core/modules/task-management/LINGYUN.Abp.TaskManagement.EntityFrameworkCore/LINGYUN/Abp/TaskManagement/EntityFrameworkCore/EfCoreBackgroundJobInfoRepository.cs index ffe217f08..5dfa3cd23 100644 --- a/aspnet-core/modules/task-management/LINGYUN.Abp.TaskManagement.EntityFrameworkCore/LINGYUN/Abp/TaskManagement/EntityFrameworkCore/EfCoreBackgroundJobInfoRepository.cs +++ b/aspnet-core/modules/task-management/LINGYUN.Abp.TaskManagement.EntityFrameworkCore/LINGYUN/Abp/TaskManagement/EntityFrameworkCore/EfCoreBackgroundJobInfoRepository.cs @@ -80,11 +80,10 @@ public class EfCoreBackgroundJobInfoRepository : TimeSpan jobExpiratime, CancellationToken cancellationToken = default) { - var expiratime = Clock.Now - jobExpiratime; + var expiratime = Clock.Now.Subtract(jobExpiratime); return await (await GetDbSetAsync()) - .Where(x => x.Status == JobStatus.Completed && - DateTime.Compare(x.LastRunTime.Value, expiratime) <= 0) + .Where(x => x.Status == JobStatus.Completed && x.LastRunTime <= expiratime) .OrderBy(x => x.CreationTime) .Take(maxResultCount) .ToListAsync(GetCancellationToken(cancellationToken)); @@ -122,7 +121,6 @@ public class EfCoreBackgroundJobInfoRepository : int maxResultCount, CancellationToken cancellationToken = default) { - var now = Clock.Now; var status = new JobStatus[] { JobStatus.Running, JobStatus.FailedRetry }; return await (await GetDbSetAsync()) diff --git a/aspnet-core/modules/tui-juhe/LINGYUN.Abp.Notifications.TuiJuhe/LINGYUN/Abp/Notifications/TuiJuhe/TuiJuheNotificationPublishProvider.cs b/aspnet-core/modules/tui-juhe/LINGYUN.Abp.Notifications.TuiJuhe/LINGYUN/Abp/Notifications/TuiJuhe/TuiJuheNotificationPublishProvider.cs index d96df5047..5c2dffc5d 100644 --- a/aspnet-core/modules/tui-juhe/LINGYUN.Abp.Notifications.TuiJuhe/LINGYUN/Abp/Notifications/TuiJuhe/TuiJuheNotificationPublishProvider.cs +++ b/aspnet-core/modules/tui-juhe/LINGYUN.Abp.Notifications.TuiJuhe/LINGYUN/Abp/Notifications/TuiJuhe/TuiJuheNotificationPublishProvider.cs @@ -92,11 +92,13 @@ public class TuiJuheNotificationPublishProvider : NotificationPublishProvider { var titleInfo = notification.Data.TryGetData("title").As(); var titleResource = GetResource(titleInfo.ResourceName); - var title = LocalizerFactory.Create(titleResource.ResourceType)[titleInfo.Name, titleInfo.Values].Value; + var titleLocalizer = await LocalizerFactory.CreateByResourceNameAsync(titleResource.ResourceName); + var title = titleLocalizer[titleInfo.Name, titleInfo.Values].Value; var messageInfo = notification.Data.TryGetData("message").As(); var messageResource = GetResource(messageInfo.ResourceName); - var message = LocalizerFactory.Create(messageResource.ResourceType)[messageInfo.Name, messageInfo.Values].Value; + var messageLocalizer = await LocalizerFactory.CreateByResourceNameAsync(messageResource.ResourceName); + var message = messageLocalizer[messageInfo.Name, messageInfo.Values].Value; await TuiJuheMessageSender.SendAsync( title: title, @@ -107,7 +109,7 @@ public class TuiJuheNotificationPublishProvider : NotificationPublishProvider } } - private LocalizationResource GetResource(string resourceName) + private LocalizationResourceBase GetResource(string resourceName) { return LocalizationOptions.Resources.Values .First(x => x.ResourceName.Equals(resourceName)); diff --git a/aspnet-core/modules/tui-juhe/LINGYUN.Abp.TuiJuhe/LINGYUN.Abp.TuiJuhe.csproj b/aspnet-core/modules/tui-juhe/LINGYUN.Abp.TuiJuhe/LINGYUN.Abp.TuiJuhe.csproj index 9e0759210..341e4212e 100644 --- a/aspnet-core/modules/tui-juhe/LINGYUN.Abp.TuiJuhe/LINGYUN.Abp.TuiJuhe.csproj +++ b/aspnet-core/modules/tui-juhe/LINGYUN.Abp.TuiJuhe/LINGYUN.Abp.TuiJuhe.csproj @@ -18,7 +18,7 @@ - + diff --git a/aspnet-core/modules/tui-juhe/LINGYUN.Abp.TuiJuhe/LINGYUN/Abp/TuiJuhe/AbpTuiJuheModule.cs b/aspnet-core/modules/tui-juhe/LINGYUN.Abp.TuiJuhe/LINGYUN/Abp/TuiJuhe/AbpTuiJuheModule.cs index 491f117ad..2097e55f0 100644 --- a/aspnet-core/modules/tui-juhe/LINGYUN.Abp.TuiJuhe/LINGYUN/Abp/TuiJuhe/AbpTuiJuheModule.cs +++ b/aspnet-core/modules/tui-juhe/LINGYUN.Abp.TuiJuhe/LINGYUN/Abp/TuiJuhe/AbpTuiJuheModule.cs @@ -2,8 +2,7 @@ using LINGYUN.Abp.TuiJuhe.Localization; using Microsoft.Extensions.DependencyInjection; using Volo.Abp.Caching; -using Volo.Abp.Json; -using Volo.Abp.Json.SystemTextJson; +using Volo.Abp.Json.Newtonsoft; using Volo.Abp.Localization; using Volo.Abp.Modularity; using Volo.Abp.Settings; @@ -12,7 +11,7 @@ using Volo.Abp.VirtualFileSystem; namespace LINGYUN.Abp.TuiJuhe; [DependsOn( - typeof(AbpJsonModule), + typeof(AbpJsonNewtonsoftModule), typeof(AbpSettingsModule), typeof(AbpCachingModule), typeof(AbpFeaturesLimitValidationModule))] @@ -22,11 +21,6 @@ public class AbpTuiJuheModule : AbpModule { context.Services.AddTuiJuheClient(); - Configure(options => - { - - }); - Configure(options => { options.FileSets.AddEmbedded(); diff --git a/aspnet-core/modules/webhooks/LINGYUN.Abp.Webhooks.Identity/LINGYUN/Abp/Webhooks/Identity/OrganizationUnitWebHooker.cs b/aspnet-core/modules/webhooks/LINGYUN.Abp.Webhooks.Identity/LINGYUN/Abp/Webhooks/Identity/OrganizationUnitWebHooker.cs index a259bc16b..777532c68 100644 --- a/aspnet-core/modules/webhooks/LINGYUN.Abp.Webhooks.Identity/LINGYUN/Abp/Webhooks/Identity/OrganizationUnitWebHooker.cs +++ b/aspnet-core/modules/webhooks/LINGYUN.Abp.Webhooks.Identity/LINGYUN/Abp/Webhooks/Identity/OrganizationUnitWebHooker.cs @@ -42,6 +42,7 @@ public class OrganizationUnitWebhooker : new OrganizationUnitWto { Id = eto.Id, + Code = eto.Code, DisplayName = eto.DisplayName }, eto.TenantId); diff --git a/aspnet-core/services/LY.MicroService.AuthServer.HttpApi.Host/AuthServerHttpApiHostModule.Configure.cs b/aspnet-core/services/LY.MicroService.AuthServer.HttpApi.Host/AuthServerHttpApiHostModule.Configure.cs index 68d7528c7..4587d1ea6 100644 --- a/aspnet-core/services/LY.MicroService.AuthServer.HttpApi.Host/AuthServerHttpApiHostModule.Configure.cs +++ b/aspnet-core/services/LY.MicroService.AuthServer.HttpApi.Host/AuthServerHttpApiHostModule.Configure.cs @@ -104,7 +104,7 @@ public partial class AuthServerHttpApiHostModule // 统一时间日期格式 Configure(options => { - // options.DefaultDateTimeFormat = "yyyy-MM-dd HH:mm:ss"; + options.OutputDateTimeFormat = "yyyy-MM-dd HH:mm:ss"; }); // 中文序列化的编码问题 Configure(options => diff --git a/aspnet-core/services/LY.MicroService.AuthServer/AuthServerModule.Configure.cs b/aspnet-core/services/LY.MicroService.AuthServer/AuthServerModule.Configure.cs index 85d2e807c..55b74fe54 100644 --- a/aspnet-core/services/LY.MicroService.AuthServer/AuthServerModule.Configure.cs +++ b/aspnet-core/services/LY.MicroService.AuthServer/AuthServerModule.Configure.cs @@ -186,7 +186,7 @@ public partial class AuthServerModule // 统一时间日期格式 Configure(options => { - // options.DefaultDateTimeFormat = "yyyy-MM-dd HH:mm:ss"; + options.OutputDateTimeFormat = "yyyy-MM-dd HH:mm:ss"; }); // 中文序列化的编码问题 Configure(options => diff --git a/aspnet-core/services/LY.MicroService.BackendAdmin.HttpApi.Host/BackendAdminHttpApiHostModule.Configure.cs b/aspnet-core/services/LY.MicroService.BackendAdmin.HttpApi.Host/BackendAdminHttpApiHostModule.Configure.cs index 6211c845e..34f0a95c8 100644 --- a/aspnet-core/services/LY.MicroService.BackendAdmin.HttpApi.Host/BackendAdminHttpApiHostModule.Configure.cs +++ b/aspnet-core/services/LY.MicroService.BackendAdmin.HttpApi.Host/BackendAdminHttpApiHostModule.Configure.cs @@ -106,7 +106,7 @@ public partial class BackendAdminHttpApiHostModule // 统一时间日期格式 Configure(options => { - // options.DefaultDateTimeFormat = "yyyy-MM-dd HH:mm:ss"; + options.OutputDateTimeFormat = "yyyy-MM-dd HH:mm:ss"; }); // 中文序列化的编码问题 Configure(options => diff --git a/aspnet-core/services/LY.MicroService.LocalizationManagement.HttpApi.Host/LocalizationManagementHttpApiHostModule.Configure.cs b/aspnet-core/services/LY.MicroService.LocalizationManagement.HttpApi.Host/LocalizationManagementHttpApiHostModule.Configure.cs index fd4f31285..891b05256 100644 --- a/aspnet-core/services/LY.MicroService.LocalizationManagement.HttpApi.Host/LocalizationManagementHttpApiHostModule.Configure.cs +++ b/aspnet-core/services/LY.MicroService.LocalizationManagement.HttpApi.Host/LocalizationManagementHttpApiHostModule.Configure.cs @@ -98,7 +98,7 @@ public partial class LocalizationManagementHttpApiHostModule // 统一时间日期格式 Configure(options => { - // options.DefaultDateTimeFormat = "yyyy-MM-dd HH:mm:ss"; + options.OutputDateTimeFormat = "yyyy-MM-dd HH:mm:ss"; }); // 中文序列化的编码问题 Configure(options => diff --git a/aspnet-core/services/LY.MicroService.PlatformManagement.HttpApi.Host/PlatformManagementHttpApiHostModule.Configure.cs b/aspnet-core/services/LY.MicroService.PlatformManagement.HttpApi.Host/PlatformManagementHttpApiHostModule.Configure.cs index 537f7a854..9522121ab 100644 --- a/aspnet-core/services/LY.MicroService.PlatformManagement.HttpApi.Host/PlatformManagementHttpApiHostModule.Configure.cs +++ b/aspnet-core/services/LY.MicroService.PlatformManagement.HttpApi.Host/PlatformManagementHttpApiHostModule.Configure.cs @@ -102,7 +102,7 @@ public partial class PlatformManagementHttpApiHostModule // 统一时间日期格式 Configure(options => { - // options.DefaultDateTimeFormat = "yyyy-MM-dd HH:mm:ss"; + options.OutputDateTimeFormat = "yyyy-MM-dd HH:mm:ss"; }); // 中文序列化的编码问题 Configure(options => diff --git a/aspnet-core/services/LY.MicroService.RealtimeMessage.HttpApi.Host/EventBus/Distributed/NotificationEventHandler.cs b/aspnet-core/services/LY.MicroService.RealtimeMessage.HttpApi.Host/EventBus/Distributed/NotificationEventHandler.cs index 097fa94d0..a51f8fe8c 100644 --- a/aspnet-core/services/LY.MicroService.RealtimeMessage.HttpApi.Host/EventBus/Distributed/NotificationEventHandler.cs +++ b/aspnet-core/services/LY.MicroService.RealtimeMessage.HttpApi.Host/EventBus/Distributed/NotificationEventHandler.cs @@ -212,11 +212,12 @@ namespace LY.MicroService.RealtimeMessage.EventBus.Distributed cultureName: eventData.Data.Culture, globalContext: new Dictionary { - { "$notification", notification.Name }, - { "$formUser", eventData.Data.FormUser }, - { "$notificationId", eventData.Id }, - { "$title", title.ToString() }, - { "$creationTime", eventData.CreationTime.ToString("yyyy-MM-dd HH:mm:ss") }, + // 模板不支持 $ 字符, 改为普通关键字 + { NotificationKeywords.Name, notification.Name }, + { NotificationKeywords.FormUser, eventData.Data.FormUser }, + { NotificationKeywords.Id, eventData.Id }, + { NotificationKeywords.Title, title.ToString() }, + { NotificationKeywords.CreationTime, eventData.CreationTime.ToString(Options.DateTimeFormat) }, }); } catch(Exception ex) diff --git a/aspnet-core/services/LY.MicroService.RealtimeMessage.HttpApi.Host/RealtimeMessageHttpApiHostModule.Configure.cs b/aspnet-core/services/LY.MicroService.RealtimeMessage.HttpApi.Host/RealtimeMessageHttpApiHostModule.Configure.cs index ce63cc9c7..9f86f277f 100644 --- a/aspnet-core/services/LY.MicroService.RealtimeMessage.HttpApi.Host/RealtimeMessageHttpApiHostModule.Configure.cs +++ b/aspnet-core/services/LY.MicroService.RealtimeMessage.HttpApi.Host/RealtimeMessageHttpApiHostModule.Configure.cs @@ -141,7 +141,7 @@ public partial class RealtimeMessageHttpApiHostModule // 统一时间日期格式 Configure(options => { - // options.DefaultDateTimeFormat = "yyyy-MM-dd HH:mm:ss"; + options.OutputDateTimeFormat = "yyyy-MM-dd HH:mm:ss"; }); // 中文序列化的编码问题 Configure(options => diff --git a/aspnet-core/services/LY.MicroService.identityServer.HttpApi.Host/IdentityServerHttpApiHostModule.Configure.cs b/aspnet-core/services/LY.MicroService.identityServer.HttpApi.Host/IdentityServerHttpApiHostModule.Configure.cs index bbcdccb6e..8350b576e 100644 --- a/aspnet-core/services/LY.MicroService.identityServer.HttpApi.Host/IdentityServerHttpApiHostModule.Configure.cs +++ b/aspnet-core/services/LY.MicroService.identityServer.HttpApi.Host/IdentityServerHttpApiHostModule.Configure.cs @@ -103,7 +103,7 @@ public partial class IdentityServerHttpApiHostModule // 统一时间日期格式 Configure(options => { - // options.DefaultDateTimeFormat = "yyyy-MM-dd HH:mm:ss"; + options.OutputDateTimeFormat = "yyyy-MM-dd HH:mm:ss"; }); // 中文序列化的编码问题 Configure(options => diff --git a/aspnet-core/services/LY.MicroService.identityServer/IdentityServerModule.Configure.cs b/aspnet-core/services/LY.MicroService.identityServer/IdentityServerModule.Configure.cs index 4bba3d848..d99b37777 100644 --- a/aspnet-core/services/LY.MicroService.identityServer/IdentityServerModule.Configure.cs +++ b/aspnet-core/services/LY.MicroService.identityServer/IdentityServerModule.Configure.cs @@ -134,7 +134,7 @@ public partial class IdentityServerModule // 统一时间日期格式 Configure(options => { - // options.DefaultDateTimeFormat = "yyyy-MM-dd HH:mm:ss"; + options.OutputDateTimeFormat = "yyyy-MM-dd HH:mm:ss"; }); // 中文序列化的编码问题 Configure(options => diff --git a/aspnet-core/tests/LINGYUN.Abp.Elsa.Activities.Webhooks.Tests/AbpElsaActivitiesWebhooksTests.cs b/aspnet-core/tests/LINGYUN.Abp.Elsa.Activities.Webhooks.Tests/AbpElsaActivitiesWebhooksTests.cs new file mode 100644 index 000000000..1ace25c5a --- /dev/null +++ b/aspnet-core/tests/LINGYUN.Abp.Elsa.Activities.Webhooks.Tests/AbpElsaActivitiesWebhooksTests.cs @@ -0,0 +1,7 @@ +using LINGYUN.Abp.Tests; + +namespace LINGYUN.Abp.Elsa.Activities.Webhooks.Tests; + +public abstract class AbpElsaActivitiesWebhooksTests : AbpTestsBase +{ +} diff --git a/aspnet-core/tests/LINGYUN.Abp.Elsa.Activities.Webhooks.Tests/AbpElsaActivitiesWebhooksTestsModule.cs b/aspnet-core/tests/LINGYUN.Abp.Elsa.Activities.Webhooks.Tests/AbpElsaActivitiesWebhooksTestsModule.cs new file mode 100644 index 000000000..052b1ef77 --- /dev/null +++ b/aspnet-core/tests/LINGYUN.Abp.Elsa.Activities.Webhooks.Tests/AbpElsaActivitiesWebhooksTestsModule.cs @@ -0,0 +1,30 @@ +using Elsa.Options; +using LINGYUN.Abp.Elsa.Tests; +using LINGYUN.Abp.Webhooks; +using Microsoft.Extensions.DependencyInjection; +using Microsoft.Extensions.DependencyInjection.Extensions; +using Volo.Abp.Modularity; + +namespace LINGYUN.Abp.Elsa.Activities.Webhooks.Tests; + +[DependsOn( + typeof(AbpElsaTestsModule), + typeof(AbpElsaActivitiesWebhooksModule) + )] +public class AbpElsaActivitiesWebhooksTestsModule : AbpModule +{ + public override void PreConfigureServices(ServiceConfigurationContext context) + { + PreConfigure(builder => + { + builder + .AddWebhooksActivities() + .AddWorkflow(); + }); + } + + public override void ConfigureServices(ServiceConfigurationContext context) + { + context.Services.Replace(ServiceDescriptor.Singleton()); + } +} diff --git a/aspnet-core/tests/LINGYUN.Abp.Elsa.Activities.Webhooks.Tests/LINGYUN.Abp.Elsa.Activities.Webhooks.Tests.csproj b/aspnet-core/tests/LINGYUN.Abp.Elsa.Activities.Webhooks.Tests/LINGYUN.Abp.Elsa.Activities.Webhooks.Tests.csproj new file mode 100644 index 000000000..e381c6efc --- /dev/null +++ b/aspnet-core/tests/LINGYUN.Abp.Elsa.Activities.Webhooks.Tests/LINGYUN.Abp.Elsa.Activities.Webhooks.Tests.csproj @@ -0,0 +1,29 @@ + + + + net7.0 + enable + enable + + false + + + + + + + runtime; build; native; contentfiles; analyzers; buildtransitive + all + + + runtime; build; native; contentfiles; analyzers; buildtransitive + all + + + + + + + + + diff --git a/aspnet-core/tests/LINGYUN.Abp.Elsa.Activities.Webhooks.Tests/MemoryWebhookPublisher.cs b/aspnet-core/tests/LINGYUN.Abp.Elsa.Activities.Webhooks.Tests/MemoryWebhookPublisher.cs new file mode 100644 index 000000000..1e4bb5ad7 --- /dev/null +++ b/aspnet-core/tests/LINGYUN.Abp.Elsa.Activities.Webhooks.Tests/MemoryWebhookPublisher.cs @@ -0,0 +1,66 @@ +using LINGYUN.Abp.Webhooks; + +namespace LINGYUN.Abp.Elsa.Activities.Webhooks.Tests; + +internal class MemoryWebhookPublisher : IWebhookPublisher +{ + public static readonly IDictionary WebHooks = new Dictionary(); + + public Task PublishAsync(string webhookName, object data, bool sendExactSameData = false, WebhookHeader? headers = null) + { + if (!WebHooks.ContainsKey(webhookName)) + { + WebHooks.Add(webhookName, + new WebhookData(webhookName, data, sendExactSameData, headers)); + } + + return Task.CompletedTask; + } + + public Task PublishAsync(string webhookName, object data, Guid? tenantId, bool sendExactSameData = false, WebhookHeader? headers = null) + { + if (!WebHooks.ContainsKey(webhookName)) + { + Guid?[] tenantIds = new Guid?[] { tenantId }; + var webhook = new WebhookData(webhookName, data, sendExactSameData, headers, tenantIds); + + WebHooks.Add(webhookName, webhook); + } + + return Task.CompletedTask; + } + + public Task PublishAsync(Guid?[] tenantIds, string webhookName, object data, bool sendExactSameData = false, WebhookHeader? headers = null) + { + if (!WebHooks.ContainsKey(webhookName)) + { + var webhook = new WebhookData(webhookName, data, sendExactSameData, headers, tenantIds); + + WebHooks.Add(webhookName, webhook); + } + + return Task.CompletedTask; + } +} + +internal class WebhookData +{ + public string Name { get; set; } + public object Data { get; set; } + public bool SendExactSameData { get; set; } + public WebhookHeader? Headers { get; set; } + public Guid?[]? TenantIds { get; set; } + public WebhookData( + string name, + object data, + bool sendExactSameData = false, + WebhookHeader? headers = null, + Guid?[]? tenantIds = null) + { + Name = name; + Data = data; + SendExactSameData = sendExactSameData; + Headers = headers; + TenantIds = tenantIds; + } +} diff --git a/aspnet-core/tests/LINGYUN.Abp.Elsa.Activities.Webhooks.Tests/PublishWebhookData.cs b/aspnet-core/tests/LINGYUN.Abp.Elsa.Activities.Webhooks.Tests/PublishWebhookData.cs new file mode 100644 index 000000000..11a3ccc0c --- /dev/null +++ b/aspnet-core/tests/LINGYUN.Abp.Elsa.Activities.Webhooks.Tests/PublishWebhookData.cs @@ -0,0 +1,7 @@ +namespace LINGYUN.Abp.Elsa.Activities.Webhooks.Tests; +internal static class PublishWebhookData +{ + public readonly static string Name = "Send by xUnit test"; + public readonly static object SendData = "Test data"; + public readonly static Guid? TenantId = Guid.NewGuid(); +} diff --git a/aspnet-core/tests/LINGYUN.Abp.Elsa.Activities.Webhooks.Tests/PublishWebhookTests.cs b/aspnet-core/tests/LINGYUN.Abp.Elsa.Activities.Webhooks.Tests/PublishWebhookTests.cs new file mode 100644 index 000000000..cb1c4b221 --- /dev/null +++ b/aspnet-core/tests/LINGYUN.Abp.Elsa.Activities.Webhooks.Tests/PublishWebhookTests.cs @@ -0,0 +1,21 @@ +using Elsa.Services; + +namespace LINGYUN.Abp.Elsa.Activities.Webhooks.Tests; + +public class PublishWebhookTests : AbpElsaActivitiesWebhooksTests +{ + private readonly IBuildsAndStartsWorkflow _workflowRunner; + + public PublishWebhookTests() + { + _workflowRunner = GetRequiredService(); + } + + [Fact] + public async Task Push_Webhook() + { + await _workflowRunner.BuildAndStartWorkflowAsync(); + + MemoryWebhookPublisher.WebHooks.ShouldContainKey(PublishWebhookData.Name); + } +} diff --git a/aspnet-core/tests/LINGYUN.Abp.Elsa.Activities.Webhooks.Tests/PublishWebhookWorkflow.cs b/aspnet-core/tests/LINGYUN.Abp.Elsa.Activities.Webhooks.Tests/PublishWebhookWorkflow.cs new file mode 100644 index 000000000..7c39b862f --- /dev/null +++ b/aspnet-core/tests/LINGYUN.Abp.Elsa.Activities.Webhooks.Tests/PublishWebhookWorkflow.cs @@ -0,0 +1,26 @@ +using Elsa.Activities.Console; +using Elsa.Activities.ControlFlow; +using Elsa.Builders; + +namespace LINGYUN.Abp.Elsa.Activities.Webhooks.Tests; + +public class PublishWebhookWorkflow : IWorkflow +{ + public void Build(IWorkflowBuilder builder) + { + builder + .WriteLine("This a simple workflow with publish webhook.") + .PublishWebhook( + setup: activity => + activity.WithWebhooName(PublishWebhookData.Name) + .WithWebhookData(PublishWebhookData.SendData) + .WithSendExactSameData(true) + .WithUseOnlyGivenHeaders(false) + .WithHeaders(new Dictionary + { + { "X-With", "Test" } + }) + .WithTenantId(PublishWebhookData.TenantId)) + .WriteLine("Workflow finished."); + } +} diff --git a/aspnet-core/tests/LINGYUN.Abp.Elsa.Activities.Webhooks.Tests/Usings.cs b/aspnet-core/tests/LINGYUN.Abp.Elsa.Activities.Webhooks.Tests/Usings.cs new file mode 100644 index 000000000..5cf9e838b --- /dev/null +++ b/aspnet-core/tests/LINGYUN.Abp.Elsa.Activities.Webhooks.Tests/Usings.cs @@ -0,0 +1,2 @@ +global using Xunit; +global using Shouldly; \ No newline at end of file diff --git a/aspnet-core/tests/LINGYUN.Abp.Elsa.Tests/AbpElsaTests.cs b/aspnet-core/tests/LINGYUN.Abp.Elsa.Tests/AbpElsaTests.cs new file mode 100644 index 000000000..33d772892 --- /dev/null +++ b/aspnet-core/tests/LINGYUN.Abp.Elsa.Tests/AbpElsaTests.cs @@ -0,0 +1,8 @@ +using LINGYUN.Abp.Tests; + +namespace LINGYUN.Abp.Elsa.Tests +{ + public abstract class AbpElsaTests : AbpTestsBase + { + } +} diff --git a/aspnet-core/tests/LINGYUN.Abp.Elsa.Tests/AbpElsaTestsModule.cs b/aspnet-core/tests/LINGYUN.Abp.Elsa.Tests/AbpElsaTestsModule.cs new file mode 100644 index 000000000..cd83d29d2 --- /dev/null +++ b/aspnet-core/tests/LINGYUN.Abp.Elsa.Tests/AbpElsaTestsModule.cs @@ -0,0 +1,12 @@ +using LINGYUN.Abp.Tests; +using Volo.Abp.Modularity; + +namespace LINGYUN.Abp.Elsa.Tests +{ + [DependsOn( + typeof(AbpTestsBaseModule) + )] + public class AbpElsaTestsModule : AbpModule + { + } +} diff --git a/aspnet-core/tests/LINGYUN.Abp.Elsa.Tests/LINGYUN.Abp.Elsa.Tests.csproj b/aspnet-core/tests/LINGYUN.Abp.Elsa.Tests/LINGYUN.Abp.Elsa.Tests.csproj new file mode 100644 index 000000000..ffc917ce4 --- /dev/null +++ b/aspnet-core/tests/LINGYUN.Abp.Elsa.Tests/LINGYUN.Abp.Elsa.Tests.csproj @@ -0,0 +1,28 @@ + + + + net7.0 + enable + enable + + false + + + + + + + runtime; build; native; contentfiles; analyzers; buildtransitive + all + + + runtime; build; native; contentfiles; analyzers; buildtransitive + all + + + + + + + + diff --git a/aspnet-core/tests/LINGYUN.Abp.Elsa.Tests/Usings.cs b/aspnet-core/tests/LINGYUN.Abp.Elsa.Tests/Usings.cs new file mode 100644 index 000000000..5cf9e838b --- /dev/null +++ b/aspnet-core/tests/LINGYUN.Abp.Elsa.Tests/Usings.cs @@ -0,0 +1,2 @@ +global using Xunit; +global using Shouldly; \ No newline at end of file From ca51b7476bf69b23c9da44de0c3b74367829955a Mon Sep 17 00:00:00 2001 From: cKey <35512826+colinin@users.noreply.github.com> Date: Wed, 1 Feb 2023 10:48:15 +0800 Subject: [PATCH 2/2] add release workflow --- .github/workflows/release.yml | 17 +++++++++++++++++ aspnet-core/Directory.Build.props | 2 +- gateways/Directory.Build.props | 6 +++--- gateways/common.props | 2 +- 4 files changed, 22 insertions(+), 5 deletions(-) create mode 100644 .github/workflows/release.yml diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml new file mode 100644 index 000000000..2aba71e24 --- /dev/null +++ b/.github/workflows/release.yml @@ -0,0 +1,17 @@ +name: "Tagged Release" + +on: + push: + branches: [ master ] + +jobs: + tagged-release: + name: "Tagged Release" + runs-on: "ubuntu-latest" + steps: + - name: "Auto release" + uses: "marvinpinto/action-automatic-releases@latest" + with: + repo_token: "${{ secrets.GITHUB_TOKEN }}" + prerelease: false + automatic_release_tag: "7.0.1" diff --git a/aspnet-core/Directory.Build.props b/aspnet-core/Directory.Build.props index da5878eb3..e1d71f169 100644 --- a/aspnet-core/Directory.Build.props +++ b/aspnet-core/Directory.Build.props @@ -4,7 +4,7 @@ 7.0.1 1.9.0 1.0.2 - 7.0.0 + 7.0.2 2.10.1 1.5.10 2.13.0 diff --git a/gateways/Directory.Build.props b/gateways/Directory.Build.props index 29f95472a..0357e352e 100644 --- a/gateways/Directory.Build.props +++ b/gateways/Directory.Build.props @@ -1,9 +1,9 @@  - 6.0.2 - 6.0.1 + 7.0.1 + 7.0.1 1.8.0 - 6.0.1 + 7.0.2 1.5.10 2.13.0 1.2.1.5 diff --git a/gateways/common.props b/gateways/common.props index 0f557520f..3d27dce88 100644 --- a/gateways/common.props +++ b/gateways/common.props @@ -1,7 +1,7 @@ latest - 6.0.1 + 7.0.1 colin $(NoWarn);CS1591;CS0436;CS8618;NU1803 https://github.com/colinin/abp-next-admin