protected virtual ICollection <string> FilesToImport(object parameter)
        {
            using (var dialog = _dialogFactory.CreateOpenFileDialog())
            {
                dialog.AddExtension       = true;
                dialog.AutoUpgradeEnabled = true;
                dialog.CheckFileExists    = true;
                dialog.CheckPathExists    = true;
                dialog.Multiselect        = true;
                dialog.ShowHelp           = false;
                dialog.Title  = DialogsTitle;
                dialog.Filter =
                    $"{RubberduckUI.ImportCommand_OpenDialog_Filter_VBFiles} ({FilterExtension})|{FilterExtension}|" +
                    $"{RubberduckUI.ImportCommand_OpenDialog_Filter_AllFiles}, (*.*)|*.*";

                if (dialog.ShowDialog() != DialogResult.OK)
                {
                    return(new List <string>());
                }

                var fileNames      = dialog.FileNames;
                var fileExtensions = fileNames.Select(Path.GetExtension);
                if (fileExtensions.Any(fileExt => !ImportableExtensions.Contains(fileExt)))
                {
                    NotifyUserAboutAbortDueToUnsupportedFileExtensions(fileNames);
                    return(new List <string>());
                }

                return(fileNames);
            }
        }
        //TODO: Gather all conflicts and report them in one error dialog instead of reporting them one at a time.
        private void NotifyUserAboutAbortDueToUnsupportedFileExtensions(IEnumerable <string> fileNames)
        {
            var firstUnsupportedFile = fileNames.First(filename => !ImportableExtensions.Contains(Path.GetExtension(filename)));
            var unsupportedFileName  = Path.GetFileName(firstUnsupportedFile);
            var message = string.Format(RubberduckUI.ImportCommand_UnsupportedFileExtensions, unsupportedFileName);

            MessageBox.NotifyWarn(message, DialogsTitle);
        }