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