forked from temporalio/samples-dotnet
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathActivities.cs
41 lines (34 loc) · 1.63 KB
/
Activities.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
35
36
37
38
39
40
41
using Microsoft.Extensions.Logging;
using Temporalio.Activities;
using Temporalio.Exceptions;
namespace TemporalioSamples.Saga;
public record TransferDetails(decimal Amount, string FromAmount, string ToAmount, string ReferenceId);
public static class Activities
{
[Activity]
public static void Withdraw(TransferDetails d)
{
ActivityExecutionContext.Current.Logger.LogInformation("Withdrawing {Amount} from account {FromAmount}. ReferenceId: {ReferenceId}", d.Amount, d.FromAmount, d.ReferenceId);
}
[Activity]
public static void WithdrawCompensation(TransferDetails d)
{
ActivityExecutionContext.Current.Logger.LogInformation("Withdrawing Compensation {Amount} from account {FromAmount}. ReferenceId: {ReferenceId}", d.Amount, d.FromAmount, d.ReferenceId);
}
[Activity]
public static void Deposit(TransferDetails d)
{
ActivityExecutionContext.Current.Logger.LogInformation("Depositing {Amount} into account {ToAmount}. ReferenceId: {ReferenceId}", d.Amount, d.ToAmount, d.ReferenceId);
}
[Activity]
public static void DepositCompensation(TransferDetails d)
{
ActivityExecutionContext.Current.Logger.LogInformation("Depositing Compensation {Amount} int account {ToAmount}. ReferenceId: {ReferenceId}", d.Amount, d.ToAmount, d.ReferenceId);
}
[Activity]
public static void StepWithError(TransferDetails d)
{
ActivityExecutionContext.Current.Logger.LogInformation("Simulate failure to trigger compensation. ReferenceId: {ReferenceId}", d.ReferenceId);
throw new ApplicationFailureException("Simulated failure", nonRetryable: true);
}
}