Exemple #1
0
        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;
        }