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