/// <inheritdoc/> public async Task <WorkflowExecution> SignalWithStartAsync(string signalName, object[] signalArgs, object[] startArgs) { Covenant.Requires <ArgumentNullException>(!string.IsNullOrEmpty(signalName)); Covenant.Requires <ArgumentNullException>(signalArgs != null); Covenant.Requires <ArgumentNullException>(startArgs != null); var signalArgBytes = client.DataConverter.ToData(signalArgs); var startArgBytes = client.DataConverter.ToData(startArgs); return(await client.SignalWorkflowWithStartAsync(signalName, signalArgBytes, startArgBytes, domain)); }
/// <summary> /// Signals the associated workflow, starting it if it hasn't already been started. /// </summary> /// <param name="signalName">Specifies the signal name.</param> /// <param name="signalArgs">Specifies the signal arguments.</param> /// <param name="startArgs">Specifies the workflow start arguments.</param> /// <returns>The tracking <see cref="Task"/>.</returns> public async Task<WorkflowExecution> SignalWithStartAsync(string signalName, object[] signalArgs, object[] startArgs) { await SyncContext.Clear; Covenant.Requires<ArgumentNullException>(!string.IsNullOrEmpty(signalName), nameof(signalName)); Covenant.Requires<ArgumentNullException>(signalArgs != null, nameof(signalArgs)); Covenant.Requires<ArgumentNullException>(startArgs != null, nameof(startArgs)); var signalArgBytes = CadenceHelper.ArgsToBytes(client.DataConverter, signalArgs); var startArgBytes = CadenceHelper.ArgsToBytes(client.DataConverter, startArgs); return await client.SignalWorkflowWithStartAsync(this.WorkflowTypeName, signalName, signalArgBytes, startArgBytes, this.Options); }