public AccumulatingIssueConsumer(ITextSnapshot analysisSnapshot, string analysisFilePath, OnIssuesChanged onIssuesChangedCallback, IAnalysisIssueVisualizationConverter issueToIssueVisualizationConverter) { this.analysisSnapshot = analysisSnapshot ?? throw new ArgumentNullException(nameof(analysisSnapshot)); this.analysisFilePath = analysisFilePath ?? throw new ArgumentNullException(nameof(analysisFilePath)); this.onIssuesChanged = onIssuesChangedCallback ?? throw new ArgumentNullException(nameof(onIssuesChangedCallback)); this.issueToIssueVisualizationConverter = issueToIssueVisualizationConverter ?? throw new ArgumentNullException(nameof(issueToIssueVisualizationConverter)); allIssues = new List <IAnalysisIssueVisualization>(); }
public void PostUpdate(IssueUpdateData Update) { bool bUpdatedIssues; lock (LockObject) { PendingUpdates.Add(Update); bUpdatedIssues = ApplyPendingUpdate(Issues, Update); } RefreshEvent.Set(); if (bUpdatedIssues) { OnIssuesChanged?.Invoke(); } }