elsa-core/src/activities/Elsa.Activities.Http/Parsers/FormHttpRequestBodyParser.cs
2020-11-03 10:58:11 +01:00

25 lines
821 B
C#

using System;
using System.Linq;
using System.Threading;
using System.Threading.Tasks;
using Elsa.Activities.Http.Models;
using Elsa.Activities.Http.Services;
using Microsoft.AspNetCore.Http;
namespace Elsa.Activities.Http.Parsers
{
public class FormHttpRequestBodyParser : IHttpRequestBodyParser
{
public int Priority => 0;
public string?[] SupportedContentTypes => new[] { "application/x-www-form-urlencoded" };
public async Task<object?> ParseAsync(HttpRequest request, Type? targetType = default, CancellationToken cancellationToken = default)
{
var form = await request.ReadFormAsync(cancellationToken);
return form.ToDictionary(
x => x.Key,
x => new StringValuesModel(x.Value)
);
}
}
}