public IWorkflowBuilder WithContextType(Type type, WorkflowContextFidelity fidelity = WorkflowContextFidelity.Burst) => WithContextOptions( new WorkflowContextOptions { ContextType = type, ContextFidelity = fidelity });
private async ValueTask <string?> SaveWorkflowContextAsync(WorkflowExecutionContext workflowExecutionContext, WorkflowContextFidelity fidelity, bool always, CancellationToken cancellationToken) { var workflowContext = workflowExecutionContext.WorkflowContext; if (!always && (workflowContext == null || workflowExecutionContext.WorkflowBlueprint.ContextOptions?.ContextFidelity != fidelity)) { return(workflowExecutionContext.WorkflowInstance.ContextId); } var context = new SaveWorkflowContext(workflowExecutionContext); return(await _workflowContextManager.SaveContextAsync(context, cancellationToken)); }
private async ValueTask <object?> LoadWorkflowContextAsync(WorkflowExecutionContext workflowExecutionContext, WorkflowContextFidelity fidelity, bool always, CancellationToken cancellationToken) { var workflowInstance = workflowExecutionContext.WorkflowInstance; var workflowBlueprint = workflowExecutionContext.WorkflowBlueprint; if (!always && (workflowInstance.ContextId == null || workflowBlueprint.ContextOptions == null || workflowBlueprint.ContextOptions.ContextFidelity != fidelity)) { return(null); } var context = new LoadWorkflowContext(workflowExecutionContext); return(await _workflowContextManager.LoadContext(context, cancellationToken)); }
public IWorkflowBuilder WithContextType <T>(WorkflowContextFidelity fidelity) => WithContextType(typeof(T), fidelity);