(context)
+ };
}
}
\ No newline at end of file
diff --git a/src/dashboards/blazor/ElsaDashboard.Application/Activities/Console/WriteLineActivity.razor b/src/dashboards/blazor/ElsaDashboard.Application/Activities/Console/WriteLineActivity.razor
new file mode 100644
index 000000000..8985d37dd
--- /dev/null
+++ b/src/dashboards/blazor/ElsaDashboard.Application/Activities/Console/WriteLineActivity.razor
@@ -0,0 +1,3 @@
+@inherits ActivityDisplayComponent
+
+Output "@(DisplayContext.Properties.Get("Text"))"
\ No newline at end of file
diff --git a/src/dashboards/blazor/ElsaDashboard.Application/Activities/Timers/CronActivity.razor b/src/dashboards/blazor/ElsaDashboard.Application/Activities/Timers/CronActivity.razor
new file mode 100644
index 000000000..45d3eb396
--- /dev/null
+++ b/src/dashboards/blazor/ElsaDashboard.Application/Activities/Timers/CronActivity.razor
@@ -0,0 +1,3 @@
+@inherits ActivityDisplayComponent
+
+Every @(DisplayContext.Properties.Get("CronExpression"))
\ No newline at end of file
diff --git a/src/dashboards/blazor/ElsaDashboard.Application/Activities/Timers/StartAtActivity.razor b/src/dashboards/blazor/ElsaDashboard.Application/Activities/Timers/StartAtActivity.razor
new file mode 100644
index 000000000..fba78b3be
--- /dev/null
+++ b/src/dashboards/blazor/ElsaDashboard.Application/Activities/Timers/StartAtActivity.razor
@@ -0,0 +1,4 @@
+@using NodaTime
+@inherits ActivityDisplayComponent
+
+Start At @(DisplayContext.Properties.Get("Instant"))
\ No newline at end of file
diff --git a/src/dashboards/blazor/ElsaDashboard.Application/Activities/TimerActivity.razor b/src/dashboards/blazor/ElsaDashboard.Application/Activities/Timers/TimerActivity.razor
similarity index 100%
rename from src/dashboards/blazor/ElsaDashboard.Application/Activities/TimerActivity.razor
rename to src/dashboards/blazor/ElsaDashboard.Application/Activities/Timers/TimerActivity.razor
diff --git a/src/dashboards/blazor/ElsaDashboard.Application/Display/ConsoleDisplayProvider.cs b/src/dashboards/blazor/ElsaDashboard.Application/Display/ConsoleDisplayProvider.cs
new file mode 100644
index 000000000..8e8d7c56f
--- /dev/null
+++ b/src/dashboards/blazor/ElsaDashboard.Application/Display/ConsoleDisplayProvider.cs
@@ -0,0 +1,15 @@
+using System.Collections.Generic;
+using ElsaDashboard.Application.Activities.Console;
+using ElsaDashboard.Models;
+using ElsaDashboard.Services;
+
+namespace ElsaDashboard.Application.Display
+{
+ public class ConsoleDisplayProvider : ActivityDisplayProvider
+ {
+ protected override IEnumerable GetDescriptors()
+ {
+ yield return ActivityDisplayDescriptor.For("WriteLine");
+ }
+ }
+}
\ No newline at end of file
diff --git a/src/dashboards/blazor/ElsaDashboard.Application/Display/TimerDisplayProvider.cs b/src/dashboards/blazor/ElsaDashboard.Application/Display/TimersDisplayProvider.cs
similarity index 52%
rename from src/dashboards/blazor/ElsaDashboard.Application/Display/TimerDisplayProvider.cs
rename to src/dashboards/blazor/ElsaDashboard.Application/Display/TimersDisplayProvider.cs
index 39931a00f..b0e0de157 100644
--- a/src/dashboards/blazor/ElsaDashboard.Application/Display/TimerDisplayProvider.cs
+++ b/src/dashboards/blazor/ElsaDashboard.Application/Display/TimersDisplayProvider.cs
@@ -1,20 +1,18 @@
using System.Collections.Generic;
using ElsaDashboard.Application.Activities;
+using ElsaDashboard.Application.Activities.Timers;
using ElsaDashboard.Extensions;
using ElsaDashboard.Models;
using ElsaDashboard.Services;
namespace ElsaDashboard.Application.Display
{
- public class TimerDisplayProvider : ActivityDisplayProvider
+ public class TimersDisplayProvider : ActivityDisplayProvider
{
protected override IEnumerable GetDescriptors()
{
- yield return new ActivityDisplayDescriptor
- {
- ActivityType = "Timer",
- RenderBody = context => builder => builder.AddActivityDisplayComponent(context)
- };
+ yield return ActivityDisplayDescriptor.For("Timer");
+ yield return ActivityDisplayDescriptor.For("Cron");
}
}
}
\ No newline at end of file
diff --git a/src/dashboards/blazor/ElsaDashboard.Application/Extensions/ServiceCollectionExtensions.cs b/src/dashboards/blazor/ElsaDashboard.Application/Extensions/ServiceCollectionExtensions.cs
index 54a6f9b94..820a2b9c0 100644
--- a/src/dashboards/blazor/ElsaDashboard.Application/Extensions/ServiceCollectionExtensions.cs
+++ b/src/dashboards/blazor/ElsaDashboard.Application/Extensions/ServiceCollectionExtensions.cs
@@ -1,4 +1,6 @@
using Blazored.Modal;
+using ElsaDashboard.Application.Activities;
+using ElsaDashboard.Application.Activities.Console;
using ElsaDashboard.Application.Display;
using ElsaDashboard.Application.Services;
using ElsaDashboard.Extensions;
@@ -16,7 +18,8 @@ namespace Microsoft.Extensions.DependencyInjection
.AddScoped()
.AddScoped()
.AddSingleton()
- .AddActivityDisplayProvider();
+ .AddActivityDisplayProvider()
+ .AddActivityDisplayProvider();
}
}
}
\ No newline at end of file
diff --git a/src/dashboards/blazor/ElsaDashboard.Application/Pages/WorkflowRegistry/Viewer.razor.cs b/src/dashboards/blazor/ElsaDashboard.Application/Pages/WorkflowRegistry/Viewer.razor.cs
index 65f2d7dcd..9661dd022 100644
--- a/src/dashboards/blazor/ElsaDashboard.Application/Pages/WorkflowRegistry/Viewer.razor.cs
+++ b/src/dashboards/blazor/ElsaDashboard.Application/Pages/WorkflowRegistry/Viewer.razor.cs
@@ -57,10 +57,10 @@ namespace ElsaDashboard.Application.Pages.WorkflowRegistry
{
Name = activityBlueprint.Name,
Type = activityBlueprint.Type,
- DisplayName = descriptor.DisplayName,
+ DisplayName = activityBlueprint.DisplayName ?? descriptor.DisplayName,
Outcomes = descriptor.Outcomes,
ActivityId = activityBlueprint.Id,
- Description = descriptor.Description,
+ Description = activityBlueprint.Description ?? descriptor.Description,
Properties = activityBlueprint.Properties,
DisplayDescriptor = displayDescriptor
};
diff --git a/src/dashboards/blazor/ElsaDashboard.Backend/Rpc/WorkflowRegistryService.cs b/src/dashboards/blazor/ElsaDashboard.Backend/Rpc/WorkflowRegistryService.cs
index 860522cdb..41af5a428 100644
--- a/src/dashboards/blazor/ElsaDashboard.Backend/Rpc/WorkflowRegistryService.cs
+++ b/src/dashboards/blazor/ElsaDashboard.Backend/Rpc/WorkflowRegistryService.cs
@@ -14,6 +14,10 @@ namespace ElsaDashboard.Backend.Rpc
public Task> ListAsync(ListWorkflowBlueprintsRequest request, CallContext context = default) =>
_elsaClient.WorkflowRegistry.ListAsync(request.Page, request.PageSize, request.VersionOptions, context.CancellationToken);
- public Task GetById(GetWorkflowBlueprintByIdRequest request, CallContext context = default) => _elsaClient.WorkflowRegistry.GetByIdAsync(request.Id, request.VersionOptions, context.CancellationToken);
+ public async Task GetById(GetWorkflowBlueprintByIdRequest request, CallContext context = default)
+ {
+ var result = await _elsaClient.WorkflowRegistry.GetByIdAsync(request.Id, request.VersionOptions, context.CancellationToken);
+ return result;
+ }
}
}
\ No newline at end of file
diff --git a/src/server/Elsa.Server.Api/Endpoints/WorkflowRegistry/Models.cs b/src/server/Elsa.Server.Api/Endpoints/WorkflowRegistry/Models.cs
index 5dc5e0b76..a0015835f 100644
--- a/src/server/Elsa.Server.Api/Endpoints/WorkflowRegistry/Models.cs
+++ b/src/server/Elsa.Server.Api/Endpoints/WorkflowRegistry/Models.cs
@@ -37,13 +37,15 @@ namespace Elsa.Server.Api.Endpoints.WorkflowRegistry
{
public string Id { get; set; } = default!;
public string? Name { get; set; }
+ public string? DisplayName { get; set; }
+ public string? Description { get; set; }
public string Type { get; set; } = default!;
public bool PersistWorkflow { get; set; }
public bool LoadWorkflowContext { get; set; }
public bool SaveWorkflowContext { get; set; }
public Variables Properties { get; set; } = new();
}
-
+
public class WorkflowBlueprintSummaryModel
{
public string Id { get; set; } = default!;
diff --git a/src/server/Elsa.Server.Api/Mapping/ActivityBlueprintConverter.cs b/src/server/Elsa.Server.Api/Mapping/ActivityBlueprintConverter.cs
index 78ab467e7..63a759080 100644
--- a/src/server/Elsa.Server.Api/Mapping/ActivityBlueprintConverter.cs
+++ b/src/server/Elsa.Server.Api/Mapping/ActivityBlueprintConverter.cs
@@ -16,6 +16,8 @@ namespace Elsa.Server.Api.Mapping
{
Id = source.Id,
Name = source.Name,
+ DisplayName = source.DisplayName,
+ Description = source.Description,
Type = source.Type,
PersistWorkflow = source.PersistWorkflow,
LoadWorkflowContext = source.LoadWorkflowContext,
diff --git a/src/server/Elsa.Server.Host/Startup.cs b/src/server/Elsa.Server.Host/Startup.cs
index cf2c4df2b..674d8775f 100644
--- a/src/server/Elsa.Server.Host/Startup.cs
+++ b/src/server/Elsa.Server.Host/Startup.cs
@@ -32,11 +32,7 @@ namespace Elsa.Server.Host
.AddHttpActivities(elsaSection.GetSection("Http").Bind)
.AddEmailActivities(elsaSection.GetSection("Smtp").Bind)
.AddQuartzTimerActivities()
- .AddWorkflow()
- .AddWorkflow()
- .AddWorkflow()
- .AddWorkflow()
- .AddWorkflow()
+ .AddWorkflowsFrom()
);
services
diff --git a/src/server/Elsa.Server.Host/Workflows/ConditionWorkflow.cs b/src/server/Elsa.Server.Host/Workflows/ConditionWorkflow.cs
index 25a3db66b..561a421e9 100644
--- a/src/server/Elsa.Server.Host/Workflows/ConditionWorkflow.cs
+++ b/src/server/Elsa.Server.Host/Workflows/ConditionWorkflow.cs
@@ -14,15 +14,14 @@ namespace Elsa.Server.Host.Workflows
{
workflow
.WithDisplayName("Conditions")
- .Then(() => Console.WriteLine("What is your age?"))
+ .Then(() => Console.WriteLine("What is your age?")).WithDisplayName("Write").WithDescription("What is your age?")
.ReadLine()
.Timer(Duration.FromMinutes(5))
.SetVariable("Age", context => int.Parse(context.GetInput()))
- .IfElse(context => context.GetVariable("Age") < 18, ifElse =>
- {
- ifElse.When(OutcomeNames.True).WriteLine("You are not allowed to drink beer.");
- ifElse.When(OutcomeNames.False).WriteLine("Enjoy your beer!");
- });
+ .IfElse(
+ context => context.GetVariable("Age") < 18,
+ whenTrue => whenTrue.WriteLine("You are not allowed to drink beer."),
+ whenFalse => whenFalse.WriteLine("Enjoy your beer!"));
}
}
}
\ No newline at end of file