public async Task PullTraceTest() { await RejectTransferTest(); IDictionary <string, string> data = new Dictionary <string, string>() { { "why", "because im testing the pushTrace 2" } }; PullTransferInput <object> pull = new PullTransferInput <object>(someTraceState.TraceId, data, null); TraceState <object, object> statepul = await GetSdk().PullTraceAsync(pull); Assert.IsNotNull(statepul.TraceId); }
public async Task PullTraceTestWithPojo() { await RejectTransferTestWithPojo(); Dictionary <string, object> data = new Dictionary <string, object>() { { "why", "because im testing the pushTrace 2" } }; DataClass d = new DataClass() { f11 = 1, f22 = data }; PullTransferInput <DataClass> pull = new PullTransferInput <DataClass>(someTraceState.TraceId, d, null); TraceState <StateExample, DataClass> statepul = await GetSdk <StateExample>().PullTraceAsync(pull); Assert.IsNotNull(statepul.TraceId); }
/// <summary> /// The PullTrace /// </summary> /// <typeparam name="TLinkData"></typeparam> /// <param name="input">The input<see cref="PullTransferInput{TLinkData}"/></param> /// <returns>The <see cref="Task{TraceState{TState, TLinkData}}"/></returns> public async Task <TraceState <TState, TLinkData> > PullTraceAsync <TLinkData>(PullTransferInput <TLinkData> input) { // retrieve parent link TransferResponseInput <TLinkData> headLinkInput = new TransferResponseInput <TLinkData>(input.TraceId, null); TraceLink <TLinkData> parentLink = await this.GetHeadLinkAsync <TLinkData>(headLinkInput); TLinkData data = input.Data; SdkConfig sdkConfig = await this.GetConfigAsync(); string workflowId = sdkConfig.WorkflowId; string userId = sdkConfig.UserId; string groupId = sdkConfig.GroupId; TraceLinkBuilderConfig <TLinkData> cfg = new TraceLinkBuilderConfig <TLinkData>() { // provide workflow id WorkflowId = workflowId, // and parent link to append to the existing trace ParentLink = parentLink }; // use a TraceLinkBuilder to create the first link // only provide workflowId to initiate a new trace TraceLinkBuilder <TLinkData> linkBuilder = new TraceLinkBuilder <TLinkData>(cfg); // this is a push transfer linkBuilder.ForPullTransfer(groupId, data).WithCreatedBy(userId); // call createLink helper return(await this.CreateLinkAsync(linkBuilder)); }