internal HtmlDataQualityCategory(
            [CanBeNull] DataQualityCategory category,
            [CanBeNull] HtmlDataQualityCategoryOptions options,
            [NotNull] HtmlDataQualityCategoryComparer categoryComparer,
            [NotNull] HtmlQualitySpecificationElementComparer elementComparer)
        {
            Assert.ArgumentNotNull(categoryComparer, nameof(categoryComparer));
            Assert.ArgumentNotNull(elementComparer, nameof(elementComparer));

            _category         = category;
            _categoryComparer = categoryComparer;
            _elementComparer  = elementComparer;

            if (category == null)
            {
                _isUndefinedCategory = true;
                _uniqueName          = "<nocategory>";

                _name         = string.Empty;
                _abbreviation = string.Empty;
            }
            else
            {
                _isUndefinedCategory = false;
                _uniqueName          = category.GetQualifiedName("||");

                _name         = GetDisplayName(category, options);
                _abbreviation = category.Abbreviation ?? string.Empty;
            }
        }
        private static HtmlDataQualityCategory AddDataQualityCategory(
            [CanBeNull] DataQualityCategory category,
            [NotNull] HtmlDataQualityCategoryComparer categoryComparer,
            [NotNull] HtmlQualitySpecificationElementComparer elementComparer,
            [NotNull] IDictionary <string, HtmlDataQualityCategory> reportCategories,
            [CanBeNull] IHtmlDataQualityCategoryOptionsProvider optionsProvider = null)
        {
            string key = GetCategoryKey(category);

            HtmlDataQualityCategory result;

            if (reportCategories.TryGetValue(key, out result))
            {
                // already added (including parents)
                return(result);
            }

            HtmlDataQualityCategoryOptions options =
                GetReportCategoryOptions(optionsProvider, category);

            if (category != null && options != null && options.IgnoreCategoryLevel)
            {
                // skip this category level
                result = AddDataQualityCategory(category.ParentCategory,
                                                categoryComparer,
                                                elementComparer,
                                                reportCategories,
                                                optionsProvider);

                reportCategories.Add(key, result);
                return(result);
            }

            result = new HtmlDataQualityCategory(category,
                                                 options,
                                                 categoryComparer,
                                                 elementComparer);
            reportCategories.Add(key, result);

            if (category != null && category.ParentCategory != null)
            {
                HtmlDataQualityCategory parent = AddDataQualityCategory(category.ParentCategory,
                                                                        categoryComparer,
                                                                        elementComparer,
                                                                        reportCategories,
                                                                        optionsProvider);
                if (!parent.IsUndefinedCategory)
                {
                    result.ParentCategory = parent;
                    result.ParentCategory.IncludeSubCategory(result);
                }
            }

            return(result);
        }
Esempio n. 3
0
        private static string GetDisplayName(
            [NotNull] DataQualityCategory category,
            [CanBeNull] HtmlDataQualityCategoryOptions options)
        {
            if (options == null)
            {
                return(category.Name);
            }

            string aliasName = options.AliasName;

            return(StringUtils.IsNotEmpty(aliasName)
                                       ? aliasName
                                       : category.Name);
        }
Esempio n. 4
0
        public HtmlReportDataQualityCategory(
            [CanBeNull] DataQualityCategory category,
            [NotNull] IList <ExceptionCategory> exceptionCategories,
            [CanBeNull] HtmlDataQualityCategoryOptions options,
            [NotNull] HtmlReportDataQualityCategoryComparer categoryComparer,
            [NotNull] HtmlReportQualityConditionComparer qualityConditionComparer,
            [NotNull] HtmlReportIssueGroupComparer issueGroupComparer)
        {
            Assert.ArgumentNotNull(categoryComparer, nameof(categoryComparer));
            Assert.ArgumentNotNull(exceptionCategories, nameof(exceptionCategories));
            Assert.ArgumentNotNull(qualityConditionComparer, nameof(qualityConditionComparer));
            Assert.ArgumentNotNull(issueGroupComparer, nameof(issueGroupComparer));

            _category                 = category;
            _exceptionCategories      = exceptionCategories;
            _categoryComparer         = categoryComparer;
            _qualityConditionComparer = qualityConditionComparer;
            _issueGroupComparer       = issueGroupComparer;

            if (category == null)
            {
                IsUndefinedCategory = true;
                _uniqueName         = "<nocategory>";

                Name         = string.Empty;
                Abbreviation = string.Empty;
                Description  = string.Empty;
            }
            else
            {
                IsUndefinedCategory = false;
                _uniqueName         = category.GetQualifiedName("||");

                Name         = GetDisplayName(category, options);
                Abbreviation = category.Abbreviation ?? string.Empty;
                Description  = category.Description ?? string.Empty;
            }
        }