public override void Execute() { // show export dialog var dia = new ExportConfigDialog(viewModel); if (models.Window.ShowDialog(dia) != true) { return; } Debug.Assert(viewModel.IsValid); if (path.Filename == null) // set proposed filename from equations { path.InitFromEquations(models); } // make sure that the directory exists path.CreateDirectory(); var sfd = new SaveFileDialog { Filter = "ICFG (*.icfg)|*.icfg", InitialDirectory = path.Directory, FileName = path.Filename }; if (sfd.ShowDialog(models.Window.TopmostWindow) != true) { return; } try { var cfg = ViewerConfig.LoadFromModels(models, viewModel.UsedComponents); if (cfg.Images != null) { cfg.Images.ImportMode = viewModel.ImageImportMode; } if (cfg.Filter != null) { cfg.Filter.ImportMode = viewModel.FilterImportMode; } path.UpdateFromFilename(sfd.FileName); cfg.WriteToFile(path.FullPath); } catch (Exception e) { models.Window.ShowErrorDialog(e, "Could not save config"); } }