diff --git a/src/activities/Elsa.Activities.Http/ActivityDescriptors.cs b/src/activities/Elsa.Activities.Http/ActivityDescriptors.cs index da1547108..562a5fb3f 100644 --- a/src/activities/Elsa.Activities.Http/ActivityDescriptors.cs +++ b/src/activities/Elsa.Activities.Http/ActivityDescriptors.cs @@ -29,7 +29,7 @@ namespace Elsa.Activities.Http Category, T["HTTP Request"], T["Execute a HTTP request."], - true, + false, true, a => a.SupportedStatusCodes.Select(x => T[x.ToString()])); diff --git a/src/activities/Elsa.Activities.Http/Drivers/HttpRequestTriggerAction.cs b/src/activities/Elsa.Activities.Http/Drivers/HttpRequestActionDriver.cs similarity index 100% rename from src/activities/Elsa.Activities.Http/Drivers/HttpRequestTriggerAction.cs rename to src/activities/Elsa.Activities.Http/Drivers/HttpRequestActionDriver.cs diff --git a/src/activities/Elsa.Activities.Primitives/Activities/Fork.cs b/src/activities/Elsa.Activities.Primitives/Activities/Fork.cs new file mode 100644 index 000000000..6073b3705 --- /dev/null +++ b/src/activities/Elsa.Activities.Primitives/Activities/Fork.cs @@ -0,0 +1,10 @@ +using System.Collections.Generic; +using Elsa.Models; + +namespace Elsa.Activities.Primitives.Activities +{ + public class Fork : Activity + { + public IList Forks { get; set; } = new List(); + } +} \ No newline at end of file diff --git a/src/activities/Elsa.Activities.Primitives/ActivityDescriptors.cs b/src/activities/Elsa.Activities.Primitives/ActivityDescriptors.cs index eca55d3b7..a1a4c7ee0 100644 --- a/src/activities/Elsa.Activities.Primitives/ActivityDescriptors.cs +++ b/src/activities/Elsa.Activities.Primitives/ActivityDescriptors.cs @@ -1,4 +1,5 @@ using System.Collections.Generic; +using System.Linq; using Elsa.Activities.Primitives.Activities; using Elsa.Models; using Microsoft.Extensions.Localization; @@ -24,6 +25,14 @@ namespace Elsa.Activities.Primitives T["Iterate over a list of items."], T["Next"], T["Done"]); + yield return ActivityDescriptor.For( + ControlFlowCategory, + T["Fork"], + T["Fork workflow execution into separate paths of execution."], + false, + true, + a => a.Forks.Select(x => T[x])); + yield return ActivityDescriptor.ForAction( ControlFlowCategory, T["If/Else"], diff --git a/src/activities/Elsa.Activities.Primitives/Drivers/ForkDriver.cs b/src/activities/Elsa.Activities.Primitives/Drivers/ForkDriver.cs new file mode 100644 index 000000000..f5f58b279 --- /dev/null +++ b/src/activities/Elsa.Activities.Primitives/Drivers/ForkDriver.cs @@ -0,0 +1,15 @@ +using Elsa.Activities.Primitives.Activities; +using Elsa.Handlers; +using Elsa.Models; +using Elsa.Results; + +namespace Elsa.Activities.Primitives.Drivers +{ + public class ForkDriver : ActivityDriver + { + protected override ActivityExecutionResult OnExecute(Fork activity, WorkflowExecutionContext workflowContext) + { + return TriggerEndpoints(activity.Forks); + } + } +} \ No newline at end of file diff --git a/src/activities/Elsa.Activities.Primitives/Extensions/ServiceCollectionExtensions.cs b/src/activities/Elsa.Activities.Primitives/Extensions/ServiceCollectionExtensions.cs index 2bc466d32..27c1be587 100644 --- a/src/activities/Elsa.Activities.Primitives/Extensions/ServiceCollectionExtensions.cs +++ b/src/activities/Elsa.Activities.Primitives/Extensions/ServiceCollectionExtensions.cs @@ -17,6 +17,7 @@ namespace Elsa.Activities.Primitives.Extensions .AddPrimitiveWorkflowDescriptors() .AddActivityDriver() .AddActivityDriver() + .AddActivityDriver() .AddActivityDriver(); } } diff --git a/src/samples/SampleDashboard.Web/SampleDashboard.Web.csproj b/src/samples/SampleDashboard.Web/SampleDashboard.Web.csproj index 5d39ef1d6..81f22bade 100644 --- a/src/samples/SampleDashboard.Web/SampleDashboard.Web.csproj +++ b/src/samples/SampleDashboard.Web/SampleDashboard.Web.csproj @@ -12,9 +12,10 @@ - - - + + + + diff --git a/src/samples/SampleDashboard.Web/Startup.cs b/src/samples/SampleDashboard.Web/Startup.cs index cb56a00b9..0c8ca159d 100644 --- a/src/samples/SampleDashboard.Web/Startup.cs +++ b/src/samples/SampleDashboard.Web/Startup.cs @@ -9,9 +9,12 @@ namespace SampleDashboard.Web { public void ConfigureServices(IServiceCollection services) { - services - .AddRouting(options => options.LowercaseUrls = true) - .AddOrchardCoreTheming(); + services.AddOrchardCms(); + +// TODO: Temporarily disabled until I figured out why it's broken. +// services +// .AddRouting(options => options.LowercaseUrls = true) +// .AddOrchardCoreTheming(); } public void Configure(IApplicationBuilder app, IHostingEnvironment env) diff --git a/src/web/modules/Elsa.Web.Abstractions/Elsa.Web.Abstractions.csproj b/src/web/modules/Elsa.Web.Abstractions/Elsa.Web.Abstractions.csproj index 93566b98a..76f12c8ba 100644 --- a/src/web/modules/Elsa.Web.Abstractions/Elsa.Web.Abstractions.csproj +++ b/src/web/modules/Elsa.Web.Abstractions/Elsa.Web.Abstractions.csproj @@ -14,7 +14,7 @@ - + diff --git a/src/web/modules/Elsa.Web.Activities.Console/Elsa.Web.Activities.Console.csproj b/src/web/modules/Elsa.Web.Activities.Console/Elsa.Web.Activities.Console.csproj index 5f45e021e..e00316db1 100644 --- a/src/web/modules/Elsa.Web.Activities.Console/Elsa.Web.Activities.Console.csproj +++ b/src/web/modules/Elsa.Web.Activities.Console/Elsa.Web.Activities.Console.csproj @@ -18,7 +18,7 @@ - + diff --git a/src/web/modules/Elsa.Web.Activities.Http/Elsa.Web.Activities.Http.csproj b/src/web/modules/Elsa.Web.Activities.Http/Elsa.Web.Activities.Http.csproj index b25ab3cac..8da671cd2 100644 --- a/src/web/modules/Elsa.Web.Activities.Http/Elsa.Web.Activities.Http.csproj +++ b/src/web/modules/Elsa.Web.Activities.Http/Elsa.Web.Activities.Http.csproj @@ -19,11 +19,7 @@ - - - - - + diff --git a/src/web/modules/Elsa.Web.Activities.Primitives/Drivers/ForkDisplay.cs b/src/web/modules/Elsa.Web.Activities.Primitives/Drivers/ForkDisplay.cs new file mode 100644 index 000000000..a66d954bf --- /dev/null +++ b/src/web/modules/Elsa.Web.Activities.Primitives/Drivers/ForkDisplay.cs @@ -0,0 +1,30 @@ +using System; +using System.Collections; +using System.Collections.Generic; +using System.Linq; +using Elsa.Activities.Primitives.Activities; +using Elsa.Web.Activities.Primitives.ViewModels; +using Elsa.Web.Drivers; +using Enumerable = System.Linq.Enumerable; + +namespace Elsa.Web.Activities.Primitives.Drivers +{ + public class ForkDisplay : ActivityDisplayDriver + { + protected override void EditActivity(Fork activity, ForkViewModel model) + { + model.Forks = string.Join(", ", activity.Forks ?? Enumerable.Empty()); + } + + protected override void UpdateActivity(ForkViewModel model, Fork activity) + { + activity.Forks = !string.IsNullOrWhiteSpace(model.Forks) + ? (IList) model.Forks + .Split(new[] { "," }, StringSplitOptions.None) + .Select(x => x.Trim()) + .Where(x => !string.IsNullOrWhiteSpace(x)) + .ToList() + : new string[0]; + } + } +} \ No newline at end of file diff --git a/src/web/modules/Elsa.Web.Activities.Primitives/Elsa.Web.Activities.Primitives.csproj b/src/web/modules/Elsa.Web.Activities.Primitives/Elsa.Web.Activities.Primitives.csproj index f8e74f95f..4b7ec8bbd 100644 --- a/src/web/modules/Elsa.Web.Activities.Primitives/Elsa.Web.Activities.Primitives.csproj +++ b/src/web/modules/Elsa.Web.Activities.Primitives/Elsa.Web.Activities.Primitives.csproj @@ -13,7 +13,7 @@ - + @@ -25,4 +25,8 @@ + + + + diff --git a/src/web/modules/Elsa.Web.Activities.Primitives/Startup.cs b/src/web/modules/Elsa.Web.Activities.Primitives/Startup.cs index 47f30acee..cbdb981b5 100644 --- a/src/web/modules/Elsa.Web.Activities.Primitives/Startup.cs +++ b/src/web/modules/Elsa.Web.Activities.Primitives/Startup.cs @@ -14,6 +14,7 @@ namespace Elsa.Web.Activities.Primitives .AddPrimitiveWorkflowDescriptors() .AddActivityDisplay() .AddActivityDisplay() + .AddActivityDisplay() .AddActivityDisplay() .AddActivityDisplay(); } diff --git a/src/web/modules/Elsa.Web.Activities.Primitives/ViewModels/ForkViewModel.cs b/src/web/modules/Elsa.Web.Activities.Primitives/ViewModels/ForkViewModel.cs new file mode 100644 index 000000000..517ec9e5f --- /dev/null +++ b/src/web/modules/Elsa.Web.Activities.Primitives/ViewModels/ForkViewModel.cs @@ -0,0 +1,10 @@ +using System.ComponentModel.DataAnnotations; + +namespace Elsa.Web.Activities.Primitives.ViewModels +{ + public class ForkViewModel + { + [Required] + public string Forks { get; set; } + } +} \ No newline at end of file diff --git a/src/web/modules/Elsa.Web.Activities.Primitives/Views/Fork.Card.cshtml b/src/web/modules/Elsa.Web.Activities.Primitives/Views/Fork.Card.cshtml new file mode 100644 index 000000000..212ee12d5 --- /dev/null +++ b/src/web/modules/Elsa.Web.Activities.Primitives/Views/Fork.Card.cshtml @@ -0,0 +1,6 @@ +@model Elsa.Web.ViewModels.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.Primitives/Views/Fork.Design.cshtml b/src/web/modules/Elsa.Web.Activities.Primitives/Views/Fork.Design.cshtml new file mode 100644 index 000000000..32b331f4d --- /dev/null +++ b/src/web/modules/Elsa.Web.Activities.Primitives/Views/Fork.Design.cshtml @@ -0,0 +1,5 @@ +@model Elsa.Web.ViewModels.ActivityShapeModel + +
+

@Model.DisplayText

+
\ No newline at end of file diff --git a/src/web/modules/Elsa.Web.Activities.Primitives/Views/Fork.Edit.cshtml b/src/web/modules/Elsa.Web.Activities.Primitives/Views/Fork.Edit.cshtml new file mode 100644 index 000000000..9bd08221e --- /dev/null +++ b/src/web/modules/Elsa.Web.Activities.Primitives/Views/Fork.Edit.cshtml @@ -0,0 +1,7 @@ +@model Elsa.Web.Activities.Primitives.ViewModels.ForkViewModel +
+ + + + @T["A comma-separated list for fork names."] +
\ No newline at end of file diff --git a/src/web/modules/Elsa.Web.Components/Elsa.Web.Components.csproj b/src/web/modules/Elsa.Web.Components/Elsa.Web.Components.csproj index 11bb95820..b7beef37f 100644 --- a/src/web/modules/Elsa.Web.Components/Elsa.Web.Components.csproj +++ b/src/web/modules/Elsa.Web.Components/Elsa.Web.Components.csproj @@ -14,9 +14,9 @@ - - - + + + diff --git a/src/web/modules/Elsa.Web.Management/Elsa.Web.Management.csproj b/src/web/modules/Elsa.Web.Management/Elsa.Web.Management.csproj index 7fcc80688..e46cde053 100644 --- a/src/web/modules/Elsa.Web.Management/Elsa.Web.Management.csproj +++ b/src/web/modules/Elsa.Web.Management/Elsa.Web.Management.csproj @@ -13,14 +13,14 @@ - - - - - - - - + + + + + + + + diff --git a/src/web/modules/Elsa.Web.Management/Theming/SettingsThemeSelector.cs b/src/web/modules/Elsa.Web.Management/Theming/SettingsThemeSelector.cs index bebe65268..771fc9dff 100644 --- a/src/web/modules/Elsa.Web.Management/Theming/SettingsThemeSelector.cs +++ b/src/web/modules/Elsa.Web.Management/Theming/SettingsThemeSelector.cs @@ -15,7 +15,7 @@ namespace Elsa.Web.Management.Theming public Task GetThemeAsync() { - var currentThemeName = shellSettings.Configuration["CurrentTheme"]; + var currentThemeName = shellSettings["CurrentTheme"]; var result = new ThemeSelectorResult { diff --git a/src/web/modules/Elsa.Web.Persistence.FileSystem/Elsa.Web.Persistence.FileSystem.csproj b/src/web/modules/Elsa.Web.Persistence.FileSystem/Elsa.Web.Persistence.FileSystem.csproj index 5051e3b31..41280b294 100644 --- a/src/web/modules/Elsa.Web.Persistence.FileSystem/Elsa.Web.Persistence.FileSystem.csproj +++ b/src/web/modules/Elsa.Web.Persistence.FileSystem/Elsa.Web.Persistence.FileSystem.csproj @@ -13,8 +13,8 @@ - - + + diff --git a/src/web/themes/Elsa.Web.BootstrapTheme/Elsa.Web.BootstrapTheme.csproj b/src/web/themes/Elsa.Web.BootstrapTheme/Elsa.Web.BootstrapTheme.csproj index ab09f32f5..cf272c7d8 100644 --- a/src/web/themes/Elsa.Web.BootstrapTheme/Elsa.Web.BootstrapTheme.csproj +++ b/src/web/themes/Elsa.Web.BootstrapTheme/Elsa.Web.BootstrapTheme.csproj @@ -13,9 +13,9 @@ - - - + + +