private async ValueTask <IStateMachineController> StartStateMachineWrapper(SessionId sessionId, StateMachineOrigin origin, DataModelValue parameters) { var finalizer = new DeferredFinalizer(); var securityContext = SecurityContext.Create(SecurityContextType.NewTrustedStateMachine, finalizer); await using (finalizer.ConfigureAwait(false)) { return(await StartStateMachine(sessionId, origin, parameters, securityContext, finalizer).ConfigureAwait(false)); } }
async ValueTask <IStateMachineController> IHost.StartStateMachineAsync(SessionId sessionId, StateMachineOrigin origin, DataModelValue parameters, ISecurityContext securityContext, DeferredFinalizer finalizer, CancellationToken token) { if (securityContext is SecurityContext { Type : SecurityContextType.NewStateMachine or SecurityContextType.NewTrustedStateMachine } ctx) { return(await StartStateMachine(sessionId, origin, parameters, ctx, finalizer, token).ConfigureAwait(false)); } throw new StateMachineSecurityException(Resources.Exception_StartingStateMachineDenied); }