private void ItemRenamed([NotNull] object sender, [NotNull] ItemUri itemuri, [NotNull] string newname)
        {
            Debug.ArgumentNotNull(sender, nameof(sender));
            Debug.ArgumentNotNull(itemuri, nameof(itemuri));
            Debug.ArgumentNotNull(newname, nameof(newname));

            if (validationIssues == null)
            {
                return;
            }

            var changed = false;

            for (var index = validationIssues.Count - 1; index >= 0; index--)
            {
                var issue = validationIssues[index];
                if (issue.ItemUri != itemuri)
                {
                    continue;
                }

                issue.Name = issue.Name.Left(issue.Name.LastIndexOf('/')) + '/' + newname;
                changed    = true;
            }

            if (!changed)
            {
                return;
            }

            Issues.Items.Clear();
            RenderIssues(validationIssues);
            Issues.FilterTreeViewItems(filterText, GetHeaderText);
        }
        private void ItemDeleted([NotNull] object sender, [NotNull] ItemUri itemuri)
        {
            Debug.ArgumentNotNull(sender, nameof(sender));
            Debug.ArgumentNotNull(itemuri, nameof(itemuri));

            if (validationIssues == null)
            {
                return;
            }

            var changed = false;

            for (var index = validationIssues.Count - 1; index >= 0; index--)
            {
                var issue = validationIssues[index];
                if (issue.ItemUri != itemuri)
                {
                    continue;
                }

                validationIssues.Remove(issue);
                changed = true;
            }

            if (!changed)
            {
                return;
            }

            Issues.Items.Clear();
            RenderIssues(validationIssues);
            Issues.FilterTreeViewItems(filterText, GetHeaderText);
        }
        private void FilterNodesChanged([NotNull] object sender, [NotNull] EventArgs e)
        {
            Debug.ArgumentNotNull(sender, nameof(sender));
            Debug.ArgumentNotNull(e, nameof(e));

            filterText = Filter.Text;

            Issues.FilterTreeViewItems(filterText, GetHeaderText);
        }
        private void LoadIssues([NotNull] string response)
        {
            Debug.ArgumentNotNull(response, nameof(response));

            string nextItemId;

            var issues = Parse(Source.DatabaseUri, response, out nextItemId);

            RenderIssues(issues);

            Issues.FilterTreeViewItems(filterText, GetHeaderText);

            validationIssues.AddRange(issues);

            if (!string.IsNullOrEmpty(nextItemId))
            {
                NextItemId = new ItemUri(Source.DatabaseUri, new ItemId(new Guid(nextItemId)));
            }
            else
            {
                NextItemId = ItemUri.Empty;
            }
        }