コード例 #1
0
		public GenerateSettingsWizard(IGenerator generator, List<Type> generatorTypeList)
			: this()
		{
			//Only show this the first time if never generated
			var cacheFile = new ModelCacheFile(generator);
			if (cacheFile.FileExists())
			{
				this.DialogResult = DialogResult.Cancel;
				this.IsValid = false;
				return;
			}

			_generatorTypeList = generatorTypeList;

			//Load all wizard files
			var xmlFileList = Directory.GetFiles(AddinAppData.Instance.ExtensionDirectory, "genwizard.*.xml");
			foreach (var fileName in xmlFileList)
			{
				this.LoadWizardFile(fileName);
			}

			if (cboItem.Items.Count == 0)
			{
				this.DialogResult = DialogResult.Cancel;
				this.IsValid = false;
				return;
			}

			cboItem.SelectedIndex = 0;

		}
コード例 #2
0
        private bool ChooseGenerators(
            nHydrateModel model,
            List <nHydrateGeneratorProject> genList,
            List <Type> generatorTypeList,
            List <Type> excludeList,
            nHydrate.Generator.GeneratorFramework.GeneratorHelper genHelper)
        {
            if (!genList.Any())
            {
                MessageBox.Show("There are no generators defined", "Error", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                return(false);
            }

            var cacheFile = new nHydrate.Generator.Common.ModelCacheFile(genList.First());

            if (cacheFile.ModelerVersion > System.Reflection.Assembly.GetExecutingAssembly().GetName().Version)
            {
                if (MessageBox.Show($"This model schema was last generated with a newer modeler version ({cacheFile.ModelerVersion}). Your current version is {System.Reflection.Assembly.GetExecutingAssembly().GetName().Version}. Generating with an older modeler may cause many files to change unexpectedly. Do you wish to proceed with the generation?", "Warning", MessageBoxButtons.YesNo, MessageBoxIcon.Warning) == DialogResult.No)
                {
                    return(false);
                }
            }

            //Initialize all the model configuration objects
            var modelRoot = genList.First().Model as ModelRoot;

            modelRoot.ModelConfigurations = new Dictionary <string, IModelConfiguration>();
            foreach (var genType in generatorTypeList)
            {
                var generator = genHelper.GetProjectGenerator(genType);
                modelRoot.ModelConfigurations.Add(generator.GetType().Name, generator.ModelConfiguration);
            }

            //Show generator list
            using (var F = new GenerateSettings(genList.First(), generatorTypeList, null))
            {
                if (F.ShowDialog() != DialogResult.OK)
                {
                    return(false);
                }
                excludeList.AddRange(F.ExcludeList);
            }

            return(true);
        }
コード例 #3
0
ファイル: GenerateSettings.cs プロジェクト: nHydrate/nHydrate
        public GenerateSettings(IGenerator generator, List<Type> generatorTypeList, List<Type> wizardTypeList, List<string> moduleList)
            : this()
        {
            try
            {
                _generator = generator;
                _moduleList = moduleList;
                _generatorTypeList = generatorTypeList;
                _wizardTypeList = wizardTypeList;

                var globalCacheFile = new GlobalCacheFile();
                var cacheFile = new ModelCacheFile(_generator);
                foreach (var v in generatorTypeList)
                {
                    var attribute = v.GetCustomAttributes(typeof(GeneratorProjectAttribute), true).Cast<GeneratorProjectAttribute>().FirstOrDefault();
                    if (!globalCacheFile.ExcludeList.Contains(v.FullName))
                    {
                        _generatorMap.Add(attribute.Name, v);
                    }
                }
                LoadGenerators(true);

                //Add modules
                foreach (var s in moduleList.OrderBy(x => x))
                {
                    chkModule.Items.Add(s);
                    if (cacheFile.GeneratedModuleList.Count(x => x.ToLower() == s.ToLower()) > 0)
                        chkModule.SetItemChecked(chkModule.Items.Count - 1, true);
                }

                if (moduleList.Count == 0)
                {
                    wizard1.WizardPages.Remove(pageModules);
                }

                wizard1.FinishEnabled = (moduleList.Count == 0);

            }
            catch (Exception ex)
            {
                throw;
            }
        }
コード例 #4
0
        private void PerformGeneration(
            nHydrateModel model,
            List <nHydrateGeneratorProject> genList,
            Microsoft.VisualStudio.Modeling.Store store,
            Microsoft.VisualStudio.Modeling.Shell.ModelingDocData docData,
            List <Type> excludeList,
            nHydrate.Generator.GeneratorFramework.GeneratorHelper genHelper)
        {
            _totalFileCount     = 0;
            _processedFileCount = 0;
            var pkey = string.Empty;

            try
            {
                var startTime      = DateTime.Now;
                var isLicenseError = false;
                try
                {
                    //Get the last version we generated on this machine
                    //We will use this to determine if any other generations have been performed on other machines
                    var cacheFile = new nHydrate.Generator.Common.ModelCacheFile(genList.First());
                    var cachedGeneratedVersion = cacheFile.GeneratedVersion;

                    var generatedVersion = cachedGeneratedVersion + 1;

                    pkey = ProgressHelper.ProgressingStarted("Generating...", false, 240000); //Put a 4 minute timer on it
                    foreach (var generator in genList)
                    {
                        var modelRoot = (generator.Model as nHydrate.Generator.Common.Models.ModelRoot);
                        modelRoot.GeneratedVersion = generatedVersion;
                        _totalFileCount           += genHelper.GetFileCount(generator, excludeList);
                    }
                    System.Diagnostics.Debug.WriteLine($"File count: {_totalFileCount}");

                    //Save document
                    var isDirty = 0;
                    docData.IsDirty(out isDirty);
                    if (model.IsDirty || (isDirty != 0))
                    {
                        (docData as nHydrateDocData).Save(docData.FileName, 1, 0);
                    }

                    _startTime = DateTime.Now;
                    foreach (var item in genList)
                    {
                        genHelper.GenerateAll(item, excludeList);
                    }

                    var modelKey = (genList.FirstOrDefault()?.Model as nHydrate.Generator.Common.Models.ModelRoot)?.Key;

                    //Save model statistics
                    var eCount = model.Entities.Count;
                    var fCount = model.Entities.SelectMany(x => x.FieldList).Count();
                    ModelStatsFile.Log(modelKey, eCount, fCount);

                    //Save local copy of last generated version
                    cacheFile.GeneratedVersion = generatedVersion;
                    cacheFile.ModelerVersion   = System.Reflection.Assembly.GetExecutingAssembly().GetName().Version;
                    cacheFile.Save();

                    this.ErrorList = genHelper.GetErrorList().ToList();
                }
                catch (nHydrate.Generator.Common.Exceptions.LicenseException ex)
                {
                    ProgressHelper.ProgressingComplete(pkey);
                    MessageBox.Show("This product is not properly licensed.", "License Error", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                    isLicenseError = true;
                }
                catch (Exception ex)
                {
                    throw;
                }
                finally
                {
                    ProgressHelper.ProgressingComplete(pkey);
                }

                var endTime  = DateTime.Now;
                var duration = endTime.Subtract(startTime);
                #region Show Generation Complete Dialog
                if (!isLicenseError)
                {
                    using (var F = new StatisticsForm())
                    {
                        var text = "The generation was successful.\r\n\r\n";
                        text += "Files generated: " + this.FilesSuccess + "\r\n";
                        text += "Files skipped: " + this.FilesSkipped + "\r\n";
                        text += "Files failed: " + this.FilesFailed + "\r\n";
                        text += "\r\n\r\n";
                        text += "Generation time: " + duration.Hours.ToString("00") + ":" +
                                duration.Minutes.ToString("00") + ":" +
                                duration.Seconds.ToString("00");
                        F.DisplayText       = text;
                        F.GeneratedFileList = this.GeneratedFileList;
                        F.ShowDialog();
                    }
                }
                #endregion
            }
            catch (Exception ex)
            {
                ProgressHelper.ProgressingComplete(pkey);
                GlobalHelper.ShowError(ex);
            }
        }
コード例 #5
0
ファイル: Program.cs プロジェクト: aTiKhan/nHydrate
        /*
         *  --model=C:\code\nHydrateTestAug\ConsoleApp1\Model1.nhydrate --output=C:\code\nHydrateTestAug --generators=nHydrate.Generator.EFCodeFirstNetCore.EFCodeFirstNetCoreProjectGenerator,nHydrate.Generator.PostgresInstaller.PostgresDatabaseProjectGenerator,nHydrate.Generator.SQLInstaller.Core.DatabaseProjectGenerator
         */

        static int Main(string[] args)
        {
            IConfiguration Configuration = new ConfigurationBuilder()
                                           .AddJsonFile("appsettings.json", optional: true, reloadOnChange: true)
                                           .AddJsonFile("appsettings.development.json", optional: true, reloadOnChange: true)
                                           .AddCommandLine(args)
                                           .Build();

            var modelFile  = string.Empty;
            var output     = string.Empty;
            var generators = new string[0];

            //AppSettings
            var allValues = Configuration.GetChildren().Select(x => new { x.Key, x.Value }).ToDictionary(x => x.Key.ToString(), x => x.Value?.ToString());

            if (allValues.ContainsKey(ModelKey))
            {
                modelFile = allValues[ModelKey];
            }
            if (allValues.ContainsKey(OutputKey))
            {
                output = allValues[OutputKey];
            }
            if (allValues.ContainsKey(GeneratorsKey))
            {
                generators = allValues[GeneratorsKey].Split(",", StringSplitOptions.RemoveEmptyEntries);
            }

            if (modelFile.IsEmpty())
            {
                return(ShowError("The model is required."));
            }
            if (output.IsEmpty())
            {
                return(ShowError("The output folder is required."));
            }

            //If there are no generators specified on the command line then check for the file "nhydrate.generators"
            if (!generators.Any())
            {
                var folderName = (new FileInfo(modelFile)).DirectoryName;
                var genDefFile = Path.Combine(folderName, "nhydrate.generators");
                if (File.Exists(genDefFile))
                {
                    generators = File.ReadAllLines(genDefFile).Where(x => x.Trim() != string.Empty).ToArray();
                }
                if (!generators.Any())
                {
                    return(ShowError("The generators are required."));
                }
            }

            Console.WriteLine($"modelFile='{modelFile}'");
            Console.WriteLine($"output='{output}'");
            Console.WriteLine($"generators='{string.Join(",", generators)}'");

            //NOTE: Yaml Model files must end with ".nhydrate.yaml"
            //Old Xml file ends with ".nhydrate"

            //Specified a folder so look for the file
            string actualFile = null;

            if (Directory.Exists(modelFile))
            {
                var folderName = modelFile;

                //Look for new Yaml file
                var f = Directory.GetFiles(folderName, "*" + FileManagement.ModelExtension).FirstOrDefault();
                if (File.Exists(f))
                {
                    actualFile = f;
                }

                //Look for old xml file
                if (actualFile.IsEmpty())
                {
                    f = Directory.GetFiles(folderName, "*" + FileManagement.OldModelExtension).FirstOrDefault();
                    if (File.Exists(f))
                    {
                        actualFile = f;
                    }
                }

                if (actualFile.IsEmpty())
                {
                    //Back 1 folder
                    folderName = (new DirectoryInfo(folderName)).Parent.FullName;

                    f = Directory.GetFiles(folderName, "*" + FileManagement.ModelExtension).FirstOrDefault();
                    if (File.Exists(f))
                    {
                        actualFile = f;
                    }

                    //Look for old xml file
                    if (actualFile.IsEmpty())
                    {
                        f = Directory.GetFiles(folderName, "*" + FileManagement.OldModelExtension).FirstOrDefault();
                        if (File.Exists(f))
                        {
                            actualFile = f;
                        }
                    }
                }
            }
            else
            {
                //Is this the Yaml model?
                if (modelFile.EndsWith(FileManagement.ModelExtension))
                {
                    actualFile = modelFile;
                }

                //Is this the Xml model?
                if (modelFile.EndsWith(FileManagement.OldModelExtension))
                {
                    actualFile = modelFile;
                }

                //Look one folder back for Yaml
                if (actualFile.IsEmpty())
                {
                    var folderName = (new FileInfo(modelFile)).Directory.Parent.FullName;
                    var f          = Directory.GetFiles(folderName, "*" + FileManagement.ModelExtension).FirstOrDefault();
                    if (File.Exists(f))
                    {
                        actualFile = f;
                    }
                }
            }

            if (actualFile.IsEmpty())
            {
                return(ShowError("Model file not found."));
            }
            modelFile = actualFile;

            var timer       = System.Diagnostics.Stopwatch.StartNew();
            var formatModel = (allValues.ContainsKey("formatmodel") && allValues["formatmodel"] == "true");

            //TODO: when model files missing ID, it generates all fields as first one

            nHydrate.Generator.Common.Models.ModelRoot model = null;
            try
            {
                Console.WriteLine();
                Console.WriteLine("Loading model...");
                model = ModelHelper.CreatePOCOModel(modelFile, formatModel);
            }
            catch (ModelException ex)
            {
                //All YAML validation errors will come here
                Console.WriteLine(ex.Message);
                return(1);
            }
            catch (Exception ex)
            {
                Console.WriteLine("Unknown error.");
                return(1);
            }

            //Generate
            if (model != null && !formatModel)
            {
                Console.WriteLine("Loading generators...");
                var genHelper = new nHydrate.Command.Core.GeneratorHelper(output);
                genHelper.ProjectItemGenerated += new nHydrate.Generator.Common.GeneratorFramework.ProjectItemGeneratedEventHandler(g_ProjectItemGenerated);

                var genList    = new List <nHydrateGeneratorProject>();
                var genProject = new nHydrateGeneratorProject();
                genList.Add(genProject);
                model.ResetKey(model.Key);
                model.GeneratorProject = genProject;
                genProject.Model       = model;
                genProject.FileName    = $"{modelFile}.generating";
                var document = new System.Xml.XmlDocument();
                document.LoadXml($"<modelRoot guid=\"{model.Key}\" type=\"nHydrate.Generator.nHydrateGeneratorProject\" assembly=\"nHydrate.Generator.dll\"><ModelRoot></ModelRoot></modelRoot>");
                ((nHydrate.Generator.Common.GeneratorFramework.IXMLable)model).XmlAppend(document.DocumentElement.ChildNodes[0]);
                System.IO.File.WriteAllText(genProject.FileName, document.ToIndentedString());

                var allgenerators = genHelper.GetProjectGenerators(genProject);
                var excludeList   = allgenerators.Where(x => !generators.Contains(x.FullName)).ToList();

                //Get the last version we generated on this machine
                //We will use this to determine if any other generations have been performed on other machines
                var cacheFile = new nHydrate.Generator.Common.ModelCacheFile(genList.First());
                var cachedGeneratedVersion = cacheFile.GeneratedVersion;
                var generatedVersion       = cachedGeneratedVersion + 1;
                model.GeneratedVersion = generatedVersion;

                Console.WriteLine($"Generating code...");
                foreach (var item in genList)
                {
                    genHelper.GenerateAll(item, excludeList);
                }

                //Save local copy of last generated version
                cacheFile.GeneratedVersion = generatedVersion;
                cacheFile.ModelerVersion   = System.Reflection.Assembly.GetExecutingAssembly().GetName().Version;
                cacheFile.Save();

                if (File.Exists(genProject.FileName))
                {
                    File.Delete(genProject.FileName);
                }

                //Write stats
                Console.WriteLine();
                Console.WriteLine("Generation Summary");
                Console.WriteLine($"Total Files: {_stats.ProcessedFileCount}");
                Console.WriteLine($"Files Success: {_stats.FilesSuccess}");
                Console.WriteLine($"Files Skipped: {_stats.FilesSkipped}");
                Console.WriteLine($"Files Failed: {_stats.FilesFailed}");
                Console.WriteLine();
            }
            else if (!formatModel)
            {
                Console.WriteLine("The model could not be loaded.");
            }

            timer.Stop();
            Console.WriteLine($"Generation complete. Elapsed={timer.ElapsedMilliseconds}ms");
            return(0);
        }
コード例 #6
0
ファイル: GenerateSettings.cs プロジェクト: nHydrate/nHydrate
        private void wizard1_Finish(object sender, EventArgs e)
        {
            if (chkModule.Items.Count > 0)
            {
                if (chkModule.CheckedItems.Count == 0)
                {
                    MessageBox.Show("You must select one or more modules for generation.", "Check Modules", MessageBoxButtons.OK, MessageBoxIcon.Information);
                    return;
                }
            }

            var cacheFile = new ModelCacheFile(_generator);
            cacheFile.ExcludeList.Clear();
            foreach (var t in this.ExcludeList)
            {
                cacheFile.ExcludeList.Add(t.FullName);
            }

            cacheFile.GeneratedModuleList.Clear();
            foreach (string s in chkModule.CheckedItems)
            {
                cacheFile.GeneratedModuleList.Add(s);
            }

            cacheFile.Save();

            this.DialogResult = DialogResult.OK;
            this.Close();
        }
コード例 #7
0
		public TableCodeFacadeUpdateForm(TableCollection tableCollection, FieldSettingConstants fieldSetting)
			: this()
		{
			_tableCollection = tableCollection;
			_fieldSetting = fieldSetting;

			if (_fieldSetting == FieldSettingConstants.Name)
			{
				this.Text = "Update Entity";
			}
			else if (_fieldSetting == FieldSettingConstants.CodeFacade)
			{
				this.Text = "Update CodeFacade";
				cmdRemoveAll.Visible = true;
			}

			try
			{
				var cacheFile = new ModelCacheFile(((ModelRoot)tableCollection.Root).GeneratorProject);
				if (!string.IsNullOrEmpty(cacheFile.TableFacadeSettings))
				{
					var document = new XmlDocument();
					document.LoadXml(cacheFile.TableFacadeSettings);
					var containerNode = document.DocumentElement.ChildNodes[0];
					optPrefix.Checked = XmlHelper.GetAttributeValue(containerNode, "prefixChecked", optPrefix.Checked);
					txtPrefix.Text = XmlHelper.GetAttributeValue(containerNode, "prefix", txtPrefix.Text);
					chkReplaceText.Checked = XmlHelper.GetAttributeValue(containerNode, "replaceText", chkReplaceText.Checked);
					txtReplaceSource.Text = XmlHelper.GetAttributeValue(containerNode, "replaceSource", txtReplaceSource.Text);
					txtReplaceTarget.Text = XmlHelper.GetAttributeValue(containerNode, "replaceTarget", txtReplaceTarget.Text);
					optUpcase.Checked = XmlHelper.GetAttributeValue(containerNode, "upcase", optUpcase.Checked);
					optUnderscore.Checked = XmlHelper.GetAttributeValue(containerNode, "underscore", optUnderscore.Checked);
					chkSkip2Caps.Checked = XmlHelper.GetAttributeValue(containerNode, "TwoCaps", chkSkip2Caps.Checked);
				}
			}
			catch (Exception ex)
			{
				throw;
			}

			this.UpdateForm();
		}
コード例 #8
0
ファイル: GenerateSettings.cs プロジェクト: nHydrate/nHydrate
        private void LoadGenerators(bool isMain)
        {
            try
            {
                var globalCacheFile = new GlobalCacheFile();
                var cacheFile = new ModelCacheFile(_generator);
                tvwProjects.Nodes.Clear();

                foreach (var key in _generatorMap.Keys)
                {
                    var sysType = _generatorMap[key];
                    if (!globalCacheFile.ExcludeList.Contains(sysType.FullName))
                    {
                        var attribute = sysType.GetCustomAttributes(typeof(GeneratorProjectAttribute), true).Cast<GeneratorProjectAttribute>().FirstOrDefault();
                        if ((isMain && attribute.IsMain) || !isMain)
                        {
                            var typeName = string.Empty;
                            if (attribute.CurrentType != null) typeName = attribute.CurrentType.ToString();
                            var node = tvwProjects.Nodes.Add(typeName, attribute.Name);
                            node.Tag = attribute;

                            if (_wizardTypeList != null)
                            {
                                node.Checked = _wizardTypeList.Contains(sysType);
                            }
                            else
                            {
                                node.Checked = !cacheFile.ExcludeList.Contains(sysType.FullName);
                            }
                        }
                    }
                }
            }
            catch (Exception ex)
            {
                throw;
            }
        }
コード例 #9
0
		private void SaveSettings()
		{
			//Save settings
			var cacheFile = new ModelCacheFile(((ModelRoot)_tableCollection.Root).GeneratorProject);
			var document = new XmlDocument();
			document.LoadXml("<a><z></z></a>");
			var containerNode = document.DocumentElement.ChildNodes[0];
			XmlHelper.AddAttribute(containerNode, "prefixChecked", optPrefix.Checked);
			XmlHelper.AddAttribute(containerNode, "prefix", txtPrefix.Text);
			XmlHelper.AddAttribute(containerNode, "replaceText", chkReplaceText.Checked);
			XmlHelper.AddAttribute(containerNode, "replaceSource", txtReplaceSource.Text);
			XmlHelper.AddAttribute(containerNode, "replaceTarget", txtReplaceTarget.Text);
			XmlHelper.AddAttribute(containerNode, "upcase", optUpcase.Checked);
			XmlHelper.AddAttribute(containerNode, "underscore", optUnderscore.Checked);
			XmlHelper.AddAttribute(containerNode, "TwoCaps", chkSkip2Caps.Checked);
			cacheFile.TableFacadeSettings = document.OuterXml;
			cacheFile.Save();
		}
コード例 #10
0
		public ColumnCodeFacadeUpdateForm(ReferenceCollection columnCollection, ModelRoot modelRoot, FieldSettingConstants fieldSetting)
			: this()
		{
			_columnCollection = columnCollection;
			_modelRoot = modelRoot;
			_fieldSetting = fieldSetting;

			if (_fieldSetting == FieldSettingConstants.Name)
			{
				this.Text = "Update Field";
			}
			else if (_fieldSetting == FieldSettingConstants.Name)
			{
				this.Text = "Update CodeFacade";
			}

			try
			{
				ModelCacheFile cacheFile = null;
				if (modelRoot != null) cacheFile = new ModelCacheFile(modelRoot.GeneratorProject);
				else cacheFile = new ModelCacheFile(((ModelRoot)columnCollection.Root).GeneratorProject);
				if (!string.IsNullOrEmpty(cacheFile.CodeFacadeSettings))
				{
					var document = new XmlDocument();
					document.LoadXml(cacheFile.CodeFacadeSettings);
					var containerNode = document.DocumentElement.ChildNodes[0];
					optPrefix.Checked = XmlHelper.GetAttributeValue(containerNode, "prefixChecked", optPrefix.Checked);
					txtPrefix.Text = XmlHelper.GetAttributeValue(containerNode, "prefix", txtPrefix.Text);
					chkReplaceText.Checked = XmlHelper.GetAttributeValue(containerNode, "replaceText", chkReplaceText.Checked);
					txtReplaceSource.Text = XmlHelper.GetAttributeValue(containerNode, "replaceSource", txtReplaceSource.Text);
					txtReplaceTarget.Text = XmlHelper.GetAttributeValue(containerNode, "replaceTarget", txtReplaceTarget.Text);
					optUpcase.Checked = XmlHelper.GetAttributeValue(containerNode, "upcase", optUpcase.Checked);
					optUnderscore.Checked = XmlHelper.GetAttributeValue(containerNode, "underscore", optUnderscore.Checked);
					chkSkip2Caps.Checked = XmlHelper.GetAttributeValue(containerNode, "TwoCaps", chkSkip2Caps.Checked);
				}
			}
			catch (Exception ex)
			{
				throw;
			}

			this.UpdateForm();
		}
コード例 #11
0
		private void cmdOK_Click(object sender, EventArgs e)
		{
			pnlProgress.Location = pnlMain.Location;
			pnlMain.Visible = false;
			pnlProgress.Visible = true;
			cmdOK.Enabled = false;
			cmdCancel.Enabled = false;

			if (_modelRoot != null)
			{
				var index = 0;
				foreach (Table t in _modelRoot.Database.Tables)
				{
					this.ProcessColumnCollection(t.Columns);
					this.progressBar1.Value = (int)((index * 100.0) / _modelRoot.Database.Tables.Count);
					System.Windows.Forms.Application.DoEvents();
					index++;
				}
			}
			else if (_columnCollection != null)
			{
				this.ProcessColumnCollection(_columnCollection);
			}

			//Save settings
			ModelCacheFile cacheFile = null;
			if (_modelRoot != null) cacheFile = new ModelCacheFile(_modelRoot.GeneratorProject);
			else cacheFile = new ModelCacheFile(((ModelRoot)_columnCollection.Root).GeneratorProject);
			var document = new XmlDocument();
			document.LoadXml("<a><z></z></a>");
			var containerNode = document.DocumentElement.ChildNodes[0];
			XmlHelper.AddAttribute(containerNode, "prefixChecked", optPrefix.Checked);
			XmlHelper.AddAttribute(containerNode, "prefix", txtPrefix.Text);
			XmlHelper.AddAttribute(containerNode, "replaceText", chkReplaceText.Checked);
			XmlHelper.AddAttribute(containerNode, "replaceSource", txtReplaceSource.Text);
			XmlHelper.AddAttribute(containerNode, "replaceTarget", txtReplaceTarget.Text);
			XmlHelper.AddAttribute(containerNode, "upcase", optUpcase.Checked);
			XmlHelper.AddAttribute(containerNode, "underscore", optUnderscore.Checked);
			XmlHelper.AddAttribute(containerNode, "TwoCaps", chkSkip2Caps.Checked);
			cacheFile.CodeFacadeSettings = document.OuterXml;
			cacheFile.Save();

			this.DialogResult = DialogResult.OK;
			this.Close();
		}
コード例 #12
0
		public TableCodeFacadeUpdateForm(nHydrate.Dsl.nHydrateModel model)
			: this()
		{
			_model = model;

			try
			{
				var cacheFile = new ModelCacheFile(_model.ModelFileName);
				if (!string.IsNullOrEmpty(cacheFile.TableFacadeSettings))
				{
					var document = new XmlDocument();
					document.LoadXml(cacheFile.TableFacadeSettings);
					var containerNode = document.DocumentElement.ChildNodes[0];
					optPrefix.Checked = XmlHelper.GetAttributeValue(containerNode, "prefixChecked", optPrefix.Checked);
					txtPrefix.Text = XmlHelper.GetAttributeValue(containerNode, "prefix", txtPrefix.Text);
					chkReplaceText.Checked = XmlHelper.GetAttributeValue(containerNode, "replaceText", chkReplaceText.Checked);
					txtReplaceSource.Text = XmlHelper.GetAttributeValue(containerNode, "replaceSource", txtReplaceSource.Text);
					txtReplaceTarget.Text = XmlHelper.GetAttributeValue(containerNode, "replaceTarget", txtReplaceTarget.Text);
					cboCasing.SelectedIndex = XmlHelper.GetAttributeValue(containerNode, "casing", cboCasing.SelectedIndex);
				}

				//Entities
				foreach (var item in model.Entities)
				{
					var newItem = new ListViewItem
					{
						Text = item.Name,
						ImageIndex = 0,
						Checked = true,
						Tag = new DataItem { Element = item, }
					};
					newItem.SubItems.Add(item.CodeFacade);
					newItem.SubItems.Add("Entity");
					lvwItem.Items.Add(newItem);
				}

				//Views
				foreach (var item in model.Views)
				{
					var newItem = new ListViewItem
					{
						Text = item.Name,
						ImageIndex = 1,
						Checked = true,
						Tag = new DataItem { Element = item, }
					};
					newItem.SubItems.Add(item.CodeFacade);
					newItem.SubItems.Add("View");
					lvwItem.Items.Add(newItem);
				}

				//Stored Procedures
				foreach (var item in model.StoredProcedures)
				{
					var newItem = new ListViewItem
					{
						Text = item.Name,
						ImageIndex = 2,
						Checked = true,
						Tag = new DataItem { Element = item, }
					};
					newItem.SubItems.Add(item.CodeFacade);
					newItem.SubItems.Add("Stored Procedure");
					lvwItem.Items.Add(newItem);
				}

				//Functions
				foreach (var item in model.Functions)
				{
					var newItem = new ListViewItem
					{
						Text = item.Name,
						ImageIndex = 3,
						Checked = true,
						Tag = new DataItem { Element = item, }
					};
					newItem.SubItems.Add(item.CodeFacade);
					newItem.SubItems.Add("Function");
					lvwItem.Items.Add(newItem);
				}

			}
			catch (Exception ex)
			{
				throw;
			}

			this.UpdateForm();
		}
コード例 #13
0
		private void SaveSettings()
		{
			//Save settings
			var cacheFile = new ModelCacheFile(_model.ModelFileName);
			var document = new XmlDocument();
			document.LoadXml("<a><z></z></a>");
			var containerNode = document.DocumentElement.ChildNodes[0];
			XmlHelper.AddAttribute(containerNode, "prefixChecked", optPrefix.Checked);
			XmlHelper.AddAttribute(containerNode, "prefix", txtPrefix.Text);
			XmlHelper.AddAttribute(containerNode, "replaceText", chkReplaceText.Checked);
			XmlHelper.AddAttribute(containerNode, "replaceSource", txtReplaceSource.Text);
			XmlHelper.AddAttribute(containerNode, "replaceTarget", txtReplaceTarget.Text);
			XmlHelper.AddAttribute(containerNode, "casing", cboCasing.SelectedIndex);
			cacheFile.TableFacadeSettings = document.OuterXml;
			cacheFile.Save();
		}