public void Serialize_signal_input_to_json_format() { var req = new SignalWorkflowRequest("id", "name"); req.SignalInput = new { Id = 10 }; var swfRequest = req.SwfFormat("d"); Assert.That(swfRequest.Input, Is.EqualTo("{\"Id\":10}")); }
public async Task Send_signal_request_to_amazon_swf() { var signalRequest = new SignalWorkflowRequest("workflowId", "signalName") { WorkflowRunId = "runid", SignalInput = "input" }; await _domain.SignalWorkflowAsync(signalRequest); AssertThatAmazonIsSend(signalRequest); }
private void AssertThatAmazonIsSend(SignalWorkflowRequest request) { Func <SignalWorkflowExecutionRequest, bool> signalRequest = s => { Assert.That(request.WorkflowId, Is.EqualTo(s.WorkflowId)); Assert.That(request.WorkflowRunId, Is.EqualTo(request.WorkflowRunId)); Assert.That(request.SignalName, Is.EqualTo(s.SignalName)); Assert.That(request.SignalInput, Is.EqualTo(s.Input)); Assert.That(_domainName, Is.EqualTo(s.Domain)); return(true); }; _amazonWorkflowClient.Verify(c => c.SignalWorkflowExecutionAsync( It.Is <SignalWorkflowExecutionRequest>((signal) => signalRequest(signal)), It.IsAny <CancellationToken>()), Times.Once); }
private static async Task MainAsync(string[] args) { var domain = new Domain("learning", RegionEndpoint.EUWest2); await domain.RegisterWorkflowAsync <ProcessLogWorkflow>(); using (var hostedWorkflows = domain.Host(new[] { new ProcessLogWorkflow(), })) { hostedWorkflows.StartExecution(); Console.WriteLine("Press any key to terminate"); Console.ReadKey(); } var req = new SignalWorkflowRequest("workflow id", "signal name"); req.SignalInput = new { Id = 10, Name = "Ram" }; await domain.SignalWorkflowAsync(req); }
/// <summary> /// Send a signal to running workflow. /// </summary> /// <param name="signalRequest"></param> /// <returns></returns> public async Task SignalWorkflowAsync(SignalWorkflowRequest signalRequest) { Ensure.NotNull(signalRequest, nameof(signalRequest)); await _simpleWorkflowClient.SignalWorkflowExecutionAsync(signalRequest.SwfFormat(_name)); }