/// <inheritdoc/> public async Task SignalAsync(string signalName, params object[] args) { Covenant.Requires <ArgumentNullException>(!string.IsNullOrEmpty(signalName)); Covenant.Requires <ArgumentNullException>(args != null); EnsureStarted(); var argBytes = client.DataConverter.ToData(args); await client.SignalWorkflowAsync(Execution, signalName, argBytes, domain); }
/// <summary> /// Signals the associated workflow. /// </summary> /// <param name="signalName">Specifies the signal name.</param> /// <param name="args">Specifies the signal arguments.</param> /// <returns>The tracking <see cref="Task"/>.</returns> public async Task SignalAsync(string signalName, params object[] args) { await SyncContext.Clear; Covenant.Requires<ArgumentNullException>(!string.IsNullOrEmpty(signalName), nameof(signalName)); Covenant.Requires<ArgumentNullException>(args != null, nameof(args)); EnsureStarted(); if (Execution == null) { throw new InvalidOperationException("Signal cannot be sent because the stub doesn't have the workflow execution."); } var argBytes = CadenceHelper.ArgsToBytes(client.DataConverter, args); await client.SignalWorkflowAsync(Execution, signalName, argBytes, client.ResolveDomain(Options?.Domain)); }
/// <summary> /// Signals the workflow. /// </summary> /// <param name="signalName">Specifies the signal name.</param> /// <param name="args">Specifies the signal arguments.</param> /// <returns>The tracking <see cref="Task"/>.</returns> public async Task SignalAsync(string signalName, params object[] args) { await SyncContext.ClearAsync; Covenant.Requires <ArgumentNullException>(!string.IsNullOrEmpty(signalName), nameof(signalName)); Covenant.Requires <ArgumentNullException>(args != null, nameof(args)); if (parentWorkflow != null) { var stub = parentWorkflow.NewLocalActivityStub <ILocalOperations, LocalOperations>(); await stub.SignalAsync(Execution, signalName, args); } else { await client.SignalWorkflowAsync(Execution, signalName, client.DataConverter.ToData(args)); } }