/// <summary> /// Get the code generation options that have been set at the model level /// </summary> /// <remarks> /// Thers emay be overridden on a per-user basis as part of the build process /// </remarks> public IModelCodeGenerationOptions GetCodeGenerationOptions() { ModelCodegenerationOptionsBase.SupportedLanguages CodeLanguageIn = ModelCodegenerationOptionsBase.SupportedLanguages.VBNet; ModelCodegenerationOptionsBase.ConstructorPreferenceSetting ConstructorPreferenceIn = ModelCodegenerationOptionsBase.ConstructorPreferenceSetting.GenerateBoth; System.IO.DirectoryInfo DirectoryRootIn = null; bool SeparateFolderPerModelIn = true; bool SeparateFolderPerAggregateIn = true; // Read the model properties that affect code generation return(ModelCodeGenerationOptions.Create(CodeLanguageIn, ConstructorPreferenceIn, DirectoryRootIn, SeparateFolderPerModelIn, SeparateFolderPerAggregateIn)); }
internal void OnMenuGenerateCQRSModelCode(object sender, EventArgs e) { if (null != GetCurrentCQRSModel()) { // TODO: Show the model code settings, to allow the user to change them if neccessary CQRSAzure.CQRSdsl.CustomCode.Interfaces.IModelCodeGenerationOptions options = GetCurrentCQRSModel().GetCodeGenerationOptions(); if (null == options) { options = ModelCodeGenerationOptions.Default(); } // Code generation for the specified model... CodeGeneration.ModelCodeGenerator codeGen = new CodeGeneration.ModelCodeGenerator(GetCurrentCQRSModel(), options); if (null != codeGen) { codeGen.GenerateCode(); } } }
/// <summary> /// Get the code generation options that have been set at the model level /// </summary> /// <remarks> /// These may be overridden on a per-user basis as part of the build process /// </remarks> public IModelCodeGenerationOptions GetCodeGenerationOptions() { ModelCodegenerationOptionsBase.SupportedLanguages CodeLanguageIn = ModelCodegenerationOptionsBase.SupportedLanguages.VBNet; ModelCodegenerationOptionsBase.ConstructorPreferenceSetting ConstructorPreferenceIn = ModelCodegenerationOptionsBase.ConstructorPreferenceSetting.GenerateBoth; System.IO.DirectoryInfo DirectoryRootIn = null; bool SeparateFolderPerModelIn = true; bool SeparateFolderPerAggregateIn = true; bool GenerateEntityFrameworkClassesIn = false; // Read the model properties that affect code generation if (this.DefaultCodeGenerationLanguage == TargetLanguage.CSharp) { CodeLanguageIn = ModelCodegenerationOptionsBase.SupportedLanguages.CSharp; } if (!this.SubfolderPerDomain) { SeparateFolderPerModelIn = false; } if (!this.SubfolderPerAggregate) { SeparateFolderPerAggregateIn = false; } if (!string.IsNullOrWhiteSpace(this.CodeRootFolder)) { if (System.IO.Directory.Exists(this.CodeRootFolder)) { DirectoryRootIn = new System.IO.DirectoryInfo(this.CodeRootFolder); } else { // Can you make this into a relative path?? if (!System.IO.Path.IsPathRooted(this.DocumentationRootFolder)) { DirectoryRootIn = new System.IO.DirectoryInfo( System.IO.Path.Combine(System.AppDomain.CurrentDomain.BaseDirectory , this.CodeRootFolder)); } } } else { DirectoryRootIn = new System.IO.DirectoryInfo(System.IO.Path.Combine(System.IO.Path.GetTempPath(), this.Name, "Code")); } if (this.GenerateEntityFrameworkClasses) { GenerateEntityFrameworkClassesIn = true; } // Read any per-user overrides ?? return(ModelCodeGenerationOptions.Create(CodeLanguageIn, ConstructorPreferenceIn, DirectoryRootIn, SeparateFolderPerModelIn, SeparateFolderPerAggregateIn, GenerateEntityFrameworkClassesIn)); }