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);
        }
Beispiel #2
0
        public static IssueSummary FromCodeIssue(ProjectFile file, BaseCodeIssueProvider provider, CodeIssue codeIssue)
        {
            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 issueSummary = new IssueSummary {
                IssueDescription    = codeIssue.Description,
                Region              = codeIssue.Region,
                ProviderTitle       = topLevelProvider.Title,
                ProviderDescription = topLevelProvider.Description,
                ProviderCategory    = topLevelProvider.Category,
                Severity            = topLevelProvider.GetSeverity(),
                IssueMarker         = codeIssue.IssueMarker,
                File              = file,
                Project           = file.Project,
                InspectorIdString = codeIssue.InspectorIdString
            };

            issueSummary.Actions = codeIssue.Actions.Select(a => new ActionSummary {
//				Batchable = a.SupportsBatchRunning,
//				SiblingKey = a.SiblingKey,
//				Title = a.,
//				Region = a.DocumentRegion,
                IssueSummary = issueSummary
            }).ToList();
            return(issueSummary);
        }
Beispiel #3
0
		public static IssueSummary FromCodeIssue(ProjectFile file, BaseCodeIssueProvider provider, CodeIssue codeIssue)
		{
			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 issueSummary = new IssueSummary {
				IssueDescription = codeIssue.Description,
				Region = codeIssue.Region,
				ProviderTitle = topLevelProvider.Title,
				ProviderDescription = topLevelProvider.Description,
				ProviderCategory = topLevelProvider.Category,
				Severity = topLevelProvider.GetSeverity (),
				IssueMarker = codeIssue.IssueMarker,
				File = file,
				Project = file.Project,
				InspectorIdString = codeIssue.InspectorIdString
			};
			issueSummary.Actions = codeIssue.Actions.Select (a => new ActionSummary {
				Batchable = a.SupportsBatchRunning,
				SiblingKey = a.SiblingKey,
				Title = a.Title,
				Region = a.DocumentRegion,
				IssueSummary = issueSummary
			}).ToList ();
			return issueSummary;
		}
Beispiel #4
0
 void HandleCodeIssueAdded(object sender, CodeIssueEventArgs e)
 {
     foreach (var issue in e.CodeIssues)
     {
         var summary = IssueSummary.FromCodeIssue(e.File, e.Provider, issue);
         rootGroup.AddIssue(summary);
     }
 }
Beispiel #5
0
        public IssueGroup GetIssueGroup(IssueSummary issue)
        {
            IssueGroup group;
            var        providerCategory = GetGroupingKey(issue);

            if (providerCategory == null)
            {
                return(null);
            }
            if (!groups.TryGetValue(providerCategory, out group))
            {
                group = new IssueGroup(Next, GetGroupName(issue));
                groups.Add(providerCategory, group);
            }
            return(group);
        }
        public IssueGroup GetIssueGroup(IssueGroup parentGroup, IssueSummary issue)
        {
            IssueGroup group;
            var        providerCategory = GetGroupingKey(issue);

            if (providerCategory == null)
            {
                return(null);
            }
            var key = Tuple.Create(parentGroup, providerCategory);

            if (!groups.TryGetValue(key, out group))
            {
                group = new IssueGroup(Next, GetGroupName(issue));
                groups.Add(key, group);
            }
            return(group);
        }
Beispiel #7
0
        bool ProcessIssue(IssueSummary issue, out IssueGroup group)
        {
            bool groupAdded = false;

            group = null;
            if (groupingProvider != null)
            {
                group = groupingProvider.GetIssueGroup(issue);
            }
            if (group == null)
            {
                children.Add(issue);
            }
            else if (!groups.Contains(group))
            {
                groupAdded = true;
                groups.Add(group);
                children.Add(group);
            }
            return(groupAdded);
        }
Beispiel #8
0
        public void AddIssue(IssueSummary issue)
        {
            IssueGroup group      = null;
            bool       groupAdded = false;
            bool       issueAdded = false;

            lock (_lock) {
                if (!allIssues.Contains(issue))
                {
                    IssueCount++;
                    allIssues.Add(issue);
                    ((IIssueTreeNode)issue).VisibleChanged += HandleVisibleChanged;
                    issueAdded = true;
                }
                if (processingEnabled)
                {
                    groupAdded = ProcessIssue(issue, out group);
                }
            }
            if (issueAdded)
            {
                OnTextChanged(new IssueGroupEventArgs(this));
            }
            if (!processingEnabled)
            {
                return;
            }
            if (groupAdded)
            {
                OnChildAdded(new IssueTreeNodeEventArgs(this, group));
            }
            else if (group == null)
            {
                OnChildAdded(new IssueTreeNodeEventArgs(this, issue));
            }
            if (group != null)
            {
                group.AddIssue(issue);
            }
        }
Beispiel #9
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);
        }
		public IssueGroup GetIssueGroup (IssueSummary issue)
		{
			GetIssueGroupCalled = true;
			return Group;
		}
		public IssueGroup GetIssueGroup (IssueGroup parent, IssueSummary issue)
		{
			return null;
		}
Beispiel #12
0
 public IssueGroup GetIssueGroup(IssueSummary issue)
 {
     throw new NotImplementedException();
 }
			public IssueGroup GetIssueGroup (IssueSummary issue)
			{
				throw new NotImplementedException ();
			}
 protected override ProjectFile GetGroupingKey(IssueSummary issue)
 {
     return(issue.File);
 }
Beispiel #15
0
 protected override Project GetGroupingKey(IssueSummary issue)
 {
     return(issue.Project);
 }
 public IssueGroup GetIssueGroup(IssueSummary issue)
 {
     return(null);
 }
Beispiel #17
0
 protected override string GetGroupName(IssueSummary issue)
 {
     return(issue.Severity.ToString());
 }
Beispiel #18
0
		bool ProcessIssue (IssueSummary issue, out IssueGroup group)
		{
			bool groupAdded = false;
			group = null;
			if (groupingProvider != null) {
				group = groupingProvider.GetIssueGroup (issue);
			}
			if (group == null) {
				children.Add (issue);
			} else if (!groups.Contains (group)) {
				groupAdded = true;
				groups.Add (group);
				children.Add (group);
			}
			return groupAdded;
		}
Beispiel #19
0
		public void AddIssue (IssueSummary issue)
		{
			IssueGroup group = null;
			bool groupAdded = false;
			bool issueAdded = false;
			lock (_lock) {
				if (!allIssues.Contains (issue)) {
					IssueCount++;
					allIssues.Add (issue);
					((IIssueTreeNode) issue).VisibleChanged += HandleVisibleChanged;
					issueAdded = true;
				}
				if (processingEnabled) {
					groupAdded = ProcessIssue (issue, out group);
				}
			}
			if (issueAdded) {
				OnTextChanged (new IssueGroupEventArgs (this));
			}
			if (!processingEnabled)
				return;
			if (groupAdded) {
				OnChildAdded (new IssueTreeNodeEventArgs (this, group));
			} else if (group == null) {
				OnChildAdded (new IssueTreeNodeEventArgs (this, issue));
			}
			if (group != null) {
				group.AddIssue (issue);
			}
			
		}
 protected override string GetGroupName(IssueSummary issue)
 {
     return(issue.ProviderTitle);
 }
Beispiel #21
0
 protected override string GetGroupName(IssueSummary issue)
 {
     return(issue.Project.Name);
 }
		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);
		}
Beispiel #23
0
 protected abstract T GetGroupingKey(IssueSummary issue);
Beispiel #24
0
 protected abstract string GetGroupName(IssueSummary issue);
Beispiel #25
0
 protected override Severity GetGroupingKey(IssueSummary issue)
 {
     return(issue.Severity);
 }
 protected override string GetGroupName(IssueSummary issue)
 {
     return(issue.File.FilePath.ToRelative(issue.Project.BaseDirectory));
 }