public async Task NewTraceTestWithPojo()
        {
            var sdk = GetSdk <StateExample>();

            Dictionary <string, object> data = new Dictionary <string, object>
            {
                ["weight"]    = "123",
                ["valid"]     = true,
                ["operators"] = new string[] { "1", "2" },
                ["operation"] = "my new operation 1"
            };

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

            NewTraceInput <DataClass> input = new NewTraceInput <DataClass>(ACTION_KEY, d);

            TraceState <StateExample, DataClass> state = await sdk.NewTraceAsync <DataClass>(input);

            someTraceState = state;

            Assert.NotNull(state.TraceId);
        }
示例#2
0
        public async Task NewTraceTestWithGenericType()
        {
            var sdk = GetSdk <StateExample>();


            Dictionary <string, object> data = new Dictionary <string, object>
            {
                ["weight"]    = "123",
                ["valid"]     = true,
                ["operators"] = new string[] { "1", "2" },
                ["operation"] = "my new operation 1"
            };

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

            NewTraceInput <SomeClass> input = new NewTraceInput <SomeClass>(FORM_ID, d);

            TraceState <StateExample, SomeClass> state = await sdk.NewTraceAsync <SomeClass>(input);

            someTraceState2 = state;



            Assert.IsNotNull(state.TraceId);
        }
示例#3
0
        public async Task NewTraceUploadInClassTest()
        {
            Sdk <Object> sdk = GetSdk <Object>();

            Step s = new Step();

            s.data = new StepData();
            s.data.stp_form_section = new Identifiable[] { FileWrapper.FromFilePath(Path.GetFullPath("../../Resources/TestFile1.txt")) };


            NewTraceInput <Step> newTraceInput = new NewTraceInput <Step>(FORM_ID, s);

            TraceState <object, Step> state = await sdk.NewTraceAsync <Step>(newTraceInput);

            Assert.IsNotNull(state.TraceId);
            Debug.WriteLine(state.TraceId);
        }
示例#4
0
        public async Task NewTraceTest()
        {
            var sdk = GetSdk();
            IDictionary <string, object> data = new Dictionary <string, object>
            {
                ["weight"]    = "123",
                ["valid"]     = true,
                ["operators"] = new string[] { "1", "2" },
                ["operation"] = "my new operation 1"
            };
            NewTraceInput <object> input = new NewTraceInput <object>(ACTION_KEY, data);

            TraceState <object, object> state = await sdk.NewTraceAsync <object>(input);

            someTraceState = state;

            Assert.NotNull(state.TraceId);
        }
示例#5
0
        public async Task NewTraceTest()
        {
            var sdk = GetSdk();
            IDictionary <string, object> data = new Dictionary <string, object>
            {
                ["entity"]           = config.OTHER_GROUP_NAME,
                ["submissionPeriod"] = "2021.Q4",
                ["startDate"]        = "2021-01-30",
                ["deadline"]         = "2021-06-30",
                ["comment"]          = "init comment"
            };
            NewTraceInput <object> input = new NewTraceInput <object>(config.INIT_ACTION_KEY, data);

            TraceState <object, object> state = await sdk.NewTraceAsync <object>(input);

            someTraceState = state;
            Debug.WriteLine(JsonHelper.ToJson(state));
            Assert.NotNull(state.TraceId);
        }
示例#6
0
        public async Task NewTraceTestWithPojo()
        {
            var sdk = GetSdk <StateExample>();

            InitDataClass data = new InitDataClass();

            data.entity           = config.OTHER_GROUP_NAME;
            data.submissionPeriod = "2021.Q4";
            data.startDate        = "2021-01-30";
            data.deadline         = "2021-06-30";
            data.comment          = "init comment";

            NewTraceInput <InitDataClass> input = new NewTraceInput <InitDataClass>(config.INIT_ACTION_KEY, data);

            TraceState <StateExample, InitDataClass> state = await sdk.NewTraceAsync <InitDataClass>(input);

            initTraceState = state;
            Debug.WriteLine(JsonHelper.ToJson(state));
            Assert.NotNull(state.TraceId);
        }
示例#7
0
        public async Task NewTraceUploadTest()
        {
            Sdk <Object> sdk = GetSdk();

            IDictionary <string, object> data = new Dictionary <string, object>
            {
                ["weight"]    = "123",
                ["valid"]     = true,
                ["operators"] = new string[] { "1", "2" },
                ["operation"] = "my new operation 1"
            };

            data.Add("Certificate1", FileWrapper.FromFilePath(Path.GetFullPath("../../Resources/TestFile1.txt")));
            data.Add("Certificates", new Identifiable[] { FileWrapper.FromFilePath(Path.GetFullPath("../../Resources/TestFile1.txt")) });

            NewTraceInput <Object> newTraceInput = new NewTraceInput <Object>(FORM_ID, data);

            TraceState <object, object> state = await sdk.NewTraceAsync <object>(newTraceInput);

            Assert.IsNotNull(state.TraceId);
            someTraceState = state;
        }
示例#8
0
        /// <summary>
        /// The NewTrace
        /// </summary>
        /// <typeparam name="TLinkData"></typeparam>
        /// <param name="input">The input<see cref="NewTraceInput{TLinkData}"/></param>
        /// <returns>The <see cref="Task{TraceState{TState, TLinkData}}"/></returns>
        public async Task <TraceState <TState, TLinkData> > NewTraceAsync <TLinkData>(NewTraceInput <TLinkData> input)
        {
            //extract info from input
            string    actionKey  = input.ActionKey;
            TLinkData data       = input.Data;
            string    groupLabel = input.GroupLabel;

            SdkConfig sdkConfig = await this.GetConfigAsync();

            string workflowId = sdkConfig.WorkflowId;
            string configId   = sdkConfig.ConfigId;
            string accountId  = sdkConfig.AccountId;
            string groupId    = sdkConfig.GetGroupId(groupLabel);

            // upload files and transform data
            await this.UploadFilesInLinkData(data);

            TraceLinkBuilderConfig <TLinkData> cfg = new TraceLinkBuilderConfig <TLinkData>()
            {
                WorkflowId = workflowId,
                // and workflow config id
                ConfigId = configId,
            };
            // 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 an attestation
            linkBuilder.ForAttestation(actionKey, data).WithGroup(groupId).WithCreatedBy(accountId);
            // call createLink helper
            return(await this.CreateLinkAsync(linkBuilder));
        }
示例#9
0
        /// <summary>
        /// The NewTrace
        /// </summary>
        /// <typeparam name="TLinkData"></typeparam>
        /// <param name="input">The input<see cref="NewTraceInput{TLinkData}"/></param>
        /// <returns>The <see cref="Task{TraceState{TState, TLinkData}}"/></returns>
        public async Task <TraceState <TState, TLinkData> > NewTraceAsync <TLinkData>(NewTraceInput <TLinkData> input)
        {
            //extract info from input
            string    formId = input.FormId;
            TLinkData data   = input.Data;

            SdkConfig sdkConfig = await this.GetConfigAsync();

            string workflowId = sdkConfig.WorkflowId;
            string userId     = sdkConfig.UserId;
            string ownerId    = sdkConfig.OwnerId;
            string groupId    = sdkConfig.GroupId;
            IDictionary <string, string> actionNames = sdkConfig.ActionNames;

            // upload files and transform data
            await this.UploadFilesInLinkData(data);

            TraceLinkBuilderConfig <TLinkData> cfg = new TraceLinkBuilderConfig <TLinkData>()
            {
                WorkflowId = workflowId
            };
            // use a TraceLinkBuilder to create the first link
            // only provide workflowId to initiate a new trace
            TraceLinkBuilder <TLinkData> linkBuilder = new TraceLinkBuilder <TLinkData>(cfg);

            var action = actionNames.ContainsKey(formId) ? actionNames[formId] : null;

            // this is an attestation
            linkBuilder.ForAttestation(formId, action, data).WithOwner(ownerId).WithGroup(groupId).WithCreatedBy(userId);
            // call createLink helper
            return(await this.CreateLinkAsync(linkBuilder));
        }