Итак, я только начал работать с linq, а также с использованием лямбда-выражений. Я столкнулся с небольшой ошибкой, пытаясь получить некоторые данные, которые я хочу. Этот метод должен возвращать список всех проектов, которые открыты или выполняются из Jira
Вот код
public static List<string> getOpenIssuesListByProject(string _projectName)
{
JiraSoapServiceService jiraSoapService = new JiraSoapServiceService();
string token = jiraSoapService.login(DEFAULT_UN, DEFAULT_PW);
string[] keys = { getProjectKey(_projectName) };
RemoteStatus[] statuses = jiraSoapService.getStatuses(token);
var desiredStatuses = statuses.Where(x => x.name == "Open" || x.name == "In Progress")
.Select(x=>x.id);
RemoteIssue[] AllIssues = jiraSoapService.getIssuesFromTextSearchWithProject(token, keys, "", 99);
IEnumerable<RemoteIssue> openIssues = AllIssues.Where(x=>
{
foreach (var v in desiredStatuses)
{
if (x.status == v)
return true;
else
return false;
}
return false;
});
return openIssues.Select(x => x.key).ToList();
}
Сейчас это только те проблемы, которые "Открыты", и, кажется, пропускают те, которые "В процессе".
Мой вопрос: во-первых, почему я получаю только "открытые" вопросы, а во-вторых, есть ли лучший способ сделать это?
Причина, по которой я сначала получаю все статусы, состоит в том, что проблема хранит только этот статус ID, поэтому я получаю все статусы, получаю идентификаторы, которые соответствуют "Open" и "In Progress", а затем сопоставляю эти номера ID с выдает поле состояния.