diff --git a/aspnet-core/LINGYUN.MicroService.Workflow.sln b/aspnet-core/LINGYUN.MicroService.Workflow.sln index 9f253ed20..2f6185189 100644 --- a/aspnet-core/LINGYUN.MicroService.Workflow.sln +++ b/aspnet-core/LINGYUN.MicroService.Workflow.sln @@ -57,7 +57,11 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.Abp.Elsa.Server", " EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.Abp.Elsa.EntityFramework.Core", "modules\elsa\LINGYUN.Abp.Elsa.EntityFramework.Core\LINGYUN.Abp.Elsa.EntityFramework.Core.csproj", "{CAC0D3A2-8BFA-4A84-A7FA-550A3BB16288}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "LINGYUN.Abp.Elsa.Activities.BlobStoring", "modules\elsa\LINGYUN.Abp.Elsa.Activities.BlobStoring\LINGYUN.Abp.Elsa.Activities.BlobStoring.csproj", "{81CB5141-4FC5-413A-A516-CD65F40465C0}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.Abp.Elsa.Activities.BlobStoring", "modules\elsa\LINGYUN.Abp.Elsa.Activities.BlobStoring\LINGYUN.Abp.Elsa.Activities.BlobStoring.csproj", "{81CB5141-4FC5-413A-A516-CD65F40465C0}" +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}" EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution @@ -149,10 +153,14 @@ Global {81CB5141-4FC5-413A-A516-CD65F40465C0}.Debug|Any CPU.Build.0 = Debug|Any CPU {81CB5141-4FC5-413A-A516-CD65F40465C0}.Release|Any CPU.ActiveCfg = Release|Any CPU {81CB5141-4FC5-413A-A516-CD65F40465C0}.Release|Any CPU.Build.0 = Release|Any CPU - {00CB6328-83F0-4C50-9561-2C61AFC03CA1}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {00CB6328-83F0-4C50-9561-2C61AFC03CA1}.Debug|Any CPU.Build.0 = Debug|Any CPU - {00CB6328-83F0-4C50-9561-2C61AFC03CA1}.Release|Any CPU.ActiveCfg = Release|Any CPU - {00CB6328-83F0-4C50-9561-2C61AFC03CA1}.Release|Any CPU.Build.0 = Release|Any CPU + {F5023AD3-D9C5-40C9-B76A-58D95E441997}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {F5023AD3-D9C5-40C9-B76A-58D95E441997}.Debug|Any CPU.Build.0 = Debug|Any CPU + {F5023AD3-D9C5-40C9-B76A-58D95E441997}.Release|Any CPU.ActiveCfg = Release|Any CPU + {F5023AD3-D9C5-40C9-B76A-58D95E441997}.Release|Any CPU.Build.0 = Release|Any CPU + {4FD7B21B-3689-4D4A-BDD2-A07E2DC2E80C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {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 EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE @@ -182,7 +190,8 @@ Global {88AA0D46-597E-4969-8382-A3F8054B9409} = {F1CCBEC7-ACAB-4DC5-909E-D8CC2E1B7EEC} {CAC0D3A2-8BFA-4A84-A7FA-550A3BB16288} = {F1CCBEC7-ACAB-4DC5-909E-D8CC2E1B7EEC} {81CB5141-4FC5-413A-A516-CD65F40465C0} = {F1CCBEC7-ACAB-4DC5-909E-D8CC2E1B7EEC} - {00CB6328-83F0-4C50-9561-2C61AFC03CA1} = {2F51B296-58EB-4D54-9921-5A07E6E4B7BF} + {F5023AD3-D9C5-40C9-B76A-58D95E441997} = {F1CCBEC7-ACAB-4DC5-909E-D8CC2E1B7EEC} + {4FD7B21B-3689-4D4A-BDD2-A07E2DC2E80C} = {F1CCBEC7-ACAB-4DC5-909E-D8CC2E1B7EEC} EndGlobalSection GlobalSection(ExtensibilityGlobals) = postSolution SolutionGuid = {6BB7A5DE-DA12-44DC-BC9B-0F6CA524346F} diff --git a/aspnet-core/common.props b/aspnet-core/common.props index 8ee00186e..8d6704e65 100644 --- a/aspnet-core/common.props +++ b/aspnet-core/common.props @@ -3,7 +3,7 @@ latest 5.3.2 colin - $(NoWarn);CS1591;CS0436 + $(NoWarn);CS1591;CS0436;CS8618 https://github.com/colinin/abp-next-admin MIT git diff --git a/aspnet-core/modules/common/LINGYUN.Abp.IM/LINGYUN/Abp/IM/Messages/ChatMessage.cs b/aspnet-core/modules/common/LINGYUN.Abp.IM/LINGYUN/Abp/IM/Messages/ChatMessage.cs index 0c9c58386..692fc4415 100644 --- a/aspnet-core/modules/common/LINGYUN.Abp.IM/LINGYUN/Abp/IM/Messages/ChatMessage.cs +++ b/aspnet-core/modules/common/LINGYUN.Abp.IM/LINGYUN/Abp/IM/Messages/ChatMessage.cs @@ -59,7 +59,7 @@ namespace LINGYUN.Abp.IM.Messages /// public MessageType MessageType { get; set; } = MessageType.Text; - public MessageSourceTye Source { get; set; } = MessageSourceTye.User; + public MessageSourceType Source { get; set; } = MessageSourceType.User; public ExtraPropertyDictionary ExtraProperties { get; set; } @@ -77,7 +77,7 @@ namespace LINGYUN.Abp.IM.Messages IClock clock, bool isAnonymous = false, MessageType type = MessageType.Text, - MessageSourceTye souce = MessageSourceTye.User, + MessageSourceType souce = MessageSourceType.User, Guid? tenantId = null) { return new ChatMessage @@ -111,7 +111,7 @@ namespace LINGYUN.Abp.IM.Messages IsAnonymous = false, MessageType = type, TenantId = tenantId, - Source = MessageSourceTye.System, + Source = MessageSourceType.System, } .SetProperty("L", false); } @@ -145,7 +145,7 @@ namespace LINGYUN.Abp.IM.Messages IsAnonymous = false, MessageType = type, TenantId = tenantId, - Source = MessageSourceTye.System, + Source = MessageSourceType.System, } .SetProperty("L", true) .SetProperty(nameof(ChatMessage.Content).ToPascalCase(), content); @@ -169,7 +169,7 @@ namespace LINGYUN.Abp.IM.Messages IsAnonymous = false, MessageType = type, TenantId = tenantId, - Source = MessageSourceTye.System, + Source = MessageSourceType.System, } .SetProperty("L", false); } @@ -202,7 +202,7 @@ namespace LINGYUN.Abp.IM.Messages IsAnonymous = false, MessageType = type, TenantId = tenantId, - Source = MessageSourceTye.System, + Source = MessageSourceType.System, } .SetProperty("L", true) .SetProperty(nameof(ChatMessage.Content).ToPascalCase(), content); @@ -216,7 +216,7 @@ namespace LINGYUN.Abp.IM.Messages IClock clock, bool isAnonymous = false, MessageType type = MessageType.Text, - MessageSourceTye souce = MessageSourceTye.User, + MessageSourceType souce = MessageSourceType.User, Guid? tenantId = null) { return new ChatMessage diff --git a/aspnet-core/modules/common/LINGYUN.Abp.IM/LINGYUN/Abp/IM/Messages/LastChatMessage.cs b/aspnet-core/modules/common/LINGYUN.Abp.IM/LINGYUN/Abp/IM/Messages/LastChatMessage.cs index 22e70b9ec..32d7a9756 100644 --- a/aspnet-core/modules/common/LINGYUN.Abp.IM/LINGYUN/Abp/IM/Messages/LastChatMessage.cs +++ b/aspnet-core/modules/common/LINGYUN.Abp.IM/LINGYUN/Abp/IM/Messages/LastChatMessage.cs @@ -59,7 +59,7 @@ namespace LINGYUN.Abp.IM.Messages /// public MessageType MessageType { get; set; } - public MessageSourceTye Source { get; set; } + public MessageSourceType Source { get; set; } public ExtraPropertyDictionary ExtraProperties { get; set; } public LastChatMessage() { diff --git a/aspnet-core/modules/common/LINGYUN.Abp.IM/LINGYUN/Abp/IM/Messages/MessageSourceTye.cs b/aspnet-core/modules/common/LINGYUN.Abp.IM/LINGYUN/Abp/IM/Messages/MessageSourceType.cs similarity index 68% rename from aspnet-core/modules/common/LINGYUN.Abp.IM/LINGYUN/Abp/IM/Messages/MessageSourceTye.cs rename to aspnet-core/modules/common/LINGYUN.Abp.IM/LINGYUN/Abp/IM/Messages/MessageSourceType.cs index 38614e069..e77f1de1f 100644 --- a/aspnet-core/modules/common/LINGYUN.Abp.IM/LINGYUN/Abp/IM/Messages/MessageSourceTye.cs +++ b/aspnet-core/modules/common/LINGYUN.Abp.IM/LINGYUN/Abp/IM/Messages/MessageSourceType.cs @@ -1,6 +1,6 @@ namespace LINGYUN.Abp.IM.Messages { - public enum MessageSourceTye + public enum MessageSourceType { User = 0, System = 10, diff --git a/aspnet-core/modules/elsa/LINGYUN.Abp.Elsa.Activities.BlobStoring/FodyWeavers.xml b/aspnet-core/modules/elsa/LINGYUN.Abp.Elsa.Activities.BlobStoring/FodyWeavers.xml index ac6b5b292..c485a4548 100644 --- a/aspnet-core/modules/elsa/LINGYUN.Abp.Elsa.Activities.BlobStoring/FodyWeavers.xml +++ b/aspnet-core/modules/elsa/LINGYUN.Abp.Elsa.Activities.BlobStoring/FodyWeavers.xml @@ -1,3 +1,3 @@  - + \ No newline at end of file diff --git a/aspnet-core/modules/elsa/LINGYUN.Abp.Elsa.Activities.BlobStoring/LINGYUN/Abp/Elsa/Activities/BlobStoring/Activities/BlobActivity.cs b/aspnet-core/modules/elsa/LINGYUN.Abp.Elsa.Activities.BlobStoring/LINGYUN/Abp/Elsa/Activities/BlobStoring/Activities/BlobActivity.cs new file mode 100644 index 000000000..918831dde --- /dev/null +++ b/aspnet-core/modules/elsa/LINGYUN.Abp.Elsa.Activities.BlobStoring/LINGYUN/Abp/Elsa/Activities/BlobStoring/Activities/BlobActivity.cs @@ -0,0 +1,16 @@ +using Elsa.Services; +using Volo.Abp.BlobStoring; +using Volo.Abp.MultiTenancy; + +namespace LINGYUN.Abp.Elsa.Activities.BlobStoring; + +public abstract class BlobActivity : Activity +{ + protected ICurrentTenant CurrentTenant; + protected IBlobContainer BlobContainer; + + protected BlobActivity(IBlobContainer blobContainer) + { + BlobContainer = blobContainer; + } +} 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 321555dc6..36276f3c8 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 @@ -1,7 +1,6 @@ using Elsa; using Elsa.ActivityResults; using Elsa.Attributes; -using Elsa.Services; using Elsa.Services.Models; using System; using System.Threading.Tasks; @@ -12,21 +11,19 @@ namespace LINGYUN.Abp.Elsa.Activities.BlobStoring; [Action(Category = "Blob", Description = "Check if a blob exists.", Outcomes = new[] { OutcomeNames.True, OutcomeNames.False })] -public class BlobExists : Activity +public class BlobExists : BlobActivity { - private readonly IBlobContainer _container; - [ActivityInput(Hint = "Path of the oss.")] public string? Path { get; set; } - public BlobExists(IBlobContainer container) + public BlobExists(IBlobContainer blobContainer) + : base(blobContainer) { - _container = container; } protected async override ValueTask OnExecuteAsync(ActivityExecutionContext context) { - var exists = await _container.ExistsAsync(Path, context.CancellationToken); + var exists = await BlobContainer.ExistsAsync(Path, context.CancellationToken); if (exists) { return Outcome(OutcomeNames.True); 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 3f28738a5..4c163d412 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 @@ -1,7 +1,6 @@ using Elsa; using Elsa.ActivityResults; using Elsa.Attributes; -using Elsa.Services; using Elsa.Services.Models; using System; using System.Threading.Tasks; @@ -12,21 +11,19 @@ namespace LINGYUN.Abp.Elsa.Activities.BlobStoring; [Action(Category = "Blob", Description = "Deletes blob at specified location", Outcomes = new[] { OutcomeNames.Done })] -public class DeleteBlob : Activity +public class DeleteBlob : BlobActivity { - private readonly IBlobContainer _container; - [ActivityInput(Hint = "Path of the blob to be deleted.")] public string? Path { get; set; } - public DeleteBlob(IBlobContainer container) + public DeleteBlob(IBlobContainer blobContainer) + : base(blobContainer) { - _container = container; } protected async override ValueTask OnExecuteAsync(ActivityExecutionContext context) { - await _container.DeleteAsync(Path, context.CancellationToken); + await BlobContainer.DeleteAsync(Path, context.CancellationToken); return Done(); } 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 7672ddd0b..b3893bbe6 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 @@ -1,7 +1,6 @@ using Elsa; using Elsa.ActivityResults; using Elsa.Attributes; -using Elsa.Services; using Elsa.Services.Models; using System; using System.Threading.Tasks; @@ -12,24 +11,22 @@ namespace LINGYUN.Abp.Elsa.Activities.BlobStoring; [Action(Category = "Blob", Description = "Reads a blob.", Outcomes = new[] { OutcomeNames.Done })] -public class ReadBlob : Activity +public class ReadBlob : BlobActivity { - private readonly IBlobContainer _container; - [ActivityInput(Hint = "Path of the blob.")] public string? Path { get; set; } [ActivityOutput] public byte[]? Output { get; set; } - public ReadBlob(IBlobContainer container) + public ReadBlob(IBlobContainer blobContainer) + : base(blobContainer) { - _container = container; } protected async override ValueTask OnExecuteAsync(ActivityExecutionContext context) { - Output = await _container.GetAllBytesAsync(Path, context.CancellationToken); + Output = await BlobContainer.GetAllBytesAsync(Path, context.CancellationToken); return Done(); } 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 65367c7da..6c70f5531 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 @@ -2,7 +2,6 @@ using Elsa.ActivityResults; using Elsa.Attributes; using Elsa.Expressions; -using Elsa.Services; using Elsa.Services.Models; using System; using System.Threading.Tasks; @@ -13,10 +12,8 @@ namespace LINGYUN.Abp.Elsa.Activities.BlobStoring; [Action(Category = "Blob", Description = "Save a blob.", Outcomes = new[] { OutcomeNames.Done })] -public class WriteBlob : Activity +public class WriteBlob : BlobActivity { - private readonly IBlobContainer _container; - [ActivityInput(Hint = "Path of the blob.")] public string? Path { get; set; } @@ -26,14 +23,14 @@ public class WriteBlob : Activity [ActivityInput(Hint = "The bytes to write.", SupportedSyntaxes = new[] { SyntaxNames.JavaScript }, DefaultSyntax = SyntaxNames.JavaScript)] public byte[]? Bytes { get; set; } - public WriteBlob(IBlobContainer container) + public WriteBlob(IBlobContainer blobContainer) + : base(blobContainer) { - _container = container; } protected async override ValueTask OnExecuteAsync(ActivityExecutionContext context) { - await _container.SaveAsync(Path, Bytes, Overwrite, context.CancellationToken); + await BlobContainer.SaveAsync(Path, Bytes, Overwrite, context.CancellationToken); return Done(); } diff --git a/aspnet-core/modules/elsa/LINGYUN.Abp.Elsa.Activities.BlobStoring/LINGYUN/Abp/Elsa/Activities/BlobStoring/AbpElsaBlobContainer.cs b/aspnet-core/modules/elsa/LINGYUN.Abp.Elsa.Activities.BlobStoring/LINGYUN/Abp/Elsa/Activities/BlobStoring/ElsaBlobContainer.cs similarity index 52% rename from aspnet-core/modules/elsa/LINGYUN.Abp.Elsa.Activities.BlobStoring/LINGYUN/Abp/Elsa/Activities/BlobStoring/AbpElsaBlobContainer.cs rename to aspnet-core/modules/elsa/LINGYUN.Abp.Elsa.Activities.BlobStoring/LINGYUN/Abp/Elsa/Activities/BlobStoring/ElsaBlobContainer.cs index acbac9218..b37a25c74 100644 --- a/aspnet-core/modules/elsa/LINGYUN.Abp.Elsa.Activities.BlobStoring/LINGYUN/Abp/Elsa/Activities/BlobStoring/AbpElsaBlobContainer.cs +++ b/aspnet-core/modules/elsa/LINGYUN.Abp.Elsa.Activities.BlobStoring/LINGYUN/Abp/Elsa/Activities/BlobStoring/ElsaBlobContainer.cs @@ -2,7 +2,7 @@ namespace LINGYUN.Abp.Elsa.Activities.BlobStoring; -[BlobContainerName("elsa-container")] -public class AbpElsaBlobContainer +[BlobContainerName("elsa")] +public class ElsaBlobContainer { } diff --git a/aspnet-core/modules/elsa/LINGYUN.Abp.Elsa.Activities.IM/FodyWeavers.xml b/aspnet-core/modules/elsa/LINGYUN.Abp.Elsa.Activities.IM/FodyWeavers.xml new file mode 100644 index 000000000..c485a4548 --- /dev/null +++ b/aspnet-core/modules/elsa/LINGYUN.Abp.Elsa.Activities.IM/FodyWeavers.xml @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/aspnet-core/modules/elsa/LINGYUN.Abp.Elsa.Activities.IM/LINGYUN.Abp.Elsa.Activities.IM.csproj b/aspnet-core/modules/elsa/LINGYUN.Abp.Elsa.Activities.IM/LINGYUN.Abp.Elsa.Activities.IM.csproj new file mode 100644 index 000000000..63640ac43 --- /dev/null +++ b/aspnet-core/modules/elsa/LINGYUN.Abp.Elsa.Activities.IM/LINGYUN.Abp.Elsa.Activities.IM.csproj @@ -0,0 +1,17 @@ + + + + + + + netstandard2.1 + + enable + + + + + + + + diff --git a/aspnet-core/modules/elsa/LINGYUN.Abp.Elsa.Activities.IM/LINGYUN/Abp/Elsa/Activities/IM/AbpElsaActivitiesIMModule.cs b/aspnet-core/modules/elsa/LINGYUN.Abp.Elsa.Activities.IM/LINGYUN/Abp/Elsa/Activities/IM/AbpElsaActivitiesIMModule.cs new file mode 100644 index 000000000..323257961 --- /dev/null +++ b/aspnet-core/modules/elsa/LINGYUN.Abp.Elsa.Activities.IM/LINGYUN/Abp/Elsa/Activities/IM/AbpElsaActivitiesIMModule.cs @@ -0,0 +1,11 @@ +using LINGYUN.Abp.IM; +using Volo.Abp.Modularity; + +namespace LINGYUN.Abp.Elsa.Activities.IM; + +[DependsOn( + typeof(AbpElsaModule), + typeof(AbpIMModule))] +public class AbpElsaActivitiesIMModule : AbpModule +{ +} 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 new file mode 100644 index 000000000..24cf6abe8 --- /dev/null +++ b/aspnet-core/modules/elsa/LINGYUN.Abp.Elsa.Activities.IM/LINGYUN/Abp/Elsa/Activities/IM/Activities/SendMessage.cs @@ -0,0 +1,90 @@ +using Elsa.ActivityResults; +using Elsa.Attributes; +using Elsa.Services; +using Elsa.Services.Models; +using LINGYUN.Abp.IM.Messages; +using System; +using System.Threading.Tasks; +using Volo.Abp.Timing; + +namespace LINGYUN.Abp.Elsa.Activities.IM; + +[Action(Category = "Message", Description = "Send an message.")] +public class SendMessage : Activity +{ + private readonly IClock _clock; + private readonly IMessageSender _messageSender; + + [ActivityInput(Hint = "The message content.")] + public string Content { get; set; } //TODO: Other message type + + [ActivityInput(Hint = "Source user identity.")] + public Guid FormUser { get; set; } + + [ActivityInput(Hint = "Source user name.")] + public string? FormUserName { get; set; } + + [ActivityInput( + Hint = "Receiving user identity.", + UIHint = "If the value is not empty, it is a user message")] + public Guid? To { get; set; } + + [ActivityInput( + Hint = "Receiving group identity.", + UIHint = "If the value is not empty, it is a group message")] + public string? GroupId { get; set; } + + [ActivityOutput] + public string? MessageId { get; set; } + + public SendMessage( + IClock clock, + IMessageSender messageSender) + { + _clock = clock; + _messageSender = messageSender; + } + + + protected async override ValueTask OnExecuteAsync(ActivityExecutionContext context) + { + ChatMessage? chatMessage = null; + var tenantId = context.GetTenantId(); + + if (!GroupId.IsNullOrWhiteSpace()) + { + chatMessage = ChatMessage.Group( + FormUser, + FormUserName, + GroupId, + Content, + _clock, + false, + MessageType.Text, + MessageSourceTye.User, + tenantId); + } + else if (To.HasValue) + { + chatMessage = ChatMessage.User( + FormUser, + FormUserName, + To.Value, + Content, + _clock, + false, + MessageType.Text, + MessageSourceTye.User, + tenantId); + } + + if (chatMessage != null) + { + MessageId = await _messageSender.SendMessageAsync(chatMessage); + + return Done(); + } + + return Suspend(); + } +} diff --git a/aspnet-core/modules/elsa/LINGYUN.Abp.Elsa.Activities.IM/LINGYUN/Abp/Elsa/Activities/IM/Startup.cs b/aspnet-core/modules/elsa/LINGYUN.Abp.Elsa.Activities.IM/LINGYUN/Abp/Elsa/Activities/IM/Startup.cs new file mode 100644 index 000000000..69f2e4ffd --- /dev/null +++ b/aspnet-core/modules/elsa/LINGYUN.Abp.Elsa.Activities.IM/LINGYUN/Abp/Elsa/Activities/IM/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.IM; + +[Feature("IM")] +public class Startup : StartupBase +{ + public override void ConfigureElsa(ElsaOptionsBuilder elsa, IConfiguration configuration) + { + elsa.AddIMActivities(); + } +} diff --git a/aspnet-core/modules/elsa/LINGYUN.Abp.Elsa.Activities.IM/Microsoft/Extensions/DependencyInjection/IMServiceCollectionExtensions.cs b/aspnet-core/modules/elsa/LINGYUN.Abp.Elsa.Activities.IM/Microsoft/Extensions/DependencyInjection/IMServiceCollectionExtensions.cs new file mode 100644 index 000000000..4b9180430 --- /dev/null +++ b/aspnet-core/modules/elsa/LINGYUN.Abp.Elsa.Activities.IM/Microsoft/Extensions/DependencyInjection/IMServiceCollectionExtensions.cs @@ -0,0 +1,15 @@ +using Elsa.Options; +using LINGYUN.Abp.Elsa.Activities.IM; + +namespace Microsoft.Extensions.DependencyInjection; + +public static class IMServiceCollectionExtensions +{ + public static ElsaOptionsBuilder AddIMActivities(this ElsaOptionsBuilder options) + { + options + .AddActivity(); + + return options; + } +} diff --git a/aspnet-core/modules/elsa/LINGYUN.Abp.Elsa.Activities.Notifications/FodyWeavers.xml b/aspnet-core/modules/elsa/LINGYUN.Abp.Elsa.Activities.Notifications/FodyWeavers.xml new file mode 100644 index 000000000..c485a4548 --- /dev/null +++ b/aspnet-core/modules/elsa/LINGYUN.Abp.Elsa.Activities.Notifications/FodyWeavers.xml @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/aspnet-core/modules/elsa/LINGYUN.Abp.Elsa.Activities.Notifications/FodyWeavers.xsd b/aspnet-core/modules/elsa/LINGYUN.Abp.Elsa.Activities.Notifications/FodyWeavers.xsd new file mode 100644 index 000000000..11da52550 --- /dev/null +++ b/aspnet-core/modules/elsa/LINGYUN.Abp.Elsa.Activities.Notifications/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.Notifications/LINGYUN.Abp.Elsa.Activities.Notifications.csproj b/aspnet-core/modules/elsa/LINGYUN.Abp.Elsa.Activities.Notifications/LINGYUN.Abp.Elsa.Activities.Notifications.csproj new file mode 100644 index 000000000..f69447a35 --- /dev/null +++ b/aspnet-core/modules/elsa/LINGYUN.Abp.Elsa.Activities.Notifications/LINGYUN.Abp.Elsa.Activities.Notifications.csproj @@ -0,0 +1,17 @@ + + + + + + + netstandard2.1 + + enable + + + + + + + + diff --git a/aspnet-core/modules/elsa/LINGYUN.Abp.Elsa.Activities.Notifications/LINGYUN/Abp/Elsa/Activities/Notifications/AbpElsaActivitiesNotificationsModule.cs b/aspnet-core/modules/elsa/LINGYUN.Abp.Elsa.Activities.Notifications/LINGYUN/Abp/Elsa/Activities/Notifications/AbpElsaActivitiesNotificationsModule.cs new file mode 100644 index 000000000..406fe5c27 --- /dev/null +++ b/aspnet-core/modules/elsa/LINGYUN.Abp.Elsa.Activities.Notifications/LINGYUN/Abp/Elsa/Activities/Notifications/AbpElsaActivitiesNotificationsModule.cs @@ -0,0 +1,11 @@ +using LINGYUN.Abp.Notifications; +using Volo.Abp.Modularity; + +namespace LINGYUN.Abp.Elsa.Activities.Notifications; + +[DependsOn( + typeof(AbpElsaModule), + typeof(AbpNotificationModule))] +public class AbpElsaActivitiesNotificationsModule : AbpModule +{ +} 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 new file mode 100644 index 000000000..d180f9078 --- /dev/null +++ b/aspnet-core/modules/elsa/LINGYUN.Abp.Elsa.Activities.Notifications/LINGYUN/Abp/Elsa/Activities/Notifications/Activities/SendNotification.cs @@ -0,0 +1,82 @@ +using Elsa.ActivityResults; +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; + +namespace LINGYUN.Abp.Elsa.Activities.Notifications; + +[Action(Category = "Notification", Description = "Send an notification.")] +public class SendNotification : Activity +{ + private readonly INotificationSender _notificationSender; + + [ActivityInput(Hint = "The name of the registered notification.", SupportedSyntaxes = new[] { SyntaxNames.JavaScript, SyntaxNames.Liquid })] + public string NotificationName { get; set; } + + [ActivityInput( + Hint = "Notifications pass data or template content.", + UIHint = ActivityInputUIHints.MultiLine, + SupportedSyntaxes = new[] { SyntaxNames.JavaScript, SyntaxNames.Liquid }, + DefaultWorkflowStorageProvider = TransientWorkflowStorageProvider.ProviderName + )] + public object NotificationData { get; set; } + + [ActivityInput( + Hint = "The recipients user id list.", + UIHint = ActivityInputUIHints.MultiText, + DefaultSyntax = SyntaxNames.Json, + SupportedSyntaxes = new[] { SyntaxNames.Json, SyntaxNames.JavaScript })] + public ICollection To { get; set; } = new List(); + + [ActivityInput(Hint = "Notifications severity.", SupportedSyntaxes = new[] { SyntaxNames.JavaScript, SyntaxNames.Liquid })] + public NotificationSeverity Severity { get; set; } = NotificationSeverity.Info; + + [ActivityOutput] + public string? NotificationId { get; set; } + + public SendNotification( + INotificationSender notificationSender) + { + _notificationSender = notificationSender; + } + + + protected async override ValueTask OnExecuteAsync(ActivityExecutionContext context) + { + var tenantId = context.GetTenantId(); + switch (NotificationData) + { + case NotificationData data: + NotificationId = await _notificationSender.SendNofiterAsync( + NotificationName, + data, + GetUserIdentifiers(), + tenantId, + Severity); + return Done(); + case NotificationTemplate template: + NotificationId = await _notificationSender.SendNofiterAsync( + NotificationName, + template, + GetUserIdentifiers(), + tenantId, + Severity); + return Done(); + } + + return Suspend(); + } + + private IEnumerable GetUserIdentifiers() + { + return To.Select(to => new UserIdentifier(to, to.ToString())); + } +} diff --git a/aspnet-core/modules/elsa/LINGYUN.Abp.Elsa.Activities.Notifications/LINGYUN/Abp/Elsa/Activities/Notifications/Startup.cs b/aspnet-core/modules/elsa/LINGYUN.Abp.Elsa.Activities.Notifications/LINGYUN/Abp/Elsa/Activities/Notifications/Startup.cs new file mode 100644 index 000000000..cb9fd3e4c --- /dev/null +++ b/aspnet-core/modules/elsa/LINGYUN.Abp.Elsa.Activities.Notifications/LINGYUN/Abp/Elsa/Activities/Notifications/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.Notifications; + +[Feature("Notification")] +public class Startup : StartupBase +{ + public override void ConfigureElsa(ElsaOptionsBuilder elsa, IConfiguration configuration) + { + elsa.AddNotificationActivities(); + } +} diff --git a/aspnet-core/modules/elsa/LINGYUN.Abp.Elsa.Activities.Notifications/Microsoft/Extensions/DependencyInjection/NotificationServiceCollectionExtensions.cs b/aspnet-core/modules/elsa/LINGYUN.Abp.Elsa.Activities.Notifications/Microsoft/Extensions/DependencyInjection/NotificationServiceCollectionExtensions.cs new file mode 100644 index 000000000..02b80884e --- /dev/null +++ b/aspnet-core/modules/elsa/LINGYUN.Abp.Elsa.Activities.Notifications/Microsoft/Extensions/DependencyInjection/NotificationServiceCollectionExtensions.cs @@ -0,0 +1,15 @@ +using Elsa.Options; +using LINGYUN.Abp.Elsa.Activities.Notifications; + +namespace Microsoft.Extensions.DependencyInjection; + +public static class NotificationServiceCollectionExtensions +{ + public static ElsaOptionsBuilder AddNotificationActivities(this ElsaOptionsBuilder options) + { + options + .AddActivity(); + + return options; + } +} diff --git a/aspnet-core/modules/elsa/LINGYUN.Abp.Elsa.EntityFramework.Core/FodyWeavers.xml b/aspnet-core/modules/elsa/LINGYUN.Abp.Elsa.EntityFramework.Core/FodyWeavers.xml new file mode 100644 index 000000000..c485a4548 --- /dev/null +++ b/aspnet-core/modules/elsa/LINGYUN.Abp.Elsa.EntityFramework.Core/FodyWeavers.xml @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/aspnet-core/modules/elsa/LINGYUN.Abp.Elsa.Server/FodyWeavers.xml b/aspnet-core/modules/elsa/LINGYUN.Abp.Elsa.Server/FodyWeavers.xml index ac6b5b292..c485a4548 100644 --- a/aspnet-core/modules/elsa/LINGYUN.Abp.Elsa.Server/FodyWeavers.xml +++ b/aspnet-core/modules/elsa/LINGYUN.Abp.Elsa.Server/FodyWeavers.xml @@ -1,3 +1,3 @@  - + \ No newline at end of file diff --git a/aspnet-core/modules/elsa/LINGYUN.Abp.Elsa/Elsa/Models/WorkflowInstanceExtensions.cs b/aspnet-core/modules/elsa/LINGYUN.Abp.Elsa/Elsa/Models/WorkflowInstanceExtensions.cs new file mode 100644 index 000000000..cfda57ba4 --- /dev/null +++ b/aspnet-core/modules/elsa/LINGYUN.Abp.Elsa/Elsa/Models/WorkflowInstanceExtensions.cs @@ -0,0 +1,17 @@ +using System; + +namespace Elsa.Models; + +public static class WorkflowInstanceExtensions +{ + public static Guid? GetTenantId(this WorkflowInstance instance) + { + var tenantId = instance.TenantId; + if (!tenantId.IsNullOrWhiteSpace() && + Guid.TryParse(tenantId, out var id)) + { + return id; + } + return null; + } +} diff --git a/aspnet-core/modules/elsa/LINGYUN.Abp.Elsa/Elsa/Services/Models/ActivityExecutionContextExtensions.cs b/aspnet-core/modules/elsa/LINGYUN.Abp.Elsa/Elsa/Services/Models/ActivityExecutionContextExtensions.cs new file mode 100644 index 000000000..990ad4bf6 --- /dev/null +++ b/aspnet-core/modules/elsa/LINGYUN.Abp.Elsa/Elsa/Services/Models/ActivityExecutionContextExtensions.cs @@ -0,0 +1,12 @@ +using Elsa.Models; +using System; + +namespace Elsa.Services.Models; + +public static class ActivityExecutionContextExtensions +{ + public static Guid? GetTenantId(this ActivityExecutionContext context) + { + return context.WorkflowInstance.GetTenantId(); + } +} diff --git a/aspnet-core/modules/elsa/LINGYUN.Abp.Elsa/FodyWeavers.xml b/aspnet-core/modules/elsa/LINGYUN.Abp.Elsa/FodyWeavers.xml index ac6b5b292..c485a4548 100644 --- a/aspnet-core/modules/elsa/LINGYUN.Abp.Elsa/FodyWeavers.xml +++ b/aspnet-core/modules/elsa/LINGYUN.Abp.Elsa/FodyWeavers.xml @@ -1,3 +1,3 @@  - + \ No newline at end of file diff --git a/aspnet-core/modules/elsa/LINGYUN.Abp.Elsa/LINGYUN.Abp.Elsa.csproj b/aspnet-core/modules/elsa/LINGYUN.Abp.Elsa/LINGYUN.Abp.Elsa.csproj index d07bc6ce9..fcf7f9078 100644 --- a/aspnet-core/modules/elsa/LINGYUN.Abp.Elsa/LINGYUN.Abp.Elsa.csproj +++ b/aspnet-core/modules/elsa/LINGYUN.Abp.Elsa/LINGYUN.Abp.Elsa.csproj @@ -6,6 +6,7 @@ netstandard2.1 + Enable diff --git a/aspnet-core/modules/elsa/LINGYUN.Abp.Elsa/LINGYUN/Abp/Elsa/AbpElsaModule.cs b/aspnet-core/modules/elsa/LINGYUN.Abp.Elsa/LINGYUN/Abp/Elsa/AbpElsaModule.cs index b96821e9d..31075b2dc 100644 --- a/aspnet-core/modules/elsa/LINGYUN.Abp.Elsa/LINGYUN/Abp/Elsa/AbpElsaModule.cs +++ b/aspnet-core/modules/elsa/LINGYUN.Abp.Elsa/LINGYUN/Abp/Elsa/AbpElsaModule.cs @@ -46,7 +46,8 @@ public class AbpElsaModule : AbpModule builder.Configure(options); }); - context.Services.AddSingleton(); + context.Services.Replace(ServiceLifetime.Singleton); + context.Services.Replace(ServiceLifetime.Scoped); Configure(options => { diff --git a/aspnet-core/modules/elsa/LINGYUN.Abp.Elsa/LINGYUN/Abp/Elsa/AbpTenantAccessor.cs b/aspnet-core/modules/elsa/LINGYUN.Abp.Elsa/LINGYUN/Abp/Elsa/AbpTenantAccessor.cs index a9af50bd3..a35ac8243 100644 --- a/aspnet-core/modules/elsa/LINGYUN.Abp.Elsa/LINGYUN/Abp/Elsa/AbpTenantAccessor.cs +++ b/aspnet-core/modules/elsa/LINGYUN.Abp.Elsa/LINGYUN/Abp/Elsa/AbpTenantAccessor.cs @@ -15,12 +15,13 @@ public class AbpTenantAccessor : ITenantAccessor _currentTenant = currentTenant; } - public Task GetTenantIdAsync(CancellationToken cancellationToken = default) + public Task GetTenantIdAsync(CancellationToken cancellationToken = default) { + string? tenantId = null; if (_currentTenant.IsAvailable) { - return Task.FromResult(_currentTenant.GetId().ToString()); + tenantId = _currentTenant.GetId().ToString(); } - return Task.FromResult(""); + return Task.FromResult(tenantId); } } diff --git a/aspnet-core/modules/elsa/LINGYUN.Abp.Elsa/LINGYUN/Abp/Elsa/AbpWorkflowRunner.cs b/aspnet-core/modules/elsa/LINGYUN.Abp.Elsa/LINGYUN/Abp/Elsa/AbpWorkflowRunner.cs new file mode 100644 index 000000000..2ea2842c6 --- /dev/null +++ b/aspnet-core/modules/elsa/LINGYUN.Abp.Elsa/LINGYUN/Abp/Elsa/AbpWorkflowRunner.cs @@ -0,0 +1,52 @@ +using Elsa.Models; +using Elsa.Services; +using Elsa.Services.Models; +using Elsa.Services.Workflows; +using Elsa.Services.WorkflowStorage; +using MediatR; +using Microsoft.Extensions.DependencyInjection; +using Microsoft.Extensions.Logging; +using System.Threading; +using System.Threading.Tasks; +using Volo.Abp.MultiTenancy; + +namespace LINGYUN.Abp.Elsa; + +public class AbpWorkflowRunner : WorkflowRunner +{ + private readonly ICurrentTenant _currentTenant; + public AbpWorkflowRunner( + ICurrentTenant currentTenant, + IWorkflowContextManager workflowContextManager, + IMediator mediator, + IServiceScopeFactory serviceScopeFactory, + IGetsStartActivities startingActivitiesProvider, + IWorkflowStorageService workflowStorageService, + ILogger logger) + : base( + workflowContextManager, + mediator, + serviceScopeFactory, + startingActivitiesProvider, + workflowStorageService, + logger) + { + _currentTenant = currentTenant; + } + + protected async override Task RunWorkflowInternalAsync( + WorkflowExecutionContext workflowExecutionContext, + string? activityId = null, + CancellationToken cancellationToken = default) + { + var tenantId = workflowExecutionContext.WorkflowInstance.GetTenantId(); + + using (_currentTenant.Change(tenantId)) + { + return await base.RunWorkflowInternalAsync( + workflowExecutionContext, + activityId, + cancellationToken); + } + } +} diff --git a/aspnet-core/modules/message/LINGYUN.Abp.MessageService.Domain/LINGYUN/Abp/MessageService/Chat/Message.cs b/aspnet-core/modules/message/LINGYUN.Abp.MessageService.Domain/LINGYUN/Abp/MessageService/Chat/Message.cs index 1a0e29e92..edcbabedb 100644 --- a/aspnet-core/modules/message/LINGYUN.Abp.MessageService.Domain/LINGYUN/Abp/MessageService/Chat/Message.cs +++ b/aspnet-core/modules/message/LINGYUN.Abp.MessageService.Domain/LINGYUN/Abp/MessageService/Chat/Message.cs @@ -31,7 +31,7 @@ namespace LINGYUN.Abp.MessageService.Chat /// /// 消息来源 /// - public virtual MessageSourceTye Source { get; protected set; } + public virtual MessageSourceType Source { get; protected set; } /// /// 发送状态 /// @@ -43,7 +43,7 @@ namespace LINGYUN.Abp.MessageService.Chat string sendUserName, string content, MessageType type = MessageType.Text, - MessageSourceTye source = MessageSourceTye.User, + MessageSourceType source = MessageSourceType.User, Guid? tenantId = null) { MessageId = id; diff --git a/aspnet-core/modules/message/LINGYUN.Abp.MessageService.Domain/LINGYUN/Abp/MessageService/Chat/UserMessage.cs b/aspnet-core/modules/message/LINGYUN.Abp.MessageService.Domain/LINGYUN/Abp/MessageService/Chat/UserMessage.cs index 37c6d39e6..b50f249e0 100644 --- a/aspnet-core/modules/message/LINGYUN.Abp.MessageService.Domain/LINGYUN/Abp/MessageService/Chat/UserMessage.cs +++ b/aspnet-core/modules/message/LINGYUN.Abp.MessageService.Domain/LINGYUN/Abp/MessageService/Chat/UserMessage.cs @@ -18,7 +18,7 @@ namespace LINGYUN.Abp.MessageService.Chat Guid receiveUserId, string content, MessageType type = MessageType.Text, - MessageSourceTye source = MessageSourceTye.User, + MessageSourceType source = MessageSourceType.User, Guid? tenantId = null) : base(id, sendUserId, sendUserName, content, type, source, tenantId) { diff --git a/aspnet-core/modules/message/LINGYUN.Abp.MessageService.Domain/LINGYUN/Abp/MessageService/Groups/GroupMessage.cs b/aspnet-core/modules/message/LINGYUN.Abp.MessageService.Domain/LINGYUN/Abp/MessageService/Groups/GroupMessage.cs index 7619a3d1e..5198467ad 100644 --- a/aspnet-core/modules/message/LINGYUN.Abp.MessageService.Domain/LINGYUN/Abp/MessageService/Groups/GroupMessage.cs +++ b/aspnet-core/modules/message/LINGYUN.Abp.MessageService.Domain/LINGYUN/Abp/MessageService/Groups/GroupMessage.cs @@ -19,7 +19,7 @@ namespace LINGYUN.Abp.MessageService.Groups long groupId, string content, MessageType type = MessageType.Text, - MessageSourceTye source = MessageSourceTye.User, + MessageSourceType source = MessageSourceType.User, Guid? tenantId = null) : base(id, sendUserId, sendUserName, content, type, source, tenantId) { diff --git a/aspnet-core/modules/message/LINGYUN.Abp.MessageService.EntityFrameworkCore/LINGYUN/Abp/MessageService/Chat/EfCoreMessageRepository.cs b/aspnet-core/modules/message/LINGYUN.Abp.MessageService.EntityFrameworkCore/LINGYUN/Abp/MessageService/Chat/EfCoreMessageRepository.cs index e65586c8c..65d78e375 100644 --- a/aspnet-core/modules/message/LINGYUN.Abp.MessageService.EntityFrameworkCore/LINGYUN/Abp/MessageService/Chat/EfCoreMessageRepository.cs +++ b/aspnet-core/modules/message/LINGYUN.Abp.MessageService.EntityFrameworkCore/LINGYUN/Abp/MessageService/Chat/EfCoreMessageRepository.cs @@ -341,7 +341,7 @@ namespace LINGYUN.Abp.MessageService.Chat FormUserName = GetValue(reader, 3), Object = GetValue(reader, 4), AvatarUrl = GetValue(reader, 5), - Source = (MessageSourceTye)GetValue(reader, 6), + Source = (MessageSourceType)GetValue(reader, 6), MessageId = GetValue(reader, 7), MessageType = (MessageType)GetValue(reader, 8), TenantId = GetValue(reader, 9), 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 65dfdb07d..a166fabaa 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 @@ -47,6 +47,8 @@ + + diff --git a/aspnet-core/services/LY.MicroService.WorkflowManagement.HttpApi.Host/WorkflowManagementHttpApiHostModule.Configure.cs b/aspnet-core/services/LY.MicroService.WorkflowManagement.HttpApi.Host/WorkflowManagementHttpApiHostModule.Configure.cs index 25d663d50..f50a9e502 100644 --- a/aspnet-core/services/LY.MicroService.WorkflowManagement.HttpApi.Host/WorkflowManagementHttpApiHostModule.Configure.cs +++ b/aspnet-core/services/LY.MicroService.WorkflowManagement.HttpApi.Host/WorkflowManagementHttpApiHostModule.Configure.cs @@ -74,6 +74,8 @@ public partial class WorkflowManagementHttpApiHostModule typeof(Elsa.Webhooks.Persistence.EntityFramework.MySql.Startup), typeof(Elsa.WorkflowSettings.Persistence.EntityFramework.MySql.Startup), typeof(LINGYUN.Abp.Elsa.Activities.BlobStoring.Startup), + typeof(LINGYUN.Abp.Elsa.Activities.Notifications.Startup), + typeof(LINGYUN.Abp.Elsa.Activities.IM.Startup), }; PreConfigure(elsa => diff --git a/aspnet-core/services/LY.MicroService.WorkflowManagement.HttpApi.Host/appsettings.Development.json b/aspnet-core/services/LY.MicroService.WorkflowManagement.HttpApi.Host/appsettings.Development.json index fbf9aab36..9de187a76 100644 --- a/aspnet-core/services/LY.MicroService.WorkflowManagement.HttpApi.Host/appsettings.Development.json +++ b/aspnet-core/services/LY.MicroService.WorkflowManagement.HttpApi.Host/appsettings.Development.json @@ -41,6 +41,8 @@ "Conductor": true, "Telnyx": true, "BlobStoring": true, + "Notification": true, + "IM": true, "Webhooks": { "Enabled": true, "ConnectionStringIdentifier": "Workflow",