private static XmlExceptionStatistics CreateExceptionStatistics( [NotNull] IExceptionStatistics statistics, [NotNull] IEnumerable <QualitySpecificationElement> verifiedQualityConditions) { var result = new XmlExceptionStatistics { DataSource = WorkspaceUtils.GetWorkspaceDisplayText( statistics.Workspace), ExceptionCount = statistics.ExceptionCount, ExceptionObjectCount = statistics.ExceptionObjectCount, InactiveExceptionObjectCount = statistics.InactiveExceptionObjectCount, UnusedExceptionObjectCount = statistics.UnusedExceptionObjectCount, ExceptionObjectsUsedMultipleTimesCount = statistics.ExceptionObjectsUsedMultipleTimesCount }; foreach (QualitySpecificationElement element in verifiedQualityConditions) { IQualityConditionExceptionStatistics conditionStatistics = statistics.GetQualityConditionStatistics( element.QualityCondition); if (conditionStatistics != null) { result.AddQualityConditionExceptions( CreateQualityConditionExceptionStatistics(conditionStatistics)); } } foreach (ITable table in statistics.TablesWithNonUniqueKeys) { result.AddTableWithNonUniqueKeys( CreateTableWithNonUniqueKeys(table, statistics.GetNonUniqueKeys(table))); } return(result); }
private static void LogElements( [NotNull] IEnumerable <QualitySpecificationElement> qualitySpecificationElements, [NotNull] IssueProcessor issueProcessor, [CanBeNull] IExceptionStatistics exceptionStatistics) { foreach (QualitySpecificationElement element in qualitySpecificationElements) { QualityCondition qualityCondition = element.QualityCondition; int exceptionCount; int issueCount = issueProcessor.GetIssueCount(qualityCondition, out exceptionCount); var sb = new StringBuilder(qualityCondition.Name); if (issueCount > 0) { sb.AppendFormat(element.AllowErrors ? " - warnings: {0}" : " - errors: {0}", issueCount); } if (exceptionCount > 0) { sb.AppendFormat(" - exceptions: {0}", exceptionCount); } if (issueCount > 0) { _msg.Warn(sb.ToString()); } else { _msg.Info(sb.ToString()); } if (exceptionStatistics != null) { IQualityConditionExceptionStatistics conditionStatistics = exceptionStatistics.GetQualityConditionStatistics(qualityCondition); if (conditionStatistics != null) { if (conditionStatistics.UnknownTableNames.Count > 0) { using (_msg.IncrementIndentation()) { _msg.Warn( "Exception objects were ignored for this condition due to unknown table names:"); foreach (string tableName in conditionStatistics.UnknownTableNames) { _msg.WarnFormat( "- {0}: used in {1} exception object(s)", tableName, conditionStatistics .GetExceptionObjectsInvolvingUnknownTableName( tableName).Count); } } } } } } }