示例#1
0
        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);
        }
示例#2
0
        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);
 }