using System; using System.Runtime.CompilerServices; using System.Threading.Tasks; using Elsa.Builders; using Elsa.Services.Models; using Microsoft.AspNetCore.Http; // ReSharper disable ExplicitCallerInfoArgument // ReSharper disable once CheckNamespace namespace Elsa.Activities.Http { public static class HttpRequestReceivedBuilderExtensions { public static IActivityBuilder HttpRequestReceived(this IBuilder builder, Action> setup, [CallerLineNumber] int lineNumber = default, [CallerFilePath] string? sourceFile = default) => builder.Then(setup, null, lineNumber, sourceFile); public static IActivityBuilder HttpRequestReceived(this IBuilder builder, Func> path, [CallerLineNumber] int lineNumber = default, [CallerFilePath] string? sourceFile = default) => builder.HttpRequestReceived(setup => setup.Set(x => x.Path, path), lineNumber, sourceFile); public static IActivityBuilder HttpRequestReceived(this IBuilder builder, Func path, [CallerLineNumber] int lineNumber = default, [CallerFilePath] string? sourceFile = default) => builder.HttpRequestReceived(setup => setup.Set(x => x.Path, path), lineNumber, sourceFile); public static IActivityBuilder HttpRequestReceived(this IBuilder builder, Func> path, [CallerLineNumber] int lineNumber = default, [CallerFilePath] string? sourceFile = default) => builder.HttpRequestReceived(setup => setup.Set(x => x.Path, path), lineNumber, sourceFile); public static IActivityBuilder HttpRequestReceived(this IBuilder builder, Func path, [CallerLineNumber] int lineNumber = default, [CallerFilePath] string? sourceFile = default) => builder.HttpRequestReceived(setup => setup.Set(x => x.Path, path), lineNumber, sourceFile); public static IActivityBuilder HttpRequestReceived(this IBuilder builder, PathString path, [CallerLineNumber] int lineNumber = default, [CallerFilePath] string? sourceFile = default) => builder.HttpRequestReceived(setup => setup.Set(x => x.Path, path), lineNumber, sourceFile); public static IActivityBuilder ReceiveHttpPostRequest(this IBuilder builder, Func path, [CallerLineNumber] int lineNumber = default, [CallerFilePath] string? sourceFile = default) => builder.HttpRequestReceived(activity => activity.WithPath(path).WithMethod(HttpMethods.Post).WithTargetType(), lineNumber, sourceFile); public static IActivityBuilder ReceiveHttpPostRequest(this IBuilder builder, Func path, [CallerLineNumber] int lineNumber = default, [CallerFilePath] string? sourceFile = default) => builder.HttpRequestReceived(activity => activity.WithPath(path).WithMethod(HttpMethods.Post).WithTargetType(), lineNumber, sourceFile); public static IActivityBuilder ReceiveHttpPostRequest(this IBuilder builder, PathString path, [CallerLineNumber] int lineNumber = default, [CallerFilePath] string? sourceFile = default) => builder.HttpRequestReceived(activity => activity.WithPath(path).WithMethod(HttpMethods.Post).WithTargetType(), lineNumber, sourceFile); } }