I have method that run another private method in foreach
Here is main method
public async Task<IList<IssueResponse>> GetIssuesAsync(string query, string email)
{
var fields =
$@"key,summary,description,status,issuetype,updated,created,attachment,assignee,reporter,
{IssueFields.RequestType}, {IssueFields.ApproversField},
{IssueFields.MinimumNotificationsReportersField}, {IssueFields.MinimumNotificationsUsersField},
{IssueFields.StandardNotificationsReportersField}, {IssueFields.StandardNotificationsUsersField}, {IssueFields.StandardNotificationsAssigneeField},
{IssueFields.FullNotificationsReportersField}, {IssueFields.FullNotificationsUsersField}, {IssueFields.FullNotificationsAssigneeField}";
var expand = "renderedFields";
var queryParams = new Dictionary<string, string>
{
{ "jql", query },
{ "maxResults", "100" },
{ "validateQuery", "false" },
{ "fields", fields },
{ "expand", expand }
};
var request = this.ConfigureGetRequest("search", queryParams: queryParams);
var result = await this.SendRequestAsync<IssueListResponse>(request);
var issues = result.IssueList;
foreach (var item in issues)
{
item.Fields.Attachment = await GetAttachments(item.Key, email);
}
return issues;
}
As you see in foreach I have call for another method
Here it’s code
private async Task<List<IssueAttachment>> GetAttachments(string issueKey, string email)
{
var attachmentRequest = this.ConfigureGetRequest(issueKey, this.settings.GetAttachmentsPathUrl).AddXClientHeader(email);;
return await this.SendRequestAsync<List<IssueAttachment>>(
attachmentRequest,
new List<HttpStatusCode> { HttpStatusCode.OK });
}
How I can use Task.WhenAll
to get attachment in parallel?