Ejemplo n.º 1
0
        public async Task PushTraceTestWithPojo()
        {
            var sdk = GetSdk <StateExample>();

            await NewTraceTestWithPojo();

            Assert.IsNotNull(someTraceState);
            Dictionary <string, object> data = new Dictionary <string, object>()
            {
                { "why", "because im testing the pushTrace 2" }
            };

            DataClass d = new DataClass()
            {
                f11 = 1,
                f22 = data
            };


            PushTransferInput <DataClass> push = new PushTransferInput <DataClass>(someTraceState.TraceId, "86", d, null);

            someTraceState = await sdk.PushTraceAsync <DataClass>(push);

            Assert.IsNotNull(push.TraceId);
        }
Ejemplo n.º 2
0
        public async Task PushTraceTest()
        {
            await NewTraceTest();

            Assert.NotNull(someTraceState);

            PushTransferInput <object> push = new PushTransferInput <object>(someTraceState.TraceId, OTHER_GROUP, new object(), null);

            someTraceState = await GetSdk().PushTraceAsync <object>(push);

            Assert.NotNull(push.TraceId);
        }
Ejemplo n.º 3
0
        public async Task PushTraceTestWithPojo()
        {
            var sdk = GetSdk <StateExample>();

            await NewTraceTestWithPojo();

            Assert.NotNull(someTraceState);

            PushTransferInput <Object> push = new PushTransferInput <Object>(someTraceState.TraceId, OTHER_GROUP, new Object(), null);
            await sdk.PushTraceAsync <Object>(push);

            Assert.NotNull(push.TraceId);
        }
Ejemplo n.º 4
0
        public async Task PushTraceToMyGroupTest()
        {
            await NewTraceTest();

            Assert.IsNotNull(someTraceState);
            IDictionary <string, object> data = new Dictionary <string, object>()
            {
                { "why", "because im testing the pushTrace 2" }
            };

            PushTransferInput <object> push = new PushTransferInput <object>(someTraceState.TraceId, MY_GROUP, data, null);

            someTraceState = await GetSdk().PushTraceAsync <object>(push);

            Assert.IsNotNull(push.TraceId);
        }
Ejemplo n.º 5
0
        /// <summary>
        /// The PushTrace
        /// </summary>
        /// <typeparam name="TLinkData"></typeparam>
        /// <param name="input">The input<see cref="PushTransferInput{TLinkData}"/></param>
        /// <returns>The <see cref="Task{TraceState{TState, TLinkData}}"/></returns>
        public async Task <TraceState <TState, TLinkData> > PushTraceAsync <TLinkData>(PushTransferInput <TLinkData> input)
        {
            // retrieve parent link
            TransferResponseInput <TLinkData> headLinkInput = new TransferResponseInput <TLinkData>(input.TraceId, null);
            TraceLink <TLinkData>             parentLink    = await this.GetHeadLinkAsync <TLinkData>(headLinkInput);

            //extract info from input
            string    recipient = input.Recipient;
            TLinkData data      = input.Data;

            SdkConfig sdkConfig = await this.GetConfigAsync();

            string workflowId = sdkConfig.WorkflowId;
            string configId   = sdkConfig.ConfigId;
            string accountId  = sdkConfig.AccountId;

            TraceLinkBuilderConfig <TLinkData> cfg = new TraceLinkBuilderConfig <TLinkData>()
            {
                // provide workflow id
                WorkflowId = workflowId,
                // and workflow config id
                ConfigId = configId,
                // 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.ForPushTransfer(recipient, data).WithCreatedBy(accountId);
            // call createLink helper
            return(await this.CreateLinkAsync(linkBuilder));
        }