-
Notifications
You must be signed in to change notification settings - Fork 4
/
BoilWaterHandler.cs
34 lines (32 loc) · 1.23 KB
/
BoilWaterHandler.cs
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
using Camunda.Worker;
namespace camunda.helper.Camunda.Worker.Handlers
{
[HandlerTopics("Boil_Water")]
[HandlerVariables(new string[] { "numberOfCups"})]
public class BoilWaterHandler : IExternalTaskHandler
{
private readonly ILogger<BoilWaterHandler> _logger;
public BoilWaterHandler(ILogger<BoilWaterHandler> logger)
{
_logger = logger;
}
public async Task<IExecutionResult> HandleAsync(ExternalTask externalTask, CancellationToken cancellationToken)
{
_logger.LogInformation("Boil_Water handler is called from Camunda...");
try
{
_logger.LogInformation($"Boiling water for {externalTask.Variables["numberOfCups"].AsInteger()} number of cups..........");
//Mimicking operation
Task.Delay(5000).Wait();
//return success
return new CompleteResult();
}
catch (Exception ex)
{
_logger.LogError($"error occured!! error messge: {ex.Message}");
//return failure
return new BpmnErrorResult("Boil_WaterFailure", "Error occured while invoking Boil_Water..");
}
}
}
}