private void MenuItemCallback()

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;
            }
        }