protected override void Act() { applicationModel.Save(saveAsTargetFileName); }
protected override void InnerExecute(object parameter) { var configurationSourceSection = configurationSource.Sections.OfType <ConfigurationSourceSectionViewModel>().FirstOrDefault(); if (configurationSourceSection != null) { ElementReferenceProperty selectedSourceProperty = (ElementReferenceProperty)configurationSourceSection.Property("SelectedSource"); if (typeof(SystemConfigurationSourceElement) != selectedSourceProperty.ReferencedElement.ConfigurationType) { UIService.ShowMessageWpf(DesignResources.ExportingEnvironemntConfigurationUsingNonSystemSource, DesignResources.ExportMergedEnvironmentTitle, MessageBoxButton.OK); return; } } if (application.IsDirty) { var saveDialogResult = UIService.ShowMessageWpf( DesignResources.ExportMergedUnsavedMainConfigurationMessage, DesignResources.ExportMergedConfigurationTitle, System.Windows.MessageBoxButton.OKCancel); if (saveDialogResult == System.Windows.MessageBoxResult.Cancel) { return; } if (!application.Save()) { return; } } string mergedConfigurationFile = (string)overridesViewModel.Property("EnvironmentConfigurationFile").Value; if (string.IsNullOrEmpty(mergedConfigurationFile)) { SaveFileDialog saveEnvrionmentDialog = new SaveFileDialog() { Title = DesignResources.ExportMergedConfigurationTitle, DefaultExt = "*.config", Filter = Resources.SaveConfigurationFileDialogFilter, FilterIndex = 0 }; var saveFileResults = UIService.ShowFileDialog(saveEnvrionmentDialog); if (saveFileResults.DialogResult != true) { return; } mergedConfigurationFile = saveFileResults.FileName; } else { if (File.Exists(mergedConfigurationFile)) { var confirmationResult = UIService.ShowMessageWpf( string.Format(CultureInfo.CurrentCulture, DesignResources.SaveOverwriteMergedFile, mergedConfigurationFile), DesignResources.ExportMergedConfigurationTitle, MessageBoxButton.YesNo); if (confirmationResult == MessageBoxResult.No) { return; } } } if (!Path.IsPathRooted(mergedConfigurationFile)) { string configurationFileDirectory = Path.GetDirectoryName(application.ConfigurationFilePath); mergedConfigurationFile = Path.Combine(configurationFileDirectory, mergedConfigurationFile); } ConfigurationMerger mergeComponent = new ConfigurationMerger(application.ConfigurationFilePath, (EnvironmentalOverridesSection)overridesViewModel.ConfigurationElement); mergeComponent.MergeConfiguration(mergedConfigurationFile); overridesViewModel.Property("EnvironmentConfigurationFile").Value = mergedConfigurationFile; }
/// <summary> /// Saves the configuration in the designer to a file. /// </summary> /// <param name="configurationFile">The path of the file the configuration should be saved to.</param> /// <see langref="true"/> if the save operation completed successfully; Otherwise <see langref="false"/>. public bool Save(string configurationFile) { return(applicationModel.Save(configurationFile)); }