public async Task <List <IdentityRef> > GetTestResultOwnersAsync(IList <TestCaseResult> resultIds) { using (new PerformanceMeasurementBlock("Fetching Test result owners", _logger)) { var fieldsToFetch = new List <string> { FieldNameConstants.Owner }; List <List <TestCaseResult> > chunks = resultIds.Split(MaxItemsSupported); IList <TestCaseResult>[] chunkResults = await chunks.ParallelSelectAsync(async chunk => { // TODO - retry TestResultsQuery resultQuery = // RetryHelper.Retry(() => await _tcmClient.GetTestResultsByQueryAsync(_emailReportConfig.PipelineConfiguration.ProjectId, new TestResultsQuery { Fields = fieldsToFetch, Results = chunk }); return(resultQuery.Results); }); return(chunkResults.Merge() .Where(tcr => IdentityRefHelper.IsValid(tcr.Owner)) .Select(tcr => tcr.Owner) .DistinctBy(identity => IdentityRefHelper.GetUniqueName(identity).ToLowerInvariant()) .ToList()); } }
private List <string> GetFailedTestOwners() { var mailAddresses = new List <string>(); var failedTestOwners = _reportData.FailedTestOwners; failedTestOwners.ForEach(identity => { var mailAddress = IdentityRefHelper.GetMailAddress(identity); if (!string.IsNullOrWhiteSpace(mailAddress)) { mailAddresses.Add(mailAddress); } }); _logger.LogInformation($"Failed Test owners - {string.Join(",", mailAddresses)}"); return(mailAddresses); }