GetStatusesFromMetadata(ProjectFilter projectFilter) { var json = _jiraContext.Api.GetStatusesByProject().Result; var statusesByProjects = json .ToObject <List <StatusesByProject> >() .Where(s => projectFilter.IncludesProject(s.Project)); foreach (var project in statusesByProjects) { foreach (var type in project.StatusesByType) { var categories = type.Statuses .Select(s => (name: s.Name, cat: s.StatusCategory.Name)) .ToLookup(s => s.cat, s => s.name); foreach (var category in categories) { foreach (var status in category) { yield return(project.Project, type.Name, category.Key, status); } } } } }
private IEnumerable <(string project, string issueType, string description)> GetIssueTypesFromMetadata(ProjectFilter projectFilter) { var projects = _jiraContext.Api.GetProjects().Result .ToObject <List <Project> >() .Where(p => projectFilter.IncludesProject(p.Key)); foreach (var project in projects) { foreach (var type in project.IssueTypes) { yield return(project.Key, type.Name, type.Description); } } }