示例#1
0
        protected bool PromptFileNameAndExport(QualifiedModuleName qualifiedModule)
        {
            if (!ExportableFileExtensions.TryGetValue(qualifiedModule.ComponentType, out var extension))
            {
                return(false);
            }

            using (var dialog = _dialogFactory.CreateSaveFileDialog())
            {
                dialog.OverwritePrompt = true;
                dialog.FileName        = qualifiedModule.ComponentName + extension;

                var result = dialog.ShowDialog();
                if (result != DialogResult.OK)
                {
                    return(false);
                }

                var component = ProjectsProvider.Component(qualifiedModule);
                try
                {
                    component.Export(dialog.FileName);
                }
                catch (Exception ex)
                {
                    MessageBox.NotifyWarn(ex.Message, string.Format(Resources.CodeExplorer.CodeExplorerUI.ExportError_Caption, qualifiedModule.ComponentName));
                }
                return(true);
            }
        }
示例#2
0
        public bool PromptFileNameAndExport(QualifiedModuleName qualifiedModule)
        {
            if (!_exportableFileExtensions.TryGetValue(qualifiedModule.ComponentType, out var extension))
            {
                return(false);
            }

            using (var dialog = _dialogFactory.CreateSaveFileDialog())
            {
                dialog.OverwritePrompt = true;
                dialog.FileName        = qualifiedModule.ComponentName + extension;

                var result = dialog.ShowDialog();
                if (result != DialogResult.OK)
                {
                    return(false);
                }

                var component = ProjectsProvider.Component(qualifiedModule);
                try
                {
                    var path = Path.GetDirectoryName(dialog.FileName);
                    component.ExportAsSourceFile(path, false, true); // skipped optional parameters interfere with mock setup
                }
                catch (Exception ex)
                {
                    Logger.Warn(ex, $"Failed to export component {qualifiedModule.Name}");
                    MessageBox.NotifyWarn(ex.Message, string.Format(Resources.CodeExplorer.CodeExplorerUI.ExportError_Caption, qualifiedModule.ComponentName));
                }
                return(true);
            }
        }