public void SaveSettings() { var appdatpath = Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData); var setpath = Path.Combine(appdatpath, @"TLCGen\CCOLGeneratorSettings\"); if (!Directory.Exists(setpath)) { Directory.CreateDirectory(setpath); } var setfile = Path.Combine(setpath, @"ccolgensettings.xml"); var settings = new CCOLGeneratorSettingsModel(); // always save visual settings settings.VisualSettings.CCOLIncludesPaden = CCOLGeneratorSettingsProvider.Default.Settings.VisualSettings.CCOLIncludesPaden; settings.VisualSettings.CCOLLibs = CCOLGeneratorSettingsProvider.Default.Settings.VisualSettings.CCOLLibs; settings.VisualSettings.CCOLLibsPath = CCOLGeneratorSettingsProvider.Default.Settings.VisualSettings.CCOLLibsPath; settings.VisualSettings.CCOLPreprocessorDefinitions = CCOLGeneratorSettingsProvider.Default.Settings.VisualSettings.CCOLPreprocessorDefinitions; settings.VisualSettings.CCOLResPath = CCOLGeneratorSettingsProvider.Default.Settings.VisualSettings.CCOLResPath; settings.VisualSettingsCCOL9.CCOLIncludesPaden = CCOLGeneratorSettingsProvider.Default.Settings.VisualSettingsCCOL9.CCOLIncludesPaden; settings.VisualSettingsCCOL9.CCOLLibs = CCOLGeneratorSettingsProvider.Default.Settings.VisualSettingsCCOL9.CCOLLibs; settings.VisualSettingsCCOL9.CCOLLibsPath = CCOLGeneratorSettingsProvider.Default.Settings.VisualSettingsCCOL9.CCOLLibsPath; settings.VisualSettingsCCOL9.CCOLPreprocessorDefinitions = CCOLGeneratorSettingsProvider.Default.Settings.VisualSettingsCCOL9.CCOLPreprocessorDefinitions; settings.VisualSettingsCCOL9.CCOLResPath = CCOLGeneratorSettingsProvider.Default.Settings.VisualSettingsCCOL9.CCOLResPath; settings.VisualSettingsCCOL95.CCOLIncludesPaden = CCOLGeneratorSettingsProvider.Default.Settings.VisualSettingsCCOL95.CCOLIncludesPaden; settings.VisualSettingsCCOL95.CCOLLibs = CCOLGeneratorSettingsProvider.Default.Settings.VisualSettingsCCOL95.CCOLLibs; settings.VisualSettingsCCOL95.CCOLLibsPath = CCOLGeneratorSettingsProvider.Default.Settings.VisualSettingsCCOL95.CCOLLibsPath; settings.VisualSettingsCCOL95.CCOLLibsPathNoTig = CCOLGeneratorSettingsProvider.Default.Settings.VisualSettingsCCOL95.CCOLLibsPathNoTig; settings.VisualSettingsCCOL95.CCOLPreprocessorDefinitions = CCOLGeneratorSettingsProvider.Default.Settings.VisualSettingsCCOL95.CCOLPreprocessorDefinitions; settings.VisualSettingsCCOL95.CCOLResPath = CCOLGeneratorSettingsProvider.Default.Settings.VisualSettingsCCOL95.CCOLResPath; // always save visual tabspace and others settings.AlterAddHeadersWhileGenerating = CCOLGeneratorSettingsProvider.Default.Settings.AlterAddHeadersWhileGenerating; settings.AlterAddFunctionsWhileGenerating = CCOLGeneratorSettingsProvider.Default.Settings.AlterAddFunctionsWhileGenerating; settings.AlwaysOverwriteSources = CCOLGeneratorSettingsProvider.Default.Settings.AlwaysOverwriteSources; settings.TabSpace = CCOLGeneratorSettingsProvider.Default.Settings.TabSpace; // save prefixes where needed foreach (var pf in CCOLGeneratorSettingsProvider.Default.Settings.Prefixes) { if (pf.Setting != pf.Default) { settings.Prefixes.Add(new CCOLGeneratorCodeStringSettingModel { Type = CCOLGeneratorSettingTypeEnum.Prefix, Description = pf.Description, Default = pf.Default, Setting = pf.Setting }); } } // save element naming where needed foreach (var cpg in CCOLGeneratorSettingsProvider.Default.Settings.CodePieceGeneratorSettings) { var ncpg = new CodePieceSettingsTuple <string, CCOLGeneratorClassWithSettingsModel> { Item1 = cpg.Item1, Item2 = new CCOLGeneratorClassWithSettingsModel() }; ncpg.Item2.ClassName = cpg.Item2.ClassName; ncpg.Item2.Description = cpg.Item2.Description; ncpg.Item2.Settings = new List <CCOLGeneratorCodeStringSettingModel>(); foreach (var s in cpg.Item2.Settings) { if (s.Setting != s.Default) { ncpg.Item2.Settings.Add(new CCOLGeneratorCodeStringSettingModel { Type = s.Type, Default = s.Default, Description = s.Description, Setting = s.Setting }); } } if (ncpg.Item2.Settings.Any()) { settings.CodePieceGeneratorSettings.Add(ncpg); } } TLCGenSerialization.Serialize(setfile, settings); }
/* * For potential future use * * RelayCommand _saveSettingsCommand; * public ICommand SaveSettingsCommand * { * get * { * if (_saveSettingsCommand == null) * { * _saveSettingsCommand = new RelayCommand(SaveSettingsCommand_Executed, SaveSettingsCommand_CanExecute); * } * return _saveSettingsCommand; * } * } * * private void SaveSettingsCommand_Executed(object obj) * { * throw new NotImplementedException(); * } * * private bool SaveSettingsCommand_CanExecute(object obj) * { * throw new NotImplementedException(); * } * */ #endregion // Commands #region Command Functionality #endregion // Command Functionality #region Constructor public CCOLGeneratorSettingsViewModel(CCOLGeneratorSettingsModel settings, CCOLGenerator generator) { _Settings = settings; _Generator = generator; }