diff --git a/src/activities/Elsa.Activities.Http/Activities/SendHttpRequest/SendHttpRequest.cs b/src/activities/Elsa.Activities.Http/Activities/SendHttpRequest/SendHttpRequest.cs index 24224f7f6..4be13384a 100644 --- a/src/activities/Elsa.Activities.Http/Activities/SendHttpRequest/SendHttpRequest.cs +++ b/src/activities/Elsa.Activities.Http/Activities/SendHttpRequest/SendHttpRequest.cs @@ -144,7 +144,7 @@ namespace Elsa.Activities.Http if (hasContent && ReadContent) { var formatter = SelectContentParser(ResponseContentParserName, contentType); - ResponseContent = await formatter.ReadAsync(this, response, cancellationToken); + ResponseContent = await formatter.ReadAsync(response, this, cancellationToken); } var statusCode = (int)response.StatusCode; diff --git a/src/activities/Elsa.Activities.Http/Parsers/Response/ExpandoObjectHttpResponseContentReader.cs b/src/activities/Elsa.Activities.Http/Parsers/Response/ExpandoObjectHttpResponseContentReader.cs index 301e424ae..24854b358 100644 --- a/src/activities/Elsa.Activities.Http/Parsers/Response/ExpandoObjectHttpResponseContentReader.cs +++ b/src/activities/Elsa.Activities.Http/Parsers/Response/ExpandoObjectHttpResponseContentReader.cs @@ -14,7 +14,7 @@ namespace Elsa.Activities.Http.Parsers.Response public int Priority => 0; public bool GetSupportsContentType(string contentType) => contentType.Contains("/json", StringComparison.OrdinalIgnoreCase); - public async Task ReadAsync(SendHttpRequest activity, HttpResponseMessage response, CancellationToken cancellationToken) + public async Task ReadAsync(HttpResponseMessage response, object context, CancellationToken cancellationToken) { var json = (await response.Content.ReadAsStringAsync()).Trim(); diff --git a/src/activities/Elsa.Activities.Http/Parsers/Response/FileHttpResponseContentReader.cs b/src/activities/Elsa.Activities.Http/Parsers/Response/FileHttpResponseContentReader.cs index 4e9d5182d..ceca3aacf 100644 --- a/src/activities/Elsa.Activities.Http/Parsers/Response/FileHttpResponseContentReader.cs +++ b/src/activities/Elsa.Activities.Http/Parsers/Response/FileHttpResponseContentReader.cs @@ -11,12 +11,13 @@ namespace Elsa.Activities.Http.Parsers.Response { public string Name => "File"; public int Priority => 0; + public bool GetSupportsContentType(string contentType) { var types = new[] { "audio", "video", "application", "pdf" }; return types.Any(x => contentType.Contains(x, StringComparison.OrdinalIgnoreCase)); } - public async Task ReadAsync(SendHttpRequest activity, HttpResponseMessage response, CancellationToken cancellationToken) => await response.Content.ReadAsByteArrayAsync(); + public async Task ReadAsync(HttpResponseMessage response, object context, CancellationToken cancellationToken) => await response.Content.ReadAsByteArrayAsync(); } } \ No newline at end of file diff --git a/src/activities/Elsa.Activities.Http/Parsers/Response/JTokenHttpResponseContentReader.cs b/src/activities/Elsa.Activities.Http/Parsers/Response/JTokenHttpResponseContentReader.cs index aed40299c..e44665b38 100644 --- a/src/activities/Elsa.Activities.Http/Parsers/Response/JTokenHttpResponseContentReader.cs +++ b/src/activities/Elsa.Activities.Http/Parsers/Response/JTokenHttpResponseContentReader.cs @@ -13,7 +13,7 @@ namespace Elsa.Activities.Http.Parsers.Response public int Priority => 0; public bool GetSupportsContentType(string contentType) => contentType.Contains("/json", StringComparison.OrdinalIgnoreCase); - public async Task ReadAsync(SendHttpRequest activity, HttpResponseMessage response, CancellationToken cancellationToken) + public async Task ReadAsync(HttpResponseMessage response, object context, CancellationToken cancellationToken) { var json = (await response.Content.ReadAsStringAsync()).Trim(); return GetJTokenValue(json); diff --git a/src/activities/Elsa.Activities.Http/Parsers/Response/JsonRawHttpResponseContentReader.cs b/src/activities/Elsa.Activities.Http/Parsers/Response/JsonRawHttpResponseContentReader.cs index 6afb64849..29b6ae30f 100644 --- a/src/activities/Elsa.Activities.Http/Parsers/Response/JsonRawHttpResponseContentReader.cs +++ b/src/activities/Elsa.Activities.Http/Parsers/Response/JsonRawHttpResponseContentReader.cs @@ -11,6 +11,6 @@ namespace Elsa.Activities.Http.Parsers.Response public string Name => "JSON"; public int Priority => 100; public bool GetSupportsContentType(string contentType) => contentType.Contains("/json", StringComparison.OrdinalIgnoreCase); - public async Task ReadAsync(SendHttpRequest activity, HttpResponseMessage response, CancellationToken cancellationToken) => await response.Content.ReadAsStringAsync(); + public async Task ReadAsync(HttpResponseMessage response, object context, CancellationToken cancellationToken) => await response.Content.ReadAsStringAsync(); } } \ No newline at end of file diff --git a/src/activities/Elsa.Activities.Http/Parsers/Response/PlainTextHttpResponseContentReader.cs b/src/activities/Elsa.Activities.Http/Parsers/Response/PlainTextHttpResponseContentReader.cs index 33ee698f1..b215e2781 100644 --- a/src/activities/Elsa.Activities.Http/Parsers/Response/PlainTextHttpResponseContentReader.cs +++ b/src/activities/Elsa.Activities.Http/Parsers/Response/PlainTextHttpResponseContentReader.cs @@ -10,6 +10,6 @@ namespace Elsa.Activities.Http.Parsers.Response public string Name => "Plain Text"; public int Priority => -1; public bool GetSupportsContentType(string contentType) => true; - public async Task ReadAsync(SendHttpRequest activity, HttpResponseMessage response, CancellationToken cancellationToken) => await response.Content.ReadAsStringAsync(); + public async Task ReadAsync(HttpResponseMessage response, object context, CancellationToken cancellationToken) => await response.Content.ReadAsStringAsync(); } } \ No newline at end of file diff --git a/src/activities/Elsa.Activities.Http/Parsers/Response/TypedHttpResponseContentReader.cs b/src/activities/Elsa.Activities.Http/Parsers/Response/TypedHttpResponseContentReader.cs index 0ff554285..aa53e3a7f 100644 --- a/src/activities/Elsa.Activities.Http/Parsers/Response/TypedHttpResponseContentReader.cs +++ b/src/activities/Elsa.Activities.Http/Parsers/Response/TypedHttpResponseContentReader.cs @@ -15,14 +15,15 @@ namespace Elsa.Activities.Http.Parsers.Response public int Priority => 0; public bool GetSupportsContentType(string contentType) => GetIsJsonContentType(contentType); - public async Task ReadAsync(SendHttpRequest activity, HttpResponseMessage response, CancellationToken cancellationToken) + public async Task ReadAsync(HttpResponseMessage response, object context, CancellationToken cancellationToken) { + var activity = context as SendHttpRequest; var contentType = response.Content.Headers.ContentType.MediaType; if (GetIsJsonContentType(contentType)) { var json = (await response.Content.ReadAsStringAsync()).Trim(); - var targetType = activity.ResponseContentTargetType ?? typeof(ExpandoObject); + var targetType = activity?.ResponseContentTargetType ?? typeof(ExpandoObject); return JsonConvert.DeserializeObject(json, targetType)!; } diff --git a/src/activities/Elsa.Activities.Http/Services/IHttpResponseContentReader.cs b/src/activities/Elsa.Activities.Http/Services/IHttpResponseContentReader.cs index d53f9102e..535020f6a 100644 --- a/src/activities/Elsa.Activities.Http/Services/IHttpResponseContentReader.cs +++ b/src/activities/Elsa.Activities.Http/Services/IHttpResponseContentReader.cs @@ -9,6 +9,6 @@ namespace Elsa.Activities.Http.Services string Name { get; } int Priority { get; } bool GetSupportsContentType(string contentType); - Task ReadAsync(SendHttpRequest activity, HttpResponseMessage response, CancellationToken cancellationToken); + Task ReadAsync(HttpResponseMessage response, object context, CancellationToken cancellationToken); } } \ No newline at end of file