Esempio n. 1
0
        /// <summary>
        /// Create a work item given a submission object
        /// </summary>
        public static CreatedWorkItem CreateWorkItem(SubmissionTableEntity submission, string refreshToken)
        {
            var url = string.Format(ConfigurationManager.AppSettings["CreateWorkItemUrl"], submission.VsoAccount, submission.TeamProject);

            // refresh our access token
            var newToken = DoAuthenticationPost(refreshToken, true, false);

            var workItem = WorkItemFromSubmission(submission);

            return(PostWithBearer <CreatedWorkItem, NewWorkItem>(url, newToken.accessToken, workItem).Result);
        }
Esempio n. 2
0
        /*
         * Requirements for each Work Item Type:
         *
         * Product Backlog Item
         *  { refName: "System.State" }, value: "New" },
         *  { refName: "System.Reason" }, value: "New backlog item" }
         * User Story
         *  { refName: "System.State" }, value: "New" },
         *  { refName: "System.Reason" }, value: "New" }
         * Requirement
         *  { refName: "System.State" }, value: "Proposed" },
         *  { refName: "System.Reason" }, value: "New" },
         *  { refName: "Microsoft.VSTS.Common.Priority" }, value: "X" },
         *  { refName: "Microsoft.VSTS.Common.Triage" }, value: "Pending" },
         *  { refName: "Microsoft.VSTS.CMMI.RequirementType" }, value: "XXXXXX" },
         *  { refName: "Microsoft.VSTS.CMMI.Committed" }, value: "No" },
         *  { refName: "Microsoft.VSTS.CMMI.UserAcceptanceTest" }, value: "Not Ready" }
         */

        private static NewWorkItem WorkItemFromSubmission(SubmissionTableEntity submission)
        {
            var workItem = new NewWorkItem();
            var fields   = new List <Field>()
            {
                new Field
                {
                    field = new FieldName {
                        refName = "System.WorkItemType"
                    },
                    value = submission.WorkItemType
                },
                new Field
                {
                    field = new FieldName {
                        refName = "System.AreaPath"
                    },
                    value = submission.TeamProject
                },
                new Field
                {
                    field = new FieldName {
                        refName = "System.IterationPath"
                    },
                    value = submission.TeamProject
                },
                new Field
                {
                    field = new FieldName {
                        refName = "System.Title"
                    },
                    value =
                        submission.Item1Votes >= submission.Item2Votes ? submission.ItemTitle1 : submission.ItemTitle2
                },
                new Field
                {
                    field = new FieldName {
                        refName = "System.Description"
                    },
                    value = submission.Item1Votes >= submission.Item2Votes ? submission.ItemDesc1 : submission.ItemDesc2
                }
            };

            switch (submission.WorkItemType)
            {
            case "Product Backlog Item":
                fields.Add(new Field
                {
                    field = new FieldName {
                        refName = "System.State"
                    },
                    value = "New"
                });
                fields.Add(new Field
                {
                    field = new FieldName {
                        refName = "System.Reason"
                    },
                    value = "New backlog item"
                });
                break;

            case "User Story":
                fields.Add(new Field
                {
                    field = new FieldName {
                        refName = "System.State"
                    },
                    value = "New"
                });
                fields.Add(new Field
                {
                    field = new FieldName {
                        refName = "System.Reason"
                    },
                    value = "New"
                });
                break;

            case "Requirements":
                fields.Add(new Field
                {
                    field = new FieldName {
                        refName = "System.State"
                    },
                    value = "New"
                });
                fields.Add(new Field
                {
                    field = new FieldName {
                        refName = "System.Reason"
                    },
                    value = submission.Item1Votes >= submission.Item2Votes ? submission.ItemDesc1 : submission.ItemDesc2
                });
                //todo: more fields required for CMMI
                break;
            }
            workItem.fields = fields.ToArray();
            return(workItem);
        }