public async Task Run( [OrchestrationTrigger] IDurableOrchestrationContext context, ILogger logger) { var message = context.GetInput <Message>(); var timeout = TimeSpan.FromHours(24); var defaultApproval = ApprovalBuilder.BuildDefault(); var approval1 = context.WaitForExternalEvent( EventNames.MultipleApproveEvents1, timeout, defaultApproval); var approval2 = context.WaitForExternalEvent( EventNames.MultipleApproveEvents2, timeout, defaultApproval); var approvals = await Task.WhenAll(approval1, approval2); var putOnQueueActivity = approvals.All(a => a.IsApproved) ? nameof(PutOnApprovedMessagesQueueActivity) : nameof(PutOnDeniedMessagesQueueActivity); await context.CallActivityAsync <Message>( putOnQueueActivity, message); context.SetCustomStatus(new { QueueActivityName = putOnQueueActivity }); }
public async Task Run( [OrchestrationTrigger] IDurableOrchestrationContext context, ILogger logger) { var message = context.GetInput <Message>(); var approval = await context.WaitForExternalEvent( EventNames.SingleApproveEvent, TimeSpan.FromSeconds(10), ApprovalBuilder.BuildDefault()); var putOnQueueActivity = approval.IsApproved ? nameof(PutOnApprovedMessagesQueueActivity) : nameof(PutOnDeniedMessagesQueueActivity); await context.CallActivityAsync <Message>( putOnQueueActivity, message); context.SetCustomStatus(new { QueueActivityName = putOnQueueActivity }); }