public override List <ProjectDescriptor> GetProjectDescriptions() { List <ProjectDescriptor> result = new List <ProjectDescriptor>(); Task <ProjectSearchResponse> task = _jiraClient.GetJiraProjectsAsync(); task.Wait(); ProjectSearchResponse projectSearchResponse = task.Result; if (projectSearchResponse != null) { foreach (Project jiraProject in projectSearchResponse.Values) { string projectID = JiraGuidConverter.ConvertToSpecIfGuid(jiraProject.Self, jiraProject.ID); ProjectDescriptor projectDescriptor = new ProjectDescriptor { ID = projectID, Title = new List <MultilanguageText> { new MultilanguageText(jiraProject.Name) }, Generator = _url, GeneratorVersion = "Jira REST API 2", }; result.Add(projectDescriptor); } } return(result); }
public override Resource SaveResource(Resource resource, string projectID = null) { Resource result = null; if (projectID != null) { if (_dataReader is SpecIfJiraDataReader) { SpecIfJiraDataReader dataReader = _dataReader as SpecIfJiraDataReader; Project jiraProject = dataReader.GetJiraProjectInfo(projectID); string jiraTypeID = GetJiraTypeFromSpecIfResource(resource, projectID); if (jiraProject != null && jiraTypeID != null) { string title = resource.GetPropertyValue("dcterms:title", _metadataReader); string description = resource.GetPropertyValue("dcterms:description", _metadataReader); SpecIfToJiraConverter specIfToJiraConverter = new SpecIfToJiraConverter(); Issue newIssue = new Issue { Fields = new Fields { Project = new Project { ID = jiraProject.ID }, Summary = title, Description = specIfToJiraConverter.ConvertDescription(description), IssueType = new IssueType { ID = jiraTypeID } } }; Task <Issue> issueCreateTask = _jiraClient.CreateJiraIssueAsync(newIssue); issueCreateTask.Wait(); Issue newJiraResultIssue = issueCreateTask.Result; if (newJiraResultIssue != null) { string newIssueGuid = JiraGuidConverter.ConvertToSpecIfGuid(newJiraResultIssue.Self, newJiraResultIssue.ID); result = _dataReader.GetResourceByKey(new Key(newIssueGuid)); } } } } return(result); }
private void InitializeProjectInformations() { Debug.Write("Initializing Jira project informations..."); _projectInformations = new Dictionary <string, Project>(); Task <ProjectSearchResponse> projectsTask = _jiraClient.GetJiraProjectsAsync(); projectsTask.Wait(); ProjectSearchResponse projectSearchResponse = projectsTask.Result; if (projectSearchResponse != null) { foreach (Project project in projectSearchResponse.Values) { Task <Project> projectTask = _jiraClient.GetJiraProjectByKeyAsync(project.Key); projectTask.Wait(); Project projectInfo = projectTask.Result; if (projectInfo != null) { string specIfProjectID = JiraGuidConverter.ConvertToSpecIfGuid(projectInfo.Self, projectInfo.ID); _projectInformations.Add(specIfProjectID, projectInfo); } } } _statusInformations = new List <Jira3.Status>(); Task <List <Jira3.Status> > statusTask = _jiraClient.GetStatusesAsync(); statusTask.Wait(); if (statusTask.Result != null) { _statusInformations = statusTask.Result; } }
public override Resource GetResourceByKey(Key key) { Resource result = null; string issueKey = JiraGuidConverter.GetIssueIdFromSpecIfID(_url, key.ID); Jira3.Issue response; try { Task <Jira3.Issue> task = _jiraClient.GetJiraIssueAsync(issueKey); task.Wait(); response = task.Result; //TODO: Get specific revision JiraToSpecIfConverter jiraToSpecIfConverter = new JiraToSpecIfConverter(_metadataReader, _statusInformations); result = jiraToSpecIfConverter.ConvertToResource(response); } catch (Exception exception) { Debug.WriteLine(exception); foreach (Resource resource in ProjectRootResources) { if (resource.ID == key.ID && resource.Revision == key.Revision) { result = resource; break; } } } return(result); }
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); }