public async Task <TlsRptPollResult> Process(string domain) { TlsRptRecordInfos tlsRptRecordInfos = await _dnsClient.GetTlsRptRecords(domain); if (!_config.AllowNullResults && (tlsRptRecordInfos.HasError || tlsRptRecordInfos.RecordsInfos.TrueForAll(x => string.IsNullOrWhiteSpace(x.Record)))) { throw new TlsRptPollerException($"Unable to retrieve TLS-RPT records for {domain}."); } if (tlsRptRecordInfos.HasError) { return(new TlsRptPollResult(domain, tlsRptRecordInfos.Error)); } EvaluationResult <TlsRptRecords> parsingResult = _parser.Parse(tlsRptRecordInfos); EvaluationResult <TlsRptRecords> evaluationResult = await _evaluator.Evaluate(parsingResult.Item); return(new TlsRptPollResult(evaluationResult.Item, parsingResult.Errors.Concat(evaluationResult.Errors).ToList())); }