elsa-core/src/samples/aspnet/Elsa.Samples.CustomActivities/EchoQueryStringWorkflow.cs
2021-03-01 21:11:21 +01:00

28 lines
901 B
C#

using System.Linq;
using System.Net;
using Elsa.Activities.Http;
using Elsa.Builders;
using Elsa.Services.Models;
using Microsoft.AspNetCore.Http;
namespace Elsa.Samples.CustomActivities
{
public class EchoQueryStringWorkflow : IWorkflow
{
public void Build(IWorkflowBuilder builder)
{
builder
.HttpEndpoint("/test")
.Then<ReadQueryString>()
.WriteHttpResponse(_ => HttpStatusCode.OK, GenerateSomeHtml, _ => "text/html");
}
private string GenerateSomeHtml(ActivityExecutionContext context)
{
var query = (IQueryCollection)context.Input; // the output of the ReadQueryString activity will be available as input to this one.
var items = query!.Select(x => $"<li>{x.Key}: {x.Value}</li>");
return $"<ul>{string.Join("\n", items)}</ul>";
}
}
}