Esempio n. 1
0
        private bool IsItemVisible([NotNull] ValidationDescriptor item)
        {
            Debug.ArgumentNotNull(item, nameof(item));

            if (HiddenItems.Contains(item.GetKey()))
            {
                return(false);
            }

            switch (item.Severity)
            {
            case SeverityLevel.Error:
                if (!ShowErrors)
                {
                    return(false);
                }

                break;

            case SeverityLevel.Warning:
                if (!ShowWarnings)
                {
                    return(false);
                }

                break;

            case SeverityLevel.Suggestion:
                if (!ShowSuggestions)
                {
                    return(false);
                }

                break;

            case SeverityLevel.Hint:
                if (!ShowHints)
                {
                    return(false);
                }

                break;
            }

            if (!string.IsNullOrEmpty(FilterText))
            {
                var filtered = item.Title.IsFilterMatch(FilterText);
                filtered |= item.Problem.IsFilterMatch(FilterText);
                filtered |= item.Solution.IsFilterMatch(FilterText);

                if (!filtered)
                {
                    return(false);
                }
            }

            return(true);
        }
Esempio n. 2
0
        private void ParseValidationElement([NotNull] XElement element)
        {
            Debug.ArgumentNotNull(element, nameof(element));

            validations.Clear();

            foreach (var item in element.Elements())
            {
                var severity = SeverityLevel.None;

                var severityText = item.GetAttributeValue("severity").ToLowerInvariant();
                switch (severityText)
                {
                case "error":
                    severity = SeverityLevel.Error;
                    break;

                case "warning":
                    severity = SeverityLevel.Warning;
                    break;

                case "suggestion":
                    severity = SeverityLevel.Suggestion;
                    break;

                case "hint":
                    severity = SeverityLevel.Hint;
                    break;
                }

                var record = new ValidationDescriptor(item.GetAttributeValue("name"), severity, item.GetAttributeValue("category"), item.GetElementValue("title"), item.GetElementValue("problem"), item.GetElementValue("solution"))
                {
                    ExternalLink = item.GetAttributeValue("link")
                };

                var id = item.GetAttributeValue("item");
                if (!string.IsNullOrEmpty(id))
                {
                    var parts = id.Split('/');

                    var databaseUri    = new DatabaseUri(Context.Site, new DatabaseName(parts[0]));
                    var itemUri        = new ItemUri(databaseUri, new ItemId(Guid.Parse(parts[1])));
                    var itemVersionUri = new ItemVersionUri(itemUri, new Language(parts[2]), new Data.Version(int.Parse(parts[3])));

                    record.ItemUri  = itemVersionUri;
                    record.ItemPath = item.GetAttributeValue("itempath");
                }

                validations.Add(record);
            }

            RenderValidations();
        }
Esempio n. 3
0
        public void Hide(ValidationDescriptor item)
        {
            Assert.ArgumentNotNull(item, nameof(item));

            var key = item.GetKey();

            if (HiddenItems.Contains(key))
            {
                return;
            }

            HiddenItems += key;

            var profileName = GetProfileName();

            AppHost.Settings.Set("Validation\\Site\\Hidden", profileName, HiddenItems);
        }
Esempio n. 4
0
        public void Disable(ValidationDescriptor item)
        {
            Assert.ArgumentNotNull(item, nameof(item));

            var profileName = GetProfileName();
            var key         = "[" + item.Name + "]";

            var inactive = AppHost.Settings.GetString(ValidationSiteProfiles, profileName, string.Empty);

            if (inactive.Contains(key))
            {
                return;
            }

            inactive += key;

            AppHost.Settings.Set(ValidationSiteProfiles, profileName, inactive);
        }