diff --git a/src/web/modules/Elsa.Web.Activities.Console/Views/_ViewImports.cshtml b/src/web/modules/Elsa.Web.Activities.Console/Views/_ViewImports.cshtml
index db890e877..0c6e6d44a 100644
--- a/src/web/modules/Elsa.Web.Activities.Console/Views/_ViewImports.cshtml
+++ b/src/web/modules/Elsa.Web.Activities.Console/Views/_ViewImports.cshtml
@@ -1,2 +1,5 @@
+@using Elsa.Activities.Console.Activities
+@using Elsa.Web.Activities.Console.ViewModels
+@using Elsa.Web.ViewModels
@inherits OrchardCore.DisplayManagement.Razor.RazorPage
@addTagHelper *, Microsoft.AspNetCore.Mvc.TagHelpers
\ No newline at end of file
diff --git a/src/web/modules/Elsa.Web.Activities.Http/Display/HttpResponseActionDisplay.cs b/src/web/modules/Elsa.Web.Activities.Http/Display/HttpResponseActionDisplay.cs
new file mode 100644
index 000000000..2fa033d5e
--- /dev/null
+++ b/src/web/modules/Elsa.Web.Activities.Http/Display/HttpResponseActionDisplay.cs
@@ -0,0 +1,27 @@
+using System.Net;
+using Elsa.Activities.Http.Activities;
+using Elsa.Web.Activities.Http.ViewModels;
+using Elsa.Web.Components.ViewModels;
+using Elsa.Web.Drivers;
+
+namespace Elsa.Web.Activities.Http.Display
+{
+ public class HttpResponseActionDisplay : ActivityDisplayDriver
+ {
+ protected override void EditActivity(HttpResponseAction activity, HttpResponseActionViewModel model)
+ {
+ model.StatusCode = (int)activity.StatusCode;
+ model.Body = new ExpressionViewModel(activity.Body);
+ model.ResponseHeaders = new ExpressionViewModel(activity.ResponseHeaders);
+ model.ContentType = new ExpressionViewModel(activity.ContentType);
+ }
+
+ protected override void UpdateActivity(HttpResponseActionViewModel model, HttpResponseAction activity)
+ {
+ activity.StatusCode = (HttpStatusCode)model.StatusCode;
+ activity.Body = model.Body.ToWorkflowExpression();
+ activity.ResponseHeaders = model.ResponseHeaders.ToWorkflowExpression();
+ activity.ContentType = model.ContentType.ToWorkflowExpression();
+ }
+ }
+}
\ No newline at end of file
diff --git a/src/web/modules/Elsa.Web.Activities.Http/Startup.cs b/src/web/modules/Elsa.Web.Activities.Http/Startup.cs
index e7966d38f..d69046956 100644
--- a/src/web/modules/Elsa.Web.Activities.Http/Startup.cs
+++ b/src/web/modules/Elsa.Web.Activities.Http/Startup.cs
@@ -13,7 +13,8 @@ namespace Elsa.Web.Activities.Http
services
.AddHttpWorkflowDescriptors()
.AddActivityDisplay()
- .AddActivityDisplay();
+ .AddActivityDisplay()
+ .AddActivityDisplay();
}
}
}
\ No newline at end of file
diff --git a/src/web/modules/Elsa.Web.Activities.Http/ViewModels/HttpResponseActionViewModel.cs b/src/web/modules/Elsa.Web.Activities.Http/ViewModels/HttpResponseActionViewModel.cs
new file mode 100644
index 000000000..c30c3aeda
--- /dev/null
+++ b/src/web/modules/Elsa.Web.Activities.Http/ViewModels/HttpResponseActionViewModel.cs
@@ -0,0 +1,19 @@
+using Elsa.Expressions;
+using Elsa.Web.Components.ViewModels;
+
+namespace Elsa.Web.Activities.Http.ViewModels
+{
+ public class HttpResponseActionViewModel
+ {
+ public HttpResponseActionViewModel()
+ {
+ StatusCode = 200;
+ ContentType = new ExpressionViewModel("application/json", PlainTextEvaluator.SyntaxName);
+ }
+
+ public int StatusCode { get; set; }
+ public ExpressionViewModel Body { get; set; }
+ public ExpressionViewModel ContentType { get; set; }
+ public ExpressionViewModel ResponseHeaders { get; set; }
+ }
+}
\ No newline at end of file
diff --git a/src/web/modules/Elsa.Web.Activities.Http/Views/HttpResponseAction.Card.cshtml b/src/web/modules/Elsa.Web.Activities.Http/Views/HttpResponseAction.Card.cshtml
new file mode 100644
index 000000000..0cf12bd0a
--- /dev/null
+++ b/src/web/modules/Elsa.Web.Activities.Http/Views/HttpResponseAction.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.Http/Views/HttpResponseAction.Design.cshtml b/src/web/modules/Elsa.Web.Activities.Http/Views/HttpResponseAction.Design.cshtml
new file mode 100644
index 000000000..3b7e026c8
--- /dev/null
+++ b/src/web/modules/Elsa.Web.Activities.Http/Views/HttpResponseAction.Design.cshtml
@@ -0,0 +1,5 @@
+@model ActivityShapeModel
+
+
+
@Model.DisplayText
+
\ No newline at end of file
diff --git a/src/web/modules/Elsa.Web.Activities.Http/Views/HttpResponseAction.Edit.cshtml b/src/web/modules/Elsa.Web.Activities.Http/Views/HttpResponseAction.Edit.cshtml
new file mode 100644
index 000000000..f64a386f7
--- /dev/null
+++ b/src/web/modules/Elsa.Web.Activities.Http/Views/HttpResponseAction.Edit.cshtml
@@ -0,0 +1,25 @@
+@model HttpResponseActionViewModel
+
+
+
+
+ @T["The HTTP status code to return."]
+
+
+
+
+
+ @T["The HTTP request body to send along with the response."]
+
+
+
+
+
+ @T["The Content-Type header value to return."]
+
+
+
+
+
+ @T["Any additional header to return, one per line. For example: my-header-one=foo\r\nmy-header-two=bar"]
+
\ No newline at end of file
diff --git a/src/web/modules/Elsa.Web.Components/ViewModels/ExpressionViewModel.cs b/src/web/modules/Elsa.Web.Components/ViewModels/ExpressionViewModel.cs
index 25cb75366..d02b4b717 100644
--- a/src/web/modules/Elsa.Web.Components/ViewModels/ExpressionViewModel.cs
+++ b/src/web/modules/Elsa.Web.Components/ViewModels/ExpressionViewModel.cs
@@ -7,11 +7,16 @@ namespace Elsa.Web.Components.ViewModels
public ExpressionViewModel()
{
}
-
- public ExpressionViewModel(WorkflowExpression workflowExpression)
+
+ public ExpressionViewModel(string expression, string syntax)
+ {
+ Expression = expression;
+ Syntax = syntax;
+ }
+
+ public ExpressionViewModel(WorkflowExpression workflowExpression)
+ : this(workflowExpression?.Expression, workflowExpression?.Syntax)
{
- Expression = workflowExpression?.Expression;
- Syntax = workflowExpression?.Syntax;
}
public string Expression { get; set; }