diff --git a/aspnet-core/LINGYUN.MicroService.Workflow.sln b/aspnet-core/LINGYUN.MicroService.Workflow.sln
index 2f6185189..3035cd55e 100644
--- a/aspnet-core/LINGYUN.MicroService.Workflow.sln
+++ b/aspnet-core/LINGYUN.MicroService.Workflow.sln
@@ -61,7 +61,17 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.Abp.Elsa.Activities
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.Abp.Elsa.Activities.Notifications", "modules\elsa\LINGYUN.Abp.Elsa.Activities.Notifications\LINGYUN.Abp.Elsa.Activities.Notifications.csproj", "{F5023AD3-D9C5-40C9-B76A-58D95E441997}"
EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "LINGYUN.Abp.Elsa.Activities.IM", "modules\elsa\LINGYUN.Abp.Elsa.Activities.IM\LINGYUN.Abp.Elsa.Activities.IM.csproj", "{4FD7B21B-3689-4D4A-BDD2-A07E2DC2E80C}"
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.Abp.Elsa.Activities.IM", "modules\elsa\LINGYUN.Abp.Elsa.Activities.IM\LINGYUN.Abp.Elsa.Activities.IM.csproj", "{4FD7B21B-3689-4D4A-BDD2-A07E2DC2E80C}"
+EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.Abp.Elsa.Activities.Sms", "modules\elsa\LINGYUN.Abp.Elsa.Activities.Sms\LINGYUN.Abp.Elsa.Activities.Sms.csproj", "{FF3A193B-6131-4B4D-9729-1BF8A125C0AB}"
+EndProject
+Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "common", "common", "{6DA78E72-BA55-4ECF-97DB-6258174D3E2A}"
+EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.Abp.RealTime", "modules\common\LINGYUN.Abp.RealTime\LINGYUN.Abp.RealTime.csproj", "{18A20311-84D8-49C4-B7BA-1187FF25E9BC}"
+EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.Abp.Notifications", "modules\common\LINGYUN.Abp.Notifications\LINGYUN.Abp.Notifications.csproj", "{2C3FABD7-808B-47B5-A194-849A1738E9A2}"
+EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.Abp.IM", "modules\common\LINGYUN.Abp.IM\LINGYUN.Abp.IM.csproj", "{8BE6BA3E-048E-4FC7-81DD-7FCD29AE2126}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
@@ -161,6 +171,22 @@ Global
{4FD7B21B-3689-4D4A-BDD2-A07E2DC2E80C}.Debug|Any CPU.Build.0 = Debug|Any CPU
{4FD7B21B-3689-4D4A-BDD2-A07E2DC2E80C}.Release|Any CPU.ActiveCfg = Release|Any CPU
{4FD7B21B-3689-4D4A-BDD2-A07E2DC2E80C}.Release|Any CPU.Build.0 = Release|Any CPU
+ {FF3A193B-6131-4B4D-9729-1BF8A125C0AB}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {FF3A193B-6131-4B4D-9729-1BF8A125C0AB}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {FF3A193B-6131-4B4D-9729-1BF8A125C0AB}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {FF3A193B-6131-4B4D-9729-1BF8A125C0AB}.Release|Any CPU.Build.0 = Release|Any CPU
+ {18A20311-84D8-49C4-B7BA-1187FF25E9BC}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {18A20311-84D8-49C4-B7BA-1187FF25E9BC}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {18A20311-84D8-49C4-B7BA-1187FF25E9BC}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {18A20311-84D8-49C4-B7BA-1187FF25E9BC}.Release|Any CPU.Build.0 = Release|Any CPU
+ {2C3FABD7-808B-47B5-A194-849A1738E9A2}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {2C3FABD7-808B-47B5-A194-849A1738E9A2}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {2C3FABD7-808B-47B5-A194-849A1738E9A2}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {2C3FABD7-808B-47B5-A194-849A1738E9A2}.Release|Any CPU.Build.0 = Release|Any CPU
+ {8BE6BA3E-048E-4FC7-81DD-7FCD29AE2126}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {8BE6BA3E-048E-4FC7-81DD-7FCD29AE2126}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {8BE6BA3E-048E-4FC7-81DD-7FCD29AE2126}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {8BE6BA3E-048E-4FC7-81DD-7FCD29AE2126}.Release|Any CPU.Build.0 = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
@@ -192,6 +218,10 @@ Global
{81CB5141-4FC5-413A-A516-CD65F40465C0} = {F1CCBEC7-ACAB-4DC5-909E-D8CC2E1B7EEC}
{F5023AD3-D9C5-40C9-B76A-58D95E441997} = {F1CCBEC7-ACAB-4DC5-909E-D8CC2E1B7EEC}
{4FD7B21B-3689-4D4A-BDD2-A07E2DC2E80C} = {F1CCBEC7-ACAB-4DC5-909E-D8CC2E1B7EEC}
+ {FF3A193B-6131-4B4D-9729-1BF8A125C0AB} = {F1CCBEC7-ACAB-4DC5-909E-D8CC2E1B7EEC}
+ {18A20311-84D8-49C4-B7BA-1187FF25E9BC} = {6DA78E72-BA55-4ECF-97DB-6258174D3E2A}
+ {2C3FABD7-808B-47B5-A194-849A1738E9A2} = {6DA78E72-BA55-4ECF-97DB-6258174D3E2A}
+ {8BE6BA3E-048E-4FC7-81DD-7FCD29AE2126} = {6DA78E72-BA55-4ECF-97DB-6258174D3E2A}
EndGlobalSection
GlobalSection(ExtensibilityGlobals) = postSolution
SolutionGuid = {6BB7A5DE-DA12-44DC-BC9B-0F6CA524346F}
diff --git a/aspnet-core/modules/elsa/LINGYUN.Abp.Elsa.Activities.IM/FodyWeavers.xsd b/aspnet-core/modules/elsa/LINGYUN.Abp.Elsa.Activities.IM/FodyWeavers.xsd
new file mode 100644
index 000000000..11da52550
--- /dev/null
+++ b/aspnet-core/modules/elsa/LINGYUN.Abp.Elsa.Activities.IM/FodyWeavers.xsd
@@ -0,0 +1,30 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 'true' to run assembly verification (PEVerify) on the target assembly after all weavers have been executed.
+
+
+
+
+ A comma-separated list of error codes that can be safely ignored in assembly verification.
+
+
+
+
+ 'false' to turn off automatic generation of the XML Schema file.
+
+
+
+
+
\ No newline at end of file
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 24cf6abe8..f1393d0c5 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
@@ -1,4 +1,5 @@
-using Elsa.ActivityResults;
+using Elsa;
+using Elsa.ActivityResults;
using Elsa.Attributes;
using Elsa.Services;
using Elsa.Services.Models;
@@ -9,7 +10,10 @@ using Volo.Abp.Timing;
namespace LINGYUN.Abp.Elsa.Activities.IM;
-[Action(Category = "Message", Description = "Send an message.")]
+[Action(
+ Category = "Message",
+ Description = "Send an message.",
+ Outcomes = new[] { OutcomeNames.Done })]
public class SendMessage : Activity
{
private readonly IClock _clock;
@@ -61,7 +65,7 @@ public class SendMessage : Activity
_clock,
false,
MessageType.Text,
- MessageSourceTye.User,
+ MessageSourceType.User,
tenantId);
}
else if (To.HasValue)
@@ -74,7 +78,7 @@ public class SendMessage : Activity
_clock,
false,
MessageType.Text,
- MessageSourceTye.User,
+ MessageSourceType.User,
tenantId);
}
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 d180f9078..a765ce0ca 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
@@ -1,4 +1,5 @@
-using Elsa.ActivityResults;
+using Elsa;
+using Elsa.ActivityResults;
using Elsa.Attributes;
using Elsa.Design;
using Elsa.Expressions;
@@ -13,7 +14,10 @@ using System.Threading.Tasks;
namespace LINGYUN.Abp.Elsa.Activities.Notifications;
-[Action(Category = "Notification", Description = "Send an notification.")]
+[Action(
+ Category = "Notification",
+ Description = "Send an notification.",
+ Outcomes = new[] { OutcomeNames.Done })]
public class SendNotification : Activity
{
private readonly INotificationSender _notificationSender;
diff --git a/aspnet-core/modules/elsa/LINGYUN.Abp.Elsa.Activities.Sms/FodyWeavers.xml b/aspnet-core/modules/elsa/LINGYUN.Abp.Elsa.Activities.Sms/FodyWeavers.xml
new file mode 100644
index 000000000..c485a4548
--- /dev/null
+++ b/aspnet-core/modules/elsa/LINGYUN.Abp.Elsa.Activities.Sms/FodyWeavers.xml
@@ -0,0 +1,3 @@
+
+
+
\ No newline at end of file
diff --git a/aspnet-core/modules/elsa/LINGYUN.Abp.Elsa.Activities.Sms/FodyWeavers.xsd b/aspnet-core/modules/elsa/LINGYUN.Abp.Elsa.Activities.Sms/FodyWeavers.xsd
new file mode 100644
index 000000000..11da52550
--- /dev/null
+++ b/aspnet-core/modules/elsa/LINGYUN.Abp.Elsa.Activities.Sms/FodyWeavers.xsd
@@ -0,0 +1,30 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 'true' to run assembly verification (PEVerify) on the target assembly after all weavers have been executed.
+
+
+
+
+ A comma-separated list of error codes that can be safely ignored in assembly verification.
+
+
+
+
+ 'false' to turn off automatic generation of the XML Schema file.
+
+
+
+
+
\ No newline at end of file
diff --git a/aspnet-core/modules/elsa/LINGYUN.Abp.Elsa.Activities.Sms/LINGYUN.Abp.Elsa.Activities.Sms.csproj b/aspnet-core/modules/elsa/LINGYUN.Abp.Elsa.Activities.Sms/LINGYUN.Abp.Elsa.Activities.Sms.csproj
new file mode 100644
index 000000000..73b91cc43
--- /dev/null
+++ b/aspnet-core/modules/elsa/LINGYUN.Abp.Elsa.Activities.Sms/LINGYUN.Abp.Elsa.Activities.Sms.csproj
@@ -0,0 +1,20 @@
+
+
+
+
+
+
+ netstandard2.1
+
+ enable
+
+
+
+
+
+
+
+
+
+
+
diff --git a/aspnet-core/modules/elsa/LINGYUN.Abp.Elsa.Activities.Sms/LINGYUN/Abp/Elsa/Activities/Sms/AbpElsaActivitiesSmsModule.cs b/aspnet-core/modules/elsa/LINGYUN.Abp.Elsa.Activities.Sms/LINGYUN/Abp/Elsa/Activities/Sms/AbpElsaActivitiesSmsModule.cs
new file mode 100644
index 000000000..16041721f
--- /dev/null
+++ b/aspnet-core/modules/elsa/LINGYUN.Abp.Elsa.Activities.Sms/LINGYUN/Abp/Elsa/Activities/Sms/AbpElsaActivitiesSmsModule.cs
@@ -0,0 +1,11 @@
+using Volo.Abp.Modularity;
+using Volo.Abp.Sms;
+
+namespace LINGYUN.Abp.Elsa.Activities.Sms;
+
+[DependsOn(
+ typeof(AbpElsaModule),
+ typeof(AbpSmsModule))]
+public class AbpElsaActivitiesSmsModule : AbpModule
+{
+}
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
new file mode 100644
index 000000000..c0fb509ef
--- /dev/null
+++ b/aspnet-core/modules/elsa/LINGYUN.Abp.Elsa.Activities.Sms/LINGYUN/Abp/Elsa/Activities/Sms/Activities/SendSms.cs
@@ -0,0 +1,59 @@
+using Elsa;
+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;
+using System.Threading.Tasks;
+using Volo.Abp.Sms;
+
+namespace LINGYUN.Abp.Elsa.Activities.Sms;
+
+[Action(
+ Category = "Sms",
+ Description = "Send an sms message.",
+ Outcomes = new[] { OutcomeNames.Done })]
+public class SendSms : Activity
+{
+ private readonly ISmsSender _smsSender;
+
+ public SendSms(
+ ISmsSender smsSender)
+ {
+ _smsSender = smsSender;
+ }
+
+ [ActivityInput(
+ Hint = "The recipients phoneNumber list.",
+ UIHint = ActivityInputUIHints.MultiText,
+ DefaultSyntax = SyntaxNames.Json,
+ SupportedSyntaxes = new[] { SyntaxNames.Json, SyntaxNames.JavaScript })]
+ public ICollection To { get; set; } = new List();
+
+ [ActivityInput(Hint = "The message content.")]
+ public string Message { get; set; }
+
+ [ActivityInput(
+ Hint = "Attachment property that are sent with the message.",
+ UIHint = ActivityInputUIHints.MultiLine, DefaultSyntax = SyntaxNames.Json,
+ SupportedSyntaxes = new[] { SyntaxNames.Json, SyntaxNames.JavaScript, SyntaxNames.Liquid },
+ Category = PropertyCategories.Advanced
+ )]
+ public Dictionary Properties { get; set; } = new();
+
+ protected async override ValueTask OnExecuteAsync(ActivityExecutionContext context)
+ {
+ var smsMessage = new SmsMessage(To.JoinAsString(";"), Message);
+ foreach (var prop in Properties)
+ {
+ smsMessage.Properties.TryAdd(prop.Key, prop.Value);
+ }
+
+ await _smsSender.SendAsync(smsMessage);
+
+ return Done();
+ }
+}
diff --git a/aspnet-core/modules/elsa/LINGYUN.Abp.Elsa.Activities.Sms/LINGYUN/Abp/Elsa/Activities/Sms/Startup.cs b/aspnet-core/modules/elsa/LINGYUN.Abp.Elsa.Activities.Sms/LINGYUN/Abp/Elsa/Activities/Sms/Startup.cs
new file mode 100644
index 000000000..ed1326dcb
--- /dev/null
+++ b/aspnet-core/modules/elsa/LINGYUN.Abp.Elsa.Activities.Sms/LINGYUN/Abp/Elsa/Activities/Sms/Startup.cs
@@ -0,0 +1,16 @@
+using Elsa.Attributes;
+using Elsa.Options;
+using Elsa.Services.Startup;
+using Microsoft.Extensions.Configuration;
+using Microsoft.Extensions.DependencyInjection;
+
+namespace LINGYUN.Abp.Elsa.Activities.Sms;
+
+[Feature("Sms")]
+public class Startup : StartupBase
+{
+ public override void ConfigureElsa(ElsaOptionsBuilder elsa, IConfiguration configuration)
+ {
+ elsa.AddSmsActivities();
+ }
+}
diff --git a/aspnet-core/modules/elsa/LINGYUN.Abp.Elsa.Activities.Sms/Microsoft/Extensions/DependencyInjection/SmsServiceCollectionExtensions.cs b/aspnet-core/modules/elsa/LINGYUN.Abp.Elsa.Activities.Sms/Microsoft/Extensions/DependencyInjection/SmsServiceCollectionExtensions.cs
new file mode 100644
index 000000000..16f4bbbc3
--- /dev/null
+++ b/aspnet-core/modules/elsa/LINGYUN.Abp.Elsa.Activities.Sms/Microsoft/Extensions/DependencyInjection/SmsServiceCollectionExtensions.cs
@@ -0,0 +1,15 @@
+using Elsa.Options;
+using LINGYUN.Abp.Elsa.Activities.Sms;
+
+namespace Microsoft.Extensions.DependencyInjection;
+
+public static class SmsServiceCollectionExtensions
+{
+ public static ElsaOptionsBuilder AddSmsActivities(this ElsaOptionsBuilder options)
+ {
+ options
+ .AddActivity();
+
+ return options;
+ }
+}
diff --git a/aspnet-core/services/LY.MicroService.WorkflowManagement.HttpApi.Host/LY.MicroService.WorkflowManagement.HttpApi.Host.csproj b/aspnet-core/services/LY.MicroService.WorkflowManagement.HttpApi.Host/LY.MicroService.WorkflowManagement.HttpApi.Host.csproj
index a166fabaa..b0208c7f0 100644
--- a/aspnet-core/services/LY.MicroService.WorkflowManagement.HttpApi.Host/LY.MicroService.WorkflowManagement.HttpApi.Host.csproj
+++ b/aspnet-core/services/LY.MicroService.WorkflowManagement.HttpApi.Host/LY.MicroService.WorkflowManagement.HttpApi.Host.csproj
@@ -49,6 +49,7 @@
+
diff --git a/aspnet-core/services/LY.MicroService.WorkflowManagement.HttpApi.Host/Pages/_Host.cshtml b/aspnet-core/services/LY.MicroService.WorkflowManagement.HttpApi.Host/Pages/_Host.cshtml
index 0a576edef..c1a99ee89 100644
--- a/aspnet-core/services/LY.MicroService.WorkflowManagement.HttpApi.Host/Pages/_Host.cshtml
+++ b/aspnet-core/services/LY.MicroService.WorkflowManagement.HttpApi.Host/Pages/_Host.cshtml
@@ -1,8 +1,7 @@
@page "/"
@inject IConfiguration Configuration;
@{
- var serverUrl = Configuration["Elsa:Server:BaseAddress"];
- var basePath = Configuration["Hosting:BasePath"];
+ var serverUrl = Configuration["Elsa:Server:BaseUrl"];
}
@@ -10,23 +9,22 @@
Elsa Workflows
-
-
-
-
-
-
+
+
+
+
+
+
-
-
+