private async void GatherAllCrpSessionAndPlaybookInTfs()
        {
            string wiql = @"Select [System.Id] FROM WorkItems WHERE [System.WorkItemType] = 'CRP Session' OR [System.WorkItemType] = 'Playbook'";

            WiqlQuery query = new WiqlQuery
            {
                query = wiql
            };

            var patchValue = new StringContent(JsonConvert.SerializeObject(query), Encoding.UTF8, "application/json");

            var requestUri = "/APHP/" + _project + "/_apis/wit/wiql?api-version=3.0";
            var method     = new HttpMethod("POST");
            var request    = new HttpRequestMessage(method, requestUri)
            {
                Content = patchValue
            };
            var requestTxt = await request.Content.ReadAsStringAsync();

            _logger.Log(requestTxt);
            var response = await _client.SendAsync(request);

            string responseTxt = response.Content.ReadAsStringAsync().Result;

            _logger.Log(responseTxt);

            if (response.IsSuccessStatusCode)
            {
                string workItem = await response.Content.ReadAsStringAsync();

                JObject jo = JObject.Parse(workItem);

                foreach (JToken item in jo["workItems"])
                {
                    string currName = await GetWorkItemName(Convert.ToInt32(item["id"]));

                    _dictionary[currName] = Convert.ToInt32(item["id"]);
                }
            }
        }
示例#2
0
        public async Task <List <ContractRequirement> > GatherAllContractRequirements(List <ContractRequirement> requirements)
        {
            List <ContractRequirement> res = new List <ContractRequirement>();

            Dictionary <int, ContractRequirement> requirementMapping = new Dictionary <int, ContractRequirement>();

            foreach (ContractRequirement requirement in requirements)
            {
                requirementMapping[requirement.RequirementID] = requirement;
            }

            string wiql = @"Select [System.Id] FROM WorkItems WHERE [System.WorkItemType] = 'Contract Requirement' AND 
([System.Title] CONTAINS 'OPSS' OR [System.Title] CONTAINS 'PLMS')";

            WiqlQuery query = new WiqlQuery
            {
                query = wiql
            };

            var patchValue = new StringContent(JsonConvert.SerializeObject(query), Encoding.UTF8, "application/json");

            var requestUri = "/APHP/" + _project + "/_apis/wit/wiql?api-version=3.0";
            var method     = new HttpMethod("POST");
            var request    = new HttpRequestMessage(method, requestUri)
            {
                Content = patchValue
            };
            var requestTxt = await request.Content.ReadAsStringAsync();

            _logger.Log(requestTxt);
            var response = await _client.SendAsync(request);

            string responseTxt = response.Content.ReadAsStringAsync().Result;

            _logger.Log(responseTxt);

            if (response.IsSuccessStatusCode)
            {
                string workItem = await response.Content.ReadAsStringAsync();

                JObject jo = JObject.Parse(workItem);

                using (var progress = new ProgressBar())
                {
                    JArray items = (JArray)jo["workItems"];
                    int    count = items.Count;

                    int currCount = 1;

                    Console.Write("Gathering all Contract Requirements... ");
                    foreach (JToken currWorkItem in jo["workItems"])
                    {
                        progress.Report((double)currCount / (double)count);

                        int currentId = Convert.ToInt32(currWorkItem["id"]);
                        if (requirementMapping.ContainsKey(currentId))
                        {
                            ContractRequirement currContractRequirement = requirementMapping[currentId];
                            currContractRequirement = GatherSingleContractRequirement(currContractRequirement).Result;

                            res.Add(currContractRequirement);
                        }

                        currCount += 1;
                    }

                    Console.WriteLine();
                }
            }

            return(res);
        }