public bool Replace()
        {
            if (mFileReplaceActions == null)
            {
                return(false);
            }

            using (var openFileDlg = new OpenFileDialog())
            {
                var fileTypes = mFileReplaceActions.Keys.ToArray();

                openFileDlg.AutoUpgradeEnabled           = true;
                openFileDlg.CheckPathExists              = true;
                openFileDlg.CheckFileExists              = true;
                openFileDlg.FileName                     = Text;
                openFileDlg.Filter                       = SupportedFileManager.GetFilteredFileFilter(fileTypes);
                openFileDlg.Multiselect                  = false;
                openFileDlg.SupportMultiDottedExtensions = true;
                openFileDlg.Title         = "Select a replacement file";
                openFileDlg.ValidateNames = true;

                if (openFileDlg.ShowDialog() != DialogResult.OK)
                {
                    return(false);
                }

                var fileType = GetCorrectedSupportedFileType(openFileDlg.FilterIndex - 1, openFileDlg.FileName, fileTypes);
                return(Replace(openFileDlg.FileName, fileType));
            }
        }
        public bool Export()
        {
            if (mFileExportActions == null)
            {
                return(false);
            }

            using (var saveFileDlg = new SaveFileDialog())
            {
                var fileTypes = mFileExportActions.Keys.ToArray();

                saveFileDlg.AutoUpgradeEnabled = true;
                saveFileDlg.CheckPathExists    = true;
                saveFileDlg.FileName           = Text.Trim();
                saveFileDlg.Filter             = SupportedFileManager.GetFilteredFileFilter(fileTypes);
                saveFileDlg.OverwritePrompt    = true;
                saveFileDlg.Title         = "Select a file to export to";
                saveFileDlg.ValidateNames = true;

                if (saveFileDlg.ShowDialog() != DialogResult.OK)
                {
                    return(false);
                }

                var fileType = GetCorrectedSupportedFileType(saveFileDlg.FilterIndex - 1, saveFileDlg.FileName, fileTypes);
                return(Export(saveFileDlg.FileName, fileType));
            }
        }
        public bool Add()
        {
            if (mFileAddActions == null)
            {
                return(false);
            }

            bool hasAdded = false;

            using (OpenFileDialog openFileDlg = new OpenFileDialog())
            {
                var fileTypes = mFileAddActions.Keys.ToArray();

                openFileDlg.AutoUpgradeEnabled           = true;
                openFileDlg.CheckPathExists              = true;
                openFileDlg.CheckFileExists              = true;
                openFileDlg.Filter                       = SupportedFileManager.GetFilteredFileFilter(fileTypes);
                openFileDlg.Multiselect                  = true;
                openFileDlg.SupportMultiDottedExtensions = true;
                openFileDlg.Title         = "Select file(s) to add";
                openFileDlg.ValidateNames = true;

                if (openFileDlg.ShowDialog() != DialogResult.OK)
                {
                    return(false);
                }

                foreach (string fileName in openFileDlg.FileNames)
                {
                    var fileType = GetCorrectedSupportedFileType(openFileDlg.FilterIndex - 1, fileName, fileTypes);
                    hasAdded |= Add(fileName, fileType);
                }
            }

            return(hasAdded);
        }