Ejemplo n.º 1
0
        /// <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));
        }
Ejemplo n.º 2
0
        /// <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);
        }