From 36061c6802665d95e351f3213f0358dbcbda43aa Mon Sep 17 00:00:00 2001 From: Sipke Schoorstra Date: Fri, 28 May 2021 20:54:23 +0200 Subject: [PATCH] Update WriteHttpResponse to include configurable charset Fixes #450 --- .../WriteHttpResponse/WriteHttpResponse.cs | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/src/activities/Elsa.Activities.Http/Activities/WriteHttpResponse/WriteHttpResponse.cs b/src/activities/Elsa.Activities.Http/Activities/WriteHttpResponse/WriteHttpResponse.cs index 9a307e271..3a0dbab9d 100644 --- a/src/activities/Elsa.Activities.Http/Activities/WriteHttpResponse/WriteHttpResponse.cs +++ b/src/activities/Elsa.Activities.Http/Activities/WriteHttpResponse/WriteHttpResponse.cs @@ -60,11 +60,22 @@ namespace Elsa.Activities.Http SupportedSyntaxes = new[] { SyntaxNames.Literal, SyntaxNames.JavaScript, SyntaxNames.Liquid } )] public string? ContentType { get; set; } = "text/plain"; + + /// + /// The character set to use when writing the response. + /// + [ActivityProperty( + Hint = "The character set to use when writing the response.", + UIHint = ActivityPropertyUIHints.Dropdown, + Options = new[] { "utf-8", "ASCII", "ANSI", "ISO-8859-1" }, + DefaultValue = "utf-8", + SupportedSyntaxes = new[] { SyntaxNames.Literal, SyntaxNames.JavaScript, SyntaxNames.Liquid })] + public string CharSet { get; set; } /// /// The headers to send along with the response. /// - [ActivityProperty(Hint = "Additional headers to write.", UIHint = ActivityPropertyUIHints.Json)] + [ActivityProperty(Hint = "Additional headers to write.", UIHint = ActivityPropertyUIHints.Json, SupportedSyntaxes = new[]{ SyntaxNames.JavaScript, SyntaxNames.Liquid, SyntaxNames.Json })] public HttpResponseHeaders? ResponseHeaders { get; set; } protected override async ValueTask OnExecuteAsync(ActivityExecutionContext context) @@ -76,7 +87,7 @@ namespace Elsa.Activities.Http return Fault(T["Response has already started"]!); response.StatusCode = (int) StatusCode; - response.ContentType = ContentType; + response.ContentType = $"{ContentType};charset={CharSet}"; var headers = ResponseHeaders;