private XmlVerifiedDataset CreateXmlVerifiedDataset([NotNull] Dataset dataset, bool reportVerifiedConditions, bool reportIssues, bool reportParameters, bool reportDescription) { List <QualitySpecificationElement> qualitySpecificationElements; if (!_qualitySpecificationElementsByDataset.TryGetValue( dataset, out qualitySpecificationElements)) { qualitySpecificationElements = new List <QualitySpecificationElement>(); } var result = new XmlVerifiedDataset(dataset.Name, Escape(dataset.Model.Name)); if (reportVerifiedConditions) { foreach (XmlVerifiedQualityCondition verifiedCondition in GetVerifiedQualityConditions(qualitySpecificationElements, reportIssues, reportParameters, reportDescription)) { result.AddVerifiedCondition(verifiedCondition); } } int warningCount; int errorCount; int stopErrorCount; GetIssueCounts(qualitySpecificationElements, out warningCount, out errorCount, out stopErrorCount); result.ErrorCount = errorCount; result.WarningCount = warningCount; result.StopErrorCount = stopErrorCount; return(result); }
public XmlVerificationReport CreateReport( [CanBeNull] string qualitySpecificationName, [CanBeNull] IEnumerable <KeyValuePair <string, string> > properties = null) { Assert.False(_verificationOngoing, "verification not finished"); // evaluate options // where issues are reported: bool reportIssuesPerQualityCondition = (_issueContexts & IssueReportingContexts.VerifiedQualityCondition) != 0; bool reportIssuesPerDataset = (_issueContexts & IssueReportingContexts.Dataset) != 0; bool reportQualityConditionsWithIssues = (_issueContexts & IssueReportingContexts.QualityConditionWithIssues) != 0; // where conditions are reported: bool reportConditionsInSummary = (_verifiedConditionContexts & VerifiedConditionContexts.Summary) != 0; bool reportConditionsPerDataset = reportIssuesPerDataset || (_verifiedConditionContexts & VerifiedConditionContexts.Dataset) != 0; var result = new XmlVerificationReport { QualitySpecification = Escape(qualitySpecificationName), StartTime = _verificationStartTime, EndTime = _verificationEndTime, ProcessingTimeSeconds = (double)_stopWatch.ElapsedMilliseconds / 1000, Version = ReflectionUtils.GetAssemblyVersionString( Assembly.GetExecutingAssembly()) }; if (properties != null) { result.Properties = properties.Select(p => new XmlNameValuePair { Name = p.Key, Value = p.Value }) .ToList(); } if (_areaOfInterest != null) { if (!_areaOfInterest.IsEmpty) { result.TestExtent = new Xml2DEnvelope(_areaOfInterest.Extent); } result.AreaOfInterest = new XmlAreaOfInterest(_areaOfInterest); } if (reportConditionsInSummary) { foreach (XmlVerifiedQualityCondition verifiedCondition in GetVerifiedQualityConditions(_verifiedQualityConditions, reportIssuesPerQualityCondition, reportParameters: true, reportDescription: true) .OrderBy(qc => qc.Name)) { result.AddVerifiedCondition(verifiedCondition); } } foreach (Dataset verifiedDataset in _verifiedDatasets.OrderBy(d => d.Name)) { bool reportParameters = !reportConditionsInSummary; bool reportDescription = !reportConditionsInSummary; XmlVerifiedDataset xmlVerifiedDataset = CreateXmlVerifiedDataset(verifiedDataset, reportConditionsPerDataset, reportIssuesPerDataset, reportParameters, reportDescription); result.AddVerifiedDataset(xmlVerifiedDataset); } if (reportQualityConditionsWithIssues) { foreach (XmlVerifiedQualityCondition verifiedCondition in GetVerifiedQualityConditions(_verifiedQualityConditions, reportIssues: true, reportParameters: false, reportDescription: true) .OrderBy(qc => qc.Name)) { if (verifiedCondition.IssueCount > 0) { result.AddConditionWithIssues(verifiedCondition); } } } if (_exceptionStatistics != null) { result.ExceptionCount = _exceptionStatistics.ExceptionCount; result.ExceptionStatistics = CreateExceptionStatistics( _exceptionStatistics, _verifiedQualityConditions); } int warningCount; int errorCount; int stopErrorCount; GetIssueCounts(_verifiedQualityConditions, out warningCount, out errorCount, out stopErrorCount); result.WarningCount = warningCount; result.ErrorCount = errorCount; result.StopErrorCount = stopErrorCount; result.Cancelled = _cancelled; return(result); }
public void AddVerifiedDataset([NotNull] XmlVerifiedDataset xmlVerifiedDataset) { _verifiedDatasets.Add(xmlVerifiedDataset); }