TechnoBerry / camunda-worker-dotnet

Ultimate solution to connect your ASP.NET Core application to Camunda external tasks

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Camunda.Worker

codecov NuGet

Example

[HandlerTopics("sayHello", LockDuration = 10_000)]
[HandlerVariables("USERNAME")]
public class SayHelloHandler : IExternalTaskHandler
{
    public async Task<IExecutionResult> HandleAsync(ExternalTask externalTask, CancellationToken cancellationToken)
    {
        if (!externalTask.TryGetVariable<StringVariable>("USERNAME", out var usernameVariable))
        {
            return new BpmnErrorResult("NO_USER", "Username not provided");
        }

        var username = usernameVariable.Value;

        await Task.Delay(1000, cancellationToken);

        return new CompleteResult
        {
            Variables = new Dictionary<string, VariableBase>
            {
                ["MESSAGE"] = new StringVariable($"Hello, {username}!"),
                ["USER_INFO"] = JsonVariable.Create(new UserInfo(username, new List<string>
                {
                    "Admin"
                }))
            }
        };
    }
}

About

Ultimate solution to connect your ASP.NET Core application to Camunda external tasks

License:MIT License


Languages

Language:C# 100.0%