void AddIssue(ProjectFile file, BaseCodeIssueProvider provider, CodeIssue r)
        {
            var topLevelProvider = (provider as CodeIssueProvider) ?? provider.Parent;

            if (topLevelProvider == null)
            {
                throw new ArgumentException("must be a CodeIssueProvider or a BaseCodeIssueProvider with Parent != null", "provider");
            }
            var issue = new IssueSummary {
                IssueDescription    = r.Description,
                Region              = r.Region,
                ProviderTitle       = topLevelProvider.Title,
                ProviderDescription = topLevelProvider.Description,
                ProviderCategory    = topLevelProvider.Category,
                Severity            = topLevelProvider.GetSeverity(),
                File              = file,
                Project           = file.Project,
                InspectorIdString = r.InspectorIdString
            };

            issue.Actions = r.Actions.Select(a => new ActionSummary {
                Batchable    = a.SupportsBatchRunning,
                SiblingKey   = a.SiblingKey,
                Title        = a.Title,
                Region       = a.DocumentRegion,
                IssueSummary = issue
            }).ToList();
            IssueSink.AddIssue(issue);
        }
Exemple #2
0
 public MachineStorage()
 {
     sink  = new IssueSink("MachineStorage");
     store = new Lazy <MultiFolderStorage>(() =>
                                           new MultiFolderStorage("MachineStorage", "file", sink,
                                                                  GetMachineWideFolders().ToArray(), FolderOptions.CreateIfMissing));
 }
Exemple #3
0
        public static Node FromXmlFragment(string xml, IssueSink sink)
        {
            NameTable nt = new NameTable();

            XmlNamespaceManager nsmanager = new XmlNamespaceManager(nt);
            XmlParserContext    context   =
                new XmlParserContext(nt, nsmanager, "elem", XmlSpace.None, System.Text.Encoding.UTF8);
            XmlTextReader reader = new XmlTextReader(xml, XmlNodeType.Element, context);


            Node n = new Node(new XmlDocument().ReadNode(reader) as XmlElement, sink);

            reader.Close();
            return(n);
        }
Exemple #4
0
        [Row("<resizEr><DiskCACHE aTTr='valUE' /></resizEr>", "diskCache.attr", "valUE")] //Verify case-insensitivity
        public void TestCachedQueryAttr(string xml, string selector, string expectedValue)
        {
            IssueSink s = new IssueSink("XmlTests");
            Node      n = Node.FromXmlFragment(xml, s); //Node, all start and end tags must match in case. XML rules.

            Assert.AreEqual(expectedValue, n.queryAttr(selector));
            IEnumerable <IIssue> issues = s.GetIssues();

            if (issues != null)
            {
                foreach (IIssue issue in issues)
                {
                    Debug.Write(issue.ToString());
                }
            }
        }
Exemple #5
0
        void AddIssue(ProjectFile file, CodeIssueProvider provider, CodeIssue r)
        {
            var issue = new IssueSummary {
                IssueDescription    = r.Description,
                Region              = r.Region,
                ProviderTitle       = provider.Title,
                ProviderDescription = provider.Description,
                ProviderCategory    = provider.Category,
                Severity            = provider.GetSeverity(),
                IssueMarker         = provider.IssueMarker,
                File              = file,
                Project           = file.Project,
                InspectorIdString = r.InspectorIdString
            };

            issue.Actions = r.Actions.Select(a => new ActionSummary {
                Batchable    = a.SupportsBatchRunning,
                SiblingKey   = a.SiblingKey,
                Title        = a.Title,
                Region       = a.DocumentRegion,
                IssueSummary = issue
            }).ToList();
            IssueSink.AddIssue(issue);
        }