Beispiel #1
0
 public IWorkflowBuilder WithContextType(Type type, WorkflowContextFidelity fidelity = WorkflowContextFidelity.Burst) =>
 WithContextOptions(
     new WorkflowContextOptions
 {
     ContextType     = type,
     ContextFidelity = fidelity
 });
Beispiel #2
0
        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));
        }
Beispiel #4
0
 public IWorkflowBuilder WithContextType <T>(WorkflowContextFidelity fidelity) => WithContextType(typeof(T), fidelity);