in src/Sarif.Viewer.VisualStudio.Core/ErrorList/ErrorListCommand.cs [187:235]
private void MenuItemCallback(object sender, EventArgs e)
{
ThreadHelper.ThrowIfNotOnUIThread();
var menuCommand = (MenuCommand)sender;
// Clear Sarif Result command should be function no matter if any selected item
IEnumerable<SarifErrorListItem> selectedItems = this.selectionService.SelectedItems;
if ((selectedItems == null || !selectedItems.Any())
&& menuCommand.CommandID.ID != ClearSarifResultsCommandId)
{
return;
}
switch (menuCommand.CommandID.ID)
{
case ClearSarifResultsCommandId:
ErrorListService.CleanAllErrors();
break;
case UsefulResultCommandId:
var feedback = new FeedbackModel(
selectedItems.GetCombinedRuleIds(),
selectedItems.GetCombinedToolNames(),
selectedItems.GetCombinedToolVersions(),
selectedItems.GetCombinedSnippets(),
FeedbackType.UsefulResult,
null,
CodeAnalysisResultManager.Instance.GetPartitionedLog(selectedItems));
ErrorListService.SendFeedback(feedback);
break;
case FalsePositiveResultCommandId:
case NonActionableResultCommandId:
case LowValueResultCommandId:
case NonShippingCodeResultCommandId:
case OtherResultCommandId:
DisplayFeedbackDialog(menuCommand.CommandID.ID, selectedItems);
break;
case SuppressResultCommandId:
SuppressResults(selectedItems);
break;
default:
// Unrecognized command; do nothing.
break;
}
}