private async Task <object?> TryEvaluatePropertyAsync(IActivityBlueprintWrapper activityWrapper, string propertyName, CancellationToken cancellationToken) { try { return(await activityWrapper.EvaluatePropertyValueAsync(propertyName, cancellationToken)); } catch { // ignored } return(null); }
private async ValueTask <Variables> GetActivityPropertiesAsync(IWorkflowBlueprintWrapper workflowBlueprintWrapper, IActivityBlueprintWrapper activityBlueprintWrapper, CancellationToken cancellationToken) { var workflowBlueprint = workflowBlueprintWrapper.WorkflowBlueprint; var activityBlueprint = activityBlueprintWrapper.ActivityBlueprint; var activityId = activityBlueprint.Id; var activityPropertyValueProviders = workflowBlueprint.ActivityPropertyProviders.GetProviders(activityId); var activityWrapper = workflowBlueprintWrapper.GetActivity(activityId) !; var properties = new Variables(); if (activityPropertyValueProviders == null) { return(properties); } foreach (var valueProvider in activityPropertyValueProviders) { var value = await activityWrapper.EvaluatePropertyValueAsync(valueProvider.Key, cancellationToken); properties.Set(valueProvider.Key, value); } return(properties); }
public TriggerProviderContext(IWorkflowBlueprintWrapper workflowWrapper, IActivityBlueprintWrapper activityWrapper) { WorkflowWrapper = workflowWrapper; ActivityWrapper = activityWrapper; }
private static async Task <object?> GetPropertyValueAsync(IWorkflowBlueprint workflowBlueprint, IActivityBlueprintWrapper activityBlueprintWrapper, ActivityInputDescriptor propertyDescriptor, CancellationToken cancellationToken) { if (propertyDescriptor.IsDesignerCritical) { try { return(await activityBlueprintWrapper.EvaluatePropertyValueAsync(propertyDescriptor.Name, cancellationToken)); } catch (Exception e) { throw new WorkflowException("Failed to evaluate a designer-critical property value. Please make sure that the value does not rely on external context.", e); } } return(workflowBlueprint.GetActivityPropertyRawValue(activityBlueprintWrapper.ActivityBlueprint.Id, propertyDescriptor.Name)); }
private async ValueTask <(Variables InputProperties, Variables OutputProperties)> GetActivityPropertiesAsync(IWorkflowBlueprintWrapper workflowBlueprintWrapper, IActivityBlueprintWrapper activityBlueprintWrapper, CancellationToken cancellationToken) { var activityBlueprint = activityBlueprintWrapper.ActivityBlueprint; var activityType = await _activityTypeService.GetActivityTypeAsync(activityBlueprint.Type, cancellationToken); var activityDescriptor = await _activityTypeService.DescribeActivityType(activityType, cancellationToken); var activityId = activityBlueprint.Id; var activityWrapper = workflowBlueprintWrapper.GetActivity(activityId) !; var inputProperties = new Variables(); var outputProperties = new Variables(); foreach (var property in activityDescriptor.InputProperties) { var value = await GetPropertyValueAsync(workflowBlueprintWrapper.WorkflowBlueprint, activityWrapper, property, cancellationToken); inputProperties.Set(property.Name, value); } foreach (var property in activityDescriptor.OutputProperties) { // Declare output properties to have at least a complete schema. outputProperties.Set(property.Name, null); } return(inputProperties, outputProperties); }