private async ValueTask <IActivityExecutionResult?> TryExecuteActivityAsync( ActivityOperation activityOperation, ActivityExecutionContext activityExecutionContext, IActivity activity, CancellationToken cancellationToken) { try { return(await activityOperation(activityExecutionContext, activity)); } catch (Exception e) { _logger.LogWarning(e, "Failed to run activity {ActivityId} of workflow {WorkflowInstanceId}", activity.Id, activityExecutionContext.WorkflowInstance.Id); activityExecutionContext.Fault(e); await _mediator.Publish(new ActivityFaulted(e, activityExecutionContext, activity), cancellationToken); } return(null); }