namespace WorkflowWebApp.Activities { using System.Threading.Tasks; using Dapr.Workflow; record InventoryRequest(string RequestId, string Name, int Quantity); record InventoryResult(bool Success); class ReserveInventoryActivity : WorkflowActivity { readonly ILogger logger; public ReserveInventoryActivity(ILoggerFactory loggerFactory) { this.logger = loggerFactory.CreateLogger(); } public override async Task RunAsync(WorkflowActivityContext context, InventoryRequest req) { this.logger.LogInformation( "Reserving inventory: {requestId}, {name}, {quantity}", req.RequestId, req.Name, req.Quantity); // Simulate slow processing await Task.Delay(TimeSpan.FromSeconds(2)); return new InventoryResult(true); } } }