コード例 #1
0
        private async Task <IssueSearchResponse> GetProjectIssuesAsync(string projectID)
        {
            IssueSearchResponse result = null;

            string jql = "";

            if (projectID != null)
            {
                jql = "project = \"" + projectID + "\" and type in (Requirement, \"Customer Requirement\")";
            }
            else
            {
            }

            result = await _jiraClient.GetIssuesByJQL(jql);

            return(result);
        }
コード例 #2
0
        private async Task <List <Node> > CreateProjectHierarchiesAsync(bool rootNodesOnly, string projectFilter = null)
        {
            List <Node> result = new List <Node>();

            try
            {
                ProjectRootResources = new List <Resource>();

                ProjectSearchResponse projectSearchResponse = await _jiraClient.GetJiraProjectsAsync();



                foreach (Project project in projectSearchResponse.Values)
                {
                    string projectID = JiraGuidConverter.ConvertToSpecIfGuid(project.Self, project.ID);


                    if (projectFilter == null || (projectFilter != null && projectID == projectFilter))
                    {
                        string projectResourceID = "_" + SpecIfGuidGenerator.CalculateSha1Hash(project.Key);

                        Key resourceClass = new Key("RC-Hierarchy", "1.1");

                        Resource projectHierarchyResource = SpecIfDataFactory.CreateResource(resourceClass, _metadataReader);

                        projectHierarchyResource.ID       = projectResourceID;
                        projectHierarchyResource.Revision = "1";

                        projectHierarchyResource.SetPropertyValue("dcterms:title", "Jira Project " + project.Key, _metadataReader);

                        projectHierarchyResource.SetPropertyValue("dcterms:description", project.Name, _metadataReader);


                        ProjectRootResources.Add(projectHierarchyResource);


                        Node projectNode = new Node
                        {
                            ID              = projectResourceID + "_Node",
                            Revision        = "1",
                            IsHierarchyRoot = true,
                            ProjectID       = project.Key,
                            ResourceObject  = new Key(projectHierarchyResource.ID, projectHierarchyResource.Revision)
                        };

                        result.Add(projectNode);

                        if (!rootNodesOnly)
                        {
                            IssueSearchResponse issueSearchResponse = await GetProjectIssuesAsync(project.Key);

                            if (issueSearchResponse != null)
                            {
                                foreach (Issue issue in issueSearchResponse.Issues)
                                {
                                    string issueResourceID = JiraGuidConverter.ConvertToSpecIfGuid(issue.Self, issue.ID);

                                    string issueRevision = SpecIfGuidGenerator.ConvertDateToRevision(issue.Fields.Updated.Value);

                                    Node requirementNode = new Node
                                    {
                                        ID              = issueResourceID + "_Node",
                                        Revision        = "1",
                                        IsHierarchyRoot = false,
                                        ProjectID       = project.Key,
                                        ResourceObject  = new Key(issueResourceID, issueRevision)
                                    };

                                    projectNode.Nodes.Add(requirementNode);
                                }
                            }
                        }
                    }
                }
            }
            catch (Exception exception)
            {
                Debug.WriteLine(exception);
            }

            return(result);
        }