From 54d16e9767c9756af783135384169d72c3d5b4e4 Mon Sep 17 00:00:00 2001 From: Sipke Schoorstra Date: Sat, 16 Feb 2019 11:57:45 +0100 Subject: [PATCH] Added SendEmail activity (#19) --- Elsa.sln | 14 +++++++ .../Activities/SendEmail.cs | 13 ++++++ .../ActivityDescriptors.cs | 27 ++++++++++++ .../Drivers/SendEmailDriver.cs | 42 +++++++++++++++++++ .../Elsa.Activities.Email.csproj | 19 +++++++++ .../Extensions/ServiceCollectionExtensions.cs | 39 +++++++++++++++++ .../Options/SmtpOptions.cs | 8 ++++ .../SampleDashboard.Web.csproj | 1 + .../SampleHost.Web/SampleHost.Web.csproj | 1 + src/samples/SampleHost.Web/Startup.cs | 4 +- src/samples/SampleHost.Web/appsettings.json | 7 ++++ .../Elsa.Web.Activities.Console/Manifest.cs | 2 +- .../Display/SendEmailDisplay.cs | 26 ++++++++++++ .../Elsa.Web.Activities.Email.csproj | 25 +++++++++++ .../Elsa.Web.Activities.Email/Manifest.cs | 7 ++++ .../Elsa.Web.Activities.Email/Startup.cs | 18 ++++++++ .../ViewModels/SendEmailViewModel.cs | 12 ++++++ .../Views/SendEmail.Card.cshtml | 6 +++ .../Views/SendEmail.Design.cshtml | 6 +++ .../Views/SendEmail.Edit.cshtml | 25 +++++++++++ .../Views/_ViewImports.cshtml | 7 ++++ .../Elsa.Web.Activities.Http/Manifest.cs | 2 +- .../Manifest.cs | 2 +- .../modules/Elsa.Web.Components/Manifest.cs | 2 +- .../modules/Elsa.Web.Management/Manifest.cs | 2 +- .../Manifest.cs | 2 +- 26 files changed, 312 insertions(+), 7 deletions(-) create mode 100644 src/activities/Elsa.Activities.Email/Activities/SendEmail.cs create mode 100644 src/activities/Elsa.Activities.Email/ActivityDescriptors.cs create mode 100644 src/activities/Elsa.Activities.Email/Drivers/SendEmailDriver.cs create mode 100644 src/activities/Elsa.Activities.Email/Elsa.Activities.Email.csproj create mode 100644 src/activities/Elsa.Activities.Email/Extensions/ServiceCollectionExtensions.cs create mode 100644 src/activities/Elsa.Activities.Email/Options/SmtpOptions.cs create mode 100644 src/web/modules/Elsa.Web.Activities.Email/Display/SendEmailDisplay.cs create mode 100644 src/web/modules/Elsa.Web.Activities.Email/Elsa.Web.Activities.Email.csproj create mode 100644 src/web/modules/Elsa.Web.Activities.Email/Manifest.cs create mode 100644 src/web/modules/Elsa.Web.Activities.Email/Startup.cs create mode 100644 src/web/modules/Elsa.Web.Activities.Email/ViewModels/SendEmailViewModel.cs create mode 100644 src/web/modules/Elsa.Web.Activities.Email/Views/SendEmail.Card.cshtml create mode 100644 src/web/modules/Elsa.Web.Activities.Email/Views/SendEmail.Design.cshtml create mode 100644 src/web/modules/Elsa.Web.Activities.Email/Views/SendEmail.Edit.cshtml create mode 100644 src/web/modules/Elsa.Web.Activities.Email/Views/_ViewImports.cshtml diff --git a/Elsa.sln b/Elsa.sln index b16716eea..bbb21e67f 100644 --- a/Elsa.sln +++ b/Elsa.sln @@ -63,6 +63,10 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SampleDashboard.Web", "src\ EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Elsa.Persistence.InMemory", "src\core\Elsa.Persistence.InMemory\Elsa.Persistence.InMemory.csproj", "{089E23E7-0B8D-4BB6-949D-EB669C116D9E}" EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Elsa.Activities.Email", "src\activities\Elsa.Activities.Email\Elsa.Activities.Email.csproj", "{D20FCB88-9DCA-49EA-9CC2-5B94DD935D30}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Elsa.Web.Activities.Email", "src\web\modules\Elsa.Web.Activities.Email\Elsa.Web.Activities.Email.csproj", "{6B5E8D2F-3C4A-407A-B78C-DF4C3B32FF92}" +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU @@ -149,6 +153,14 @@ Global {089E23E7-0B8D-4BB6-949D-EB669C116D9E}.Debug|Any CPU.Build.0 = Debug|Any CPU {089E23E7-0B8D-4BB6-949D-EB669C116D9E}.Release|Any CPU.ActiveCfg = Release|Any CPU {089E23E7-0B8D-4BB6-949D-EB669C116D9E}.Release|Any CPU.Build.0 = Release|Any CPU + {D20FCB88-9DCA-49EA-9CC2-5B94DD935D30}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {D20FCB88-9DCA-49EA-9CC2-5B94DD935D30}.Debug|Any CPU.Build.0 = Debug|Any CPU + {D20FCB88-9DCA-49EA-9CC2-5B94DD935D30}.Release|Any CPU.ActiveCfg = Release|Any CPU + {D20FCB88-9DCA-49EA-9CC2-5B94DD935D30}.Release|Any CPU.Build.0 = Release|Any CPU + {6B5E8D2F-3C4A-407A-B78C-DF4C3B32FF92}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {6B5E8D2F-3C4A-407A-B78C-DF4C3B32FF92}.Debug|Any CPU.Build.0 = Debug|Any CPU + {6B5E8D2F-3C4A-407A-B78C-DF4C3B32FF92}.Release|Any CPU.ActiveCfg = Release|Any CPU + {6B5E8D2F-3C4A-407A-B78C-DF4C3B32FF92}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE @@ -178,6 +190,8 @@ Global {B5E36E84-1978-43C7-8859-F5184C9A657C} = {B33F1927-FF0A-4826-80C6-F480E9C43892} {27BD3AE7-8D3B-4D19-A8E3-4DC6922C2213} = {C55090FE-8506-4FDA-928F-5ACBB9CBE019} {089E23E7-0B8D-4BB6-949D-EB669C116D9E} = {35F44BE9-13D0-417C-A01A-F0787BEE6DC3} + {D20FCB88-9DCA-49EA-9CC2-5B94DD935D30} = {B43B546E-23F3-46E8-ACB7-D04F05CDA180} + {6B5E8D2F-3C4A-407A-B78C-DF4C3B32FF92} = {B33F1927-FF0A-4826-80C6-F480E9C43892} EndGlobalSection GlobalSection(ExtensibilityGlobals) = postSolution SolutionGuid = {8B0975FD-7050-48B0-88C5-48C33378E158} diff --git a/src/activities/Elsa.Activities.Email/Activities/SendEmail.cs b/src/activities/Elsa.Activities.Email/Activities/SendEmail.cs new file mode 100644 index 000000000..f5902723b --- /dev/null +++ b/src/activities/Elsa.Activities.Email/Activities/SendEmail.cs @@ -0,0 +1,13 @@ +using Elsa.Expressions; +using Elsa.Models; + +namespace Elsa.Activities.Email.Activities +{ + public class SendEmail : Activity + { + public WorkflowExpression From { get; set; } + public WorkflowExpression To { get; set; } + public WorkflowExpression Subject { get; set; } + public WorkflowExpression Body { get; set; } + } +} \ No newline at end of file diff --git a/src/activities/Elsa.Activities.Email/ActivityDescriptors.cs b/src/activities/Elsa.Activities.Email/ActivityDescriptors.cs new file mode 100644 index 000000000..bc787bf47 --- /dev/null +++ b/src/activities/Elsa.Activities.Email/ActivityDescriptors.cs @@ -0,0 +1,27 @@ +using System.Collections.Generic; +using Elsa.Activities.Email.Activities; +using Elsa.Models; +using Microsoft.Extensions.Localization; + +namespace Elsa.Activities.Email +{ + public class ActivityDescriptors : ActivityDescriptorProviderBase + { + public ActivityDescriptors(IStringLocalizer localizer) + { + T = localizer; + } + + private IStringLocalizer T { get; } + private LocalizedString Category => T["Email"]; + + protected override IEnumerable Describe() + { + yield return ActivityDescriptor.ForAction( + Category, + T["Send Email"], + T["Send an email message via SMTP."], + T["Done"]); + } + } +} \ No newline at end of file diff --git a/src/activities/Elsa.Activities.Email/Drivers/SendEmailDriver.cs b/src/activities/Elsa.Activities.Email/Drivers/SendEmailDriver.cs new file mode 100644 index 000000000..93f7033ea --- /dev/null +++ b/src/activities/Elsa.Activities.Email/Drivers/SendEmailDriver.cs @@ -0,0 +1,42 @@ +using System.Net.Mail; +using System.Threading; +using System.Threading.Tasks; +using Elsa.Activities.Email.Activities; +using Elsa.Handlers; +using Elsa.Models; +using Elsa.Results; + +namespace Elsa.Activities.Email.Drivers +{ + public class SendEmailDriver : ActivityDriver + { + private readonly IWorkflowExpressionEvaluator expressionEvaluator; + private readonly SmtpClient smtpClient; + + public SendEmailDriver(IWorkflowExpressionEvaluator expressionEvaluator, SmtpClient smtpClient) + { + this.expressionEvaluator = expressionEvaluator; + this.smtpClient = smtpClient; + } + + protected override async Task OnExecuteAsync(SendEmail activity, WorkflowExecutionContext workflowContext, CancellationToken cancellationToken) + { + var from = await expressionEvaluator.EvaluateAsync(activity.From, workflowContext, cancellationToken); + var to = await expressionEvaluator.EvaluateAsync(activity.To, workflowContext, cancellationToken); + var subject = await expressionEvaluator.EvaluateAsync(activity.Subject, workflowContext, cancellationToken); + var body = await expressionEvaluator.EvaluateAsync(activity.Body, workflowContext, cancellationToken); + + var mailMessage = new MailMessage + { + From = new MailAddress(@from), + Body = body, + Subject = subject + }; + + mailMessage.To.Add(to); + smtpClient.SendAsync(mailMessage, null); + + return Endpoint("Done"); + } + } +} \ No newline at end of file diff --git a/src/activities/Elsa.Activities.Email/Elsa.Activities.Email.csproj b/src/activities/Elsa.Activities.Email/Elsa.Activities.Email.csproj new file mode 100644 index 000000000..8af5fb098 --- /dev/null +++ b/src/activities/Elsa.Activities.Email/Elsa.Activities.Email.csproj @@ -0,0 +1,19 @@ + + + + netstandard2.0 + 1.0.0 + Sipke Schoorstra + Elsa is a set of workflowing libraries and tools to enable super-fast workflowing capabilities in any .NET Core application. + 2019 + https://github.com/sfmskywalker/Elsa + https://github.com/sfmskywalker/Elsa + GitHub + elsa, workflows, orchard + + + + + + + diff --git a/src/activities/Elsa.Activities.Email/Extensions/ServiceCollectionExtensions.cs b/src/activities/Elsa.Activities.Email/Extensions/ServiceCollectionExtensions.cs new file mode 100644 index 000000000..dae981f1c --- /dev/null +++ b/src/activities/Elsa.Activities.Email/Extensions/ServiceCollectionExtensions.cs @@ -0,0 +1,39 @@ +using System; +using System.Net.Mail; +using Elsa.Activities.Email.Drivers; +using Elsa.Activities.Email.Options; +using Elsa.Extensions; +using Microsoft.Extensions.Configuration; +using Microsoft.Extensions.DependencyInjection; +using Microsoft.Extensions.Options; + +namespace Elsa.Activities.Email.Extensions +{ + public static class ServiceCollectionExtensions + { + public static IServiceCollection AddEmailDescriptors(this IServiceCollection services) + { + return services.AddActivityDescriptors(); + } + + public static IServiceCollection AddEmailDrivers(this IServiceCollection services, IConfiguration configuration) + { + services.AddEmailDescriptors(); + + services + .AddOptions() + .Configure(configuration) + .AddSingleton(CreateSmtpClient) + .AddActivityDriver(); + + return services; + } + + private static SmtpClient CreateSmtpClient(IServiceProvider serviceProvider) + { + var options = serviceProvider.GetRequiredService>().Value; + + return new SmtpClient(options.Host, options.Port); + } + } +} \ No newline at end of file diff --git a/src/activities/Elsa.Activities.Email/Options/SmtpOptions.cs b/src/activities/Elsa.Activities.Email/Options/SmtpOptions.cs new file mode 100644 index 000000000..058834c8c --- /dev/null +++ b/src/activities/Elsa.Activities.Email/Options/SmtpOptions.cs @@ -0,0 +1,8 @@ +namespace Elsa.Activities.Email.Options +{ + public class SmtpOptions + { + public string Host { get; set; } + public int Port { get; set; } + } +} \ No newline at end of file diff --git a/src/samples/SampleDashboard.Web/SampleDashboard.Web.csproj b/src/samples/SampleDashboard.Web/SampleDashboard.Web.csproj index 81f22bade..bad236750 100644 --- a/src/samples/SampleDashboard.Web/SampleDashboard.Web.csproj +++ b/src/samples/SampleDashboard.Web/SampleDashboard.Web.csproj @@ -24,6 +24,7 @@ + diff --git a/src/samples/SampleHost.Web/SampleHost.Web.csproj b/src/samples/SampleHost.Web/SampleHost.Web.csproj index 073b30edc..b79d9697f 100644 --- a/src/samples/SampleHost.Web/SampleHost.Web.csproj +++ b/src/samples/SampleHost.Web/SampleHost.Web.csproj @@ -20,6 +20,7 @@ + diff --git a/src/samples/SampleHost.Web/Startup.cs b/src/samples/SampleHost.Web/Startup.cs index 0965f59b9..3114b10d6 100644 --- a/src/samples/SampleHost.Web/Startup.cs +++ b/src/samples/SampleHost.Web/Startup.cs @@ -1,4 +1,5 @@ using Elsa.Activities.Console.Extensions; +using Elsa.Activities.Email.Extensions; using Elsa.Activities.Http.Extensions; using Elsa.Activities.Primitives.Extensions; using Elsa.Extensions; @@ -29,7 +30,8 @@ namespace SampleHost.Web .AddWorkflowsFileSystemPersistence(Configuration.GetSection("FileStore")) .AddPrimitiveWorkflowDrivers() .AddConsoleWorkflowDrivers() - .AddHttpWorkflowDrivers(); + .AddHttpWorkflowDrivers() + .AddEmailDrivers(Configuration.GetSection("Smtp")); services .AddMvc() diff --git a/src/samples/SampleHost.Web/appsettings.json b/src/samples/SampleHost.Web/appsettings.json index 1c853c66c..7a7b539b1 100644 --- a/src/samples/SampleHost.Web/appsettings.json +++ b/src/samples/SampleHost.Web/appsettings.json @@ -8,5 +8,12 @@ "FileStore": { "RootDirectory": "C:\\Activities\\Projects\\Elsa\\src\\samples\\SampleDashboard.Web\\App_Data\\Sites\\Default\\workflows", "Format": "YAML" + }, + "Smtp": { + "Host": "localhost", + "Port": 2525, + "Credentials": { + "Type": "None" + } } } diff --git a/src/web/modules/Elsa.Web.Activities.Console/Manifest.cs b/src/web/modules/Elsa.Web.Activities.Console/Manifest.cs index 40ae7402b..2c6e542e0 100644 --- a/src/web/modules/Elsa.Web.Activities.Console/Manifest.cs +++ b/src/web/modules/Elsa.Web.Activities.Console/Manifest.cs @@ -2,6 +2,6 @@ [assembly: Module( Name = "Console Activities", - Category = "Workflows", + Category = "Elsa Workflows", Description = "Provides a set of primitive activities." )] diff --git a/src/web/modules/Elsa.Web.Activities.Email/Display/SendEmailDisplay.cs b/src/web/modules/Elsa.Web.Activities.Email/Display/SendEmailDisplay.cs new file mode 100644 index 000000000..89bf60b03 --- /dev/null +++ b/src/web/modules/Elsa.Web.Activities.Email/Display/SendEmailDisplay.cs @@ -0,0 +1,26 @@ +using Elsa.Activities.Email.Activities; +using Elsa.Web.Activities.Email.ViewModels; +using Elsa.Web.Components.ViewModels; +using Elsa.Web.Drivers; + +namespace Elsa.Web.Activities.Email.Display +{ + public class SendEmailDisplay : ActivityDisplayDriver + { + protected override void EditActivity(SendEmail activity, SendEmailViewModel model) + { + model.From = new ExpressionViewModel(activity.From); + model.To = new ExpressionViewModel(activity.To); + model.Subject = new ExpressionViewModel(activity.Subject); + model.Body = new ExpressionViewModel(activity.Body); + } + + protected override void UpdateActivity(SendEmailViewModel model, SendEmail activity) + { + activity.From = model.From.ToWorkflowExpression(); + activity.To = model.To.ToWorkflowExpression(); + activity.Subject = model.Subject.ToWorkflowExpression(); + activity.Body = model.Body.ToWorkflowExpression(); + } + } +} \ No newline at end of file diff --git a/src/web/modules/Elsa.Web.Activities.Email/Elsa.Web.Activities.Email.csproj b/src/web/modules/Elsa.Web.Activities.Email/Elsa.Web.Activities.Email.csproj new file mode 100644 index 000000000..a987f8be7 --- /dev/null +++ b/src/web/modules/Elsa.Web.Activities.Email/Elsa.Web.Activities.Email.csproj @@ -0,0 +1,25 @@ + + + + netstandard2.0 + 1.0.0 + Sipke Schoorstra + Elsa is a set of workflowing libraries and tools to enable super-fast workflowing capabilities in any .NET Core application. + 2019 + https://github.com/sfmskywalker/Elsa + https://github.com/sfmskywalker/Elsa + GitHub + elsa, workflows, orchard + + + + + + + + + + + + + diff --git a/src/web/modules/Elsa.Web.Activities.Email/Manifest.cs b/src/web/modules/Elsa.Web.Activities.Email/Manifest.cs new file mode 100644 index 000000000..06afef544 --- /dev/null +++ b/src/web/modules/Elsa.Web.Activities.Email/Manifest.cs @@ -0,0 +1,7 @@ +using OrchardCore.Modules.Manifest; + +[assembly: Module( + Name = "Email Activities", + Category = "Elsa Workflows", + Description = "Provides a Send Email activity." +)] diff --git a/src/web/modules/Elsa.Web.Activities.Email/Startup.cs b/src/web/modules/Elsa.Web.Activities.Email/Startup.cs new file mode 100644 index 000000000..7a3bd4dc7 --- /dev/null +++ b/src/web/modules/Elsa.Web.Activities.Email/Startup.cs @@ -0,0 +1,18 @@ +using Elsa.Activities.Email.Extensions; +using Elsa.Web.Activities.Email.Display; +using Elsa.Web.Extensions; +using Microsoft.Extensions.DependencyInjection; +using OrchardCore.Modules; + +namespace Elsa.Web.Activities.Email +{ + public class Startup : StartupBase + { + public override void ConfigureServices(IServiceCollection services) + { + services + .AddEmailDescriptors() + .AddActivityDisplay(); + } + } +} \ No newline at end of file diff --git a/src/web/modules/Elsa.Web.Activities.Email/ViewModels/SendEmailViewModel.cs b/src/web/modules/Elsa.Web.Activities.Email/ViewModels/SendEmailViewModel.cs new file mode 100644 index 000000000..e02dd86f0 --- /dev/null +++ b/src/web/modules/Elsa.Web.Activities.Email/ViewModels/SendEmailViewModel.cs @@ -0,0 +1,12 @@ +using Elsa.Web.Components.ViewModels; + +namespace Elsa.Web.Activities.Email.ViewModels +{ + public class SendEmailViewModel + { + public ExpressionViewModel From { get; set; } + public ExpressionViewModel To { get; set; } + public ExpressionViewModel Subject { get; set; } + public ExpressionViewModel Body { get; set; } + } +} \ No newline at end of file diff --git a/src/web/modules/Elsa.Web.Activities.Email/Views/SendEmail.Card.cshtml b/src/web/modules/Elsa.Web.Activities.Email/Views/SendEmail.Card.cshtml new file mode 100644 index 000000000..dd8c5394f --- /dev/null +++ b/src/web/modules/Elsa.Web.Activities.Email/Views/SendEmail.Card.cshtml @@ -0,0 +1,6 @@ +@model ActivityShapeModel +@{ + var activityDescriptor = Model.Activity.Descriptor; +} +

@activityDescriptor.DisplayText

+

@activityDescriptor.Description

\ No newline at end of file diff --git a/src/web/modules/Elsa.Web.Activities.Email/Views/SendEmail.Design.cshtml b/src/web/modules/Elsa.Web.Activities.Email/Views/SendEmail.Design.cshtml new file mode 100644 index 000000000..f18e95a0e --- /dev/null +++ b/src/web/modules/Elsa.Web.Activities.Email/Views/SendEmail.Design.cshtml @@ -0,0 +1,6 @@ +@model ActivityShapeModel + +
+

@Model.DisplayText

+ "@($"{Model.Activity.Subject}")" +
\ No newline at end of file diff --git a/src/web/modules/Elsa.Web.Activities.Email/Views/SendEmail.Edit.cshtml b/src/web/modules/Elsa.Web.Activities.Email/Views/SendEmail.Edit.cshtml new file mode 100644 index 000000000..a5e0994f7 --- /dev/null +++ b/src/web/modules/Elsa.Web.Activities.Email/Views/SendEmail.Edit.cshtml @@ -0,0 +1,25 @@ +@model SendEmailViewModel +
+ + + + @T["The sender's email address."] +
+
+ + + + @T["The recipient's email address."] +
+
+ + + + @T["The subject of the email message."] +
+
+ + + + @T["The message to send."] +
\ No newline at end of file diff --git a/src/web/modules/Elsa.Web.Activities.Email/Views/_ViewImports.cshtml b/src/web/modules/Elsa.Web.Activities.Email/Views/_ViewImports.cshtml new file mode 100644 index 000000000..3845a854b --- /dev/null +++ b/src/web/modules/Elsa.Web.Activities.Email/Views/_ViewImports.cshtml @@ -0,0 +1,7 @@ +@using Elsa.Web.ViewModels +@using Elsa.Activities.Email.Activities +@using Elsa.Web.Activities.Email.ViewModels +@using OrchardCore.Mvc.Core.Utilities +@inherits OrchardCore.DisplayManagement.Razor.RazorPage +@addTagHelper *, Microsoft.AspNetCore.Mvc.TagHelpers +@addTagHelper *, Elsa.Web.Components \ No newline at end of file diff --git a/src/web/modules/Elsa.Web.Activities.Http/Manifest.cs b/src/web/modules/Elsa.Web.Activities.Http/Manifest.cs index abb80681f..090b8bf41 100644 --- a/src/web/modules/Elsa.Web.Activities.Http/Manifest.cs +++ b/src/web/modules/Elsa.Web.Activities.Http/Manifest.cs @@ -2,6 +2,6 @@ [assembly: Module( Name = "HTTP Activities", - Category = "Workflows", + Category = "Elsa Workflows", Description = "Provides a set of HTTP activities." )] diff --git a/src/web/modules/Elsa.Web.Activities.Primitives/Manifest.cs b/src/web/modules/Elsa.Web.Activities.Primitives/Manifest.cs index e1536c120..0e61082b2 100644 --- a/src/web/modules/Elsa.Web.Activities.Primitives/Manifest.cs +++ b/src/web/modules/Elsa.Web.Activities.Primitives/Manifest.cs @@ -2,6 +2,6 @@ [assembly: Module( Name = "Primitive Activities", - Category = "Workflows", + Category = "Elsa Workflows", Description = "Provides a set of primitive activities." )] diff --git a/src/web/modules/Elsa.Web.Components/Manifest.cs b/src/web/modules/Elsa.Web.Components/Manifest.cs index 8c075d870..00aed709e 100644 --- a/src/web/modules/Elsa.Web.Components/Manifest.cs +++ b/src/web/modules/Elsa.Web.Components/Manifest.cs @@ -2,7 +2,7 @@ [assembly: Module( Name = "Workflows View Components", - Category = "Workflows", + Category = "Elsa Workflows", Description = "Provides a set of reusable view components such as the Workflow Editor.", Dependencies = new[] { "OrchardCore.Resources" } )] \ No newline at end of file diff --git a/src/web/modules/Elsa.Web.Management/Manifest.cs b/src/web/modules/Elsa.Web.Management/Manifest.cs index 5afb7f4bf..3d0d7c394 100644 --- a/src/web/modules/Elsa.Web.Management/Manifest.cs +++ b/src/web/modules/Elsa.Web.Management/Manifest.cs @@ -2,7 +2,7 @@ [assembly: Module( Name = "Workflows Management", - Category = "Workflows", + Category = "Elsa Workflows", Description = "Provides admin screens to manage workflows.", Dependencies = new[] { "Elsa.Web.BootstrapTheme.Web.Components" } )] \ No newline at end of file diff --git a/src/web/modules/Elsa.Web.Persistence.FileSystem/Manifest.cs b/src/web/modules/Elsa.Web.Persistence.FileSystem/Manifest.cs index 4301ce08b..8d22e0bc9 100644 --- a/src/web/modules/Elsa.Web.Persistence.FileSystem/Manifest.cs +++ b/src/web/modules/Elsa.Web.Persistence.FileSystem/Manifest.cs @@ -2,6 +2,6 @@ [assembly: Module( Name = "File System Persistence Provider", - Category = "Workflows", + Category = "Elsa Workflows", Description = "Registers a file system based persistence provider." )]