public void Test() { var cfg = new CodeRunnerConfig(); var configOptions = new DefaultConfigurationOptions(); configOptions.EnumNamespace = "The.Enum.Namespace"; var enumList = new List<EnumDescriptor>(); enumList.Add(new EnumDescriptor { TableName = "TransactionLineType", NameField = "Label", ValueField = "ID" }); configOptions.Enums = enumList; configOptions.ConnectionString = "user id=sa;password=anja8247;server=(local);database=Lars"; configOptions.OutputPath = @"C:\dev"; configOptions.EnumOutputPath = @"C:\dev"; cfg.DbProvider = new SqlServerProvider(new DbHelper(configOptions.ConnectionString)); cfg.Generator = new ConfigurableActiveRecordGenerator(configOptions); cfg.NameProvider = new NameProvider(); cfg.Options = configOptions; cfg.Writer = (s) => { return Console.Out; }; var codeRunner = new CodeRunnerImpl(cfg); codeRunner.Execute(); }
public void Can_generate_associations() { string connString = "integrated security=SSPI;server=(local);database=Lars"; var dbprovider = new SqlServerProvider(new DbHelper(connString)); var configOptions = new DefaultConfigurationOptions(); var generator = new AwishModelGenerator(); //new ConfigurableActiveRecordGenerator(configOptions); generator.ConfigOptions = configOptions; //foreach (var tbl in dbprovider.GetTableSchemas().Where(tbl => { return tbl.PrimaryKey != null; })) //{ var tbl = dbprovider.GetTableSchema("LeasePaymentDescriptorLease"); //var fkrefs = tbl.PrimaryKey.ForeignKeyReferences; //foreach (var fkref in fkrefs) //{ // //} var theNs = new NamespaceDeclaration("Awish.Lars.Data"); var cdecl = generator.Generate(theNs, tbl); new CodeBuilder().GenerateCode(Console.Out, "Awish.Lars.Data", cdecl); //} }
public IEnumerable<IConfigurationOptions> ParseXml(string contentsOfConfigFile) { if (String.IsNullOrEmpty(contentsOfConfigFile)) throw new ArgumentException("contentsOfConfigFile is null or empty.", "contentsOfConfigFile"); XmlDocument doc = new XmlDocument(); doc.LoadXml(contentsOfConfigFile); XmlNodeList configNodes = doc.DocumentElement.SelectNodes("//config"); var result = new List<IConfigurationOptions>(); foreach (XmlNode configNode in configNodes) { IConfigurationOptions options = new DefaultConfigurationOptions(); var attrib = new AttributeHelper(".//add[@key='{0}']/@value", configNode); options.AssemblyDirectory = attrib.Get("assemblydirectory"); options.AbstractBaseName = attrib.Get("abstractbasename"); options.BaseTypeName = attrib.Get("basetypename"); options.ConnectionString = attrib.Get("connectionstring"); options.DataNamespace = attrib.Get("datanamespace"); options.IocVerboseLogging = attrib.GetBool("iocverboselogging", false); options.GenerateColumnList = attrib.GetBool("generatecolumnlist", true); options.GenerateComments = attrib.GetBool("generatecomments", true); options.UseMicrosoftsHeader = attrib.GetBool("usemicrosoftsheader", false); options.Namespace = attrib.Get("namespace"); options.OutputPath = attrib.Get("outputpath"); options.EnumOutputPath = attrib.Get("enumoutputpath"); options.EnumNamespace = attrib.Get("enumnamespace"); options.StaticPrimaryKeyName = attrib.Get("staticprimarykeyname"); options.OnlyTablesWithPrefix.AddRange(attrib.Get("onlytableswithprefix").Split(new[] { ',' }, StringSplitOptions.RemoveEmptyEntries)); options.SkipTablesWithPrefix.AddRange(attrib.Get("skiptableswithprefix").Split(new[] { ',' }, StringSplitOptions.RemoveEmptyEntries)); options.SkipTables.AddRange(attrib.Get("skiptables").Split(new[] { ',' }, StringSplitOptions.RemoveEmptyEntries)); options.Enums = ParseEnums(configNode); LoadEnumReplacements(configNode, options); options.Components = ParseComponents(configNode); result.Add(options); } return result; }
private IEnumerable<IConfigurationOptions> Convert(ObservableCollection<ConfigurationOptionsViewModel> models) { var result = new List<IConfigurationOptions>(); foreach(var model in models) { var option = new DefaultConfigurationOptions(); option.AbstractBaseName = model.AbstractBaseName; option.AssemblyDirectory = model.AssemblyDirectory; option.BaseTypeName = model.BaseTypeName; option.ConnectionString = model.ConnectionString; option.DataNamespace = model.DataNamespace; option.EnumNamespace = model.EnumNamespace; option.EnumOutputPath = model.EnumOutputPath; option.GenerateColumnList = model.GenerateColumnList; option.GenerateComments = model.GenerateComments; option.IocVerboseLogging = model.IocVerboseLogging; option.Namespace = model.Namespace; option.OnlyTablesWithPrefix.AddRange(model.OnlyTablesWithPrefix); option.OutputPath = model.OutputPath; option.SkipTables.AddRange(model.SkipTables); option.SkipTablesWithPrefix.AddRange(model.SkipTablesWithPrefix); option.StaticPrimaryKeyName = model.StaticPrimaryKeyName; option.UseMicrosoftsHeader = model.UseMicrosoftsHeader; option.Components = model.Components; option.EnumReplacements = model.EnumReplacements; option.Enums = model.Enums; result.Add(option); } return result; }