public override TemplateOutput Generate() { TemplateOutput retVal = new TemplateOutput(); try { string outputfile = TemplateVariablesManager.GetOutputFile(templateIdentity: ProcessModel.TemplateIdentity, fileName: Consts.OUT_repository); string filepath = outputfile; var generator = new RepositoryGenerator(inflector: Inflector); string generatedCode = generator.GenerateRepository( baseNamespace: BaseNamespace, namespacePostfix: NamespacePostfix, repositoryEntitiesNamespace: RepositoryEntitiesNamespace, dbContextName: DbContextName, repositoryInterfaceNamespace: RepositoryInterfaceNamespace); retVal.Files.Add(new OutputFile() { Content = generatedCode, Name = filepath }); } catch (Exception ex) { base.AddError(ref retVal, ex, Enums.LogLevel.Error); } AddTemplateVariablesManagerErrorsToRetVal(ref retVal, Enums.LogLevel.Error); return(retVal); }
public void TestStrongTypesRepo() { var folder = @"..\UnitTests\TestAtoms\CareRelated"; var args = new GeneratorArguments <CSharpTargetConfig>( new CSharpTargetConfig { Entities = { StrongTypes = true } }, folder, AtomCreator.LoadDefaults(folder)); var sqlArgs = new GeneratorArguments <SqlTargetConfig>(new SqlTargetConfig(), args.AtomsFolder, AtomCreator.LoadDefaults(folder)); var sqlGenerator = new SqlGenerator().Generate(sqlArgs); var result = new RepositoryGenerator(sqlGenerator).Generate(args); foreach (var item in result) { Console.WriteLine(item.Output); } }
public void Execute() { var defaultBaseType = typeof(XpoRepository <>); var constructorParams = new Type[] { typeof(ISessionManager) }; RepositoryGenerator.GenerateRepositories(dependencyResolver, defaultBaseType, constructorParams, _appDomainHelpers); }
public FileResult Post(List <IFormFile> files) { List <Model> Models = new List <Model>(); long size = files.Sum(f => f.Length); try { var filePath = Path.GetTempFileName(); foreach (var formFile in files) { if (formFile.Length > 0) { using (var reader = new StreamReader(formFile.OpenReadStream())) { string text = reader.ReadToEnd(); reader.Dispose(); string[] models = text.Split(new string[] { "class" }, StringSplitOptions.None); for (int i = 1; i < models.Length; i++) { Model m = new Model(models[i], "Test"); Models.Add(m); } } } } string fileName = "Project.txt"; byte[] bytes = new byte[0]; MemoryStream ms = new MemoryStream(); TextWriter tw = new StreamWriter(ms); List <string> downloads = new List <string>(); foreach (Model m in Models) { tw.WriteLine(APIControllerGenerator.Generate(m)); tw.WriteLine(RepositoryGenerator.Generate(m)); tw.WriteLine(ServiceGenerator.Generate(m)); tw.WriteLine(TableGenerator.Generate(m, Models)); } tw.Flush(); bytes = ms.ToArray(); ms.Dispose(); return(File(bytes, "application/x-msdownload", fileName)); } catch (Exception ex) { return(File("", "")); } }
public void Execute() { var orm = ConfigurationManager.AppSettings["BoC.Persistence.Orm"]; if (orm != null && !orm.Equals("db4o", StringComparison.InvariantCultureIgnoreCase)) { return; } var defaultBaseType = typeof(Db4oRepository <>); var constructorParams = new[] { typeof(ISessionManager) }; RepositoryGenerator.GenerateRepositories(_dependencyResolver, defaultBaseType, constructorParams, _appDomainHelpers); }
public void Execute() { var orm = ConfigurationManager.AppSettings["BoC.Persistence.Orm"]; if (orm != null && !orm.Equals("umbracoglass", StringComparison.InvariantCultureIgnoreCase)) { return; } var defaultBaseType = typeof(UmbracoRepository <>); var constructorParams = new[] { typeof(IUmbracoServiceProvider) }; RepositoryGenerator.GenerateRepositories(_dependencyResolver, defaultBaseType, constructorParams); }
public void Execute() { var orm = ConfigurationManager.AppSettings["BoC.Persistence.Orm"]; if (orm != null && !orm.Equals("sitecoreglass", StringComparison.InvariantCultureIgnoreCase)) { return; } var defaultBaseType = typeof(SitecoreRepository <>); var constructorParams = new[] { typeof(IDatabaseProvider), typeof(ISitecoreServiceProvider), typeof(IProviderSearchContextProvider), typeof(ILogger) }; RepositoryGenerator.GenerateRepositories(dependencyResolver, defaultBaseType, constructorParams, _appDomainHelpers); }
public void TestRepos() { var folder = @"..\UnitTests\TestAtoms\CareRelated"; var args = new GeneratorArguments<CSharpTargetConfig>(new CSharpTargetConfig(), folder, AtomCreator.LoadDefaults(folder)); var sqlArgs = new GeneratorArguments<SqlTargetConfig>(new SqlTargetConfig(), args.AtomsFolder, AtomCreator.LoadDefaults(folder)); var sqlGenerator = new SqlGenerator().Generate(sqlArgs); var result = new RepositoryGenerator(sqlGenerator).Generate(args); foreach (var item in result) { Console.WriteLine(item.Output); } }
/// <summary> /// Генерация и регистрация репозриторя. /// </summary> /// <param name="container">Unity-container.</param> /// <param name="repositoryInterfaceType">Тип интерфейса репозитория.</param> private static void RegisterRepository(this IUnityContainer container, Type repositoryInterfaceType) { var factoryGenerator = new RepositoryGenerator(); var concreteFactoryType = factoryGenerator.Generate(repositoryInterfaceType); container.RegisterType( repositoryInterfaceType, new TransientLifetimeManager(), new InjectionFactory( c => { var activator = new RepositoryActivator(); return(activator.CreateInstance(c, concreteFactoryType)); })); }
static void Main(string[] args) { var tableName = "GP_NIVTIN"; var className = "NivelTinta"; //GENERATE SQL var spGen = new StoreProcedureGenerator(tableName); var spMax = spGen.GetMaxStoreProcedure(); var repositorySp = spGen.GenerateCode(); Console.Write(repositorySp); Console.WriteLine("Code SQL generated!!!"); Console.WriteLine(""); Console.WriteLine(""); //GENERATE REPOSITORY var rpGen = new RepositoryGenerator(tableName, className, spMax); var repositoryCode = rpGen.GenerateCode(); Console.Write(repositoryCode); Console.WriteLine("Code Repository generated!!!"); Console.WriteLine(""); Console.WriteLine(""); //GENERATE SERVICE var svGen = new ServiceGenerator(className); var serviceCode = svGen.GenerateCode(); Console.Write(serviceCode); Console.WriteLine("Code Service generated!!!"); Console.WriteLine(""); Console.WriteLine(""); //GET PROPERTIES foreach (var prop in typeof(ColumnTable).GetProperties()) { Console.WriteLine("{0}={1}", prop.Name, prop.PropertyType); } Console.ReadLine(); }
private IEnumerable<GeneratorResult> FromTargetConfigs(CSharpTargetConfig targetConfig) { var args = new GeneratorArguments<CSharpTargetConfig>(targetConfig, AtomsFolder, AtomCreator.LoadDefaults(AtomsFolder)); if(targetConfig.Repository != null){ var sqlArgs = new GeneratorArguments<SqlTargetConfig>(new SqlTargetConfig(), args.AtomsFolder, AtomCreator.LoadDefaults(AtomsFolder)); var sqlGenerator = new SqlGenerator().Generate(sqlArgs); var repoResult = new RepositoryGenerator(sqlGenerator).Generate(args); repoResult.OutputPath = targetConfig.Repository.OutputPath; yield return repoResult; } var codeResult = new CodeGenerator().Generate(args); codeResult.OutputPath = targetConfig.Entities.OutputPath; yield return codeResult; }
private IEnumerable <GeneratorResult> FromTargetConfigs(CSharpTargetConfig targetConfig) { var args = new GeneratorArguments <CSharpTargetConfig>(targetConfig, AtomsFolder, AtomCreator.LoadDefaults(AtomsFolder)); if (targetConfig.Repository != null) { var sqlArgs = new GeneratorArguments <SqlTargetConfig>(new SqlTargetConfig(), args.AtomsFolder, AtomCreator.LoadDefaults(AtomsFolder)); var sqlGenerator = new SqlGenerator().Generate(sqlArgs); var repoResult = new RepositoryGenerator(sqlGenerator).Generate(args); repoResult.OutputPath = targetConfig.Repository.OutputPath; yield return(repoResult); } var codeResult = new CodeGenerator().Generate(args); codeResult.OutputPath = targetConfig.Entities.OutputPath; yield return(codeResult); }
protected override IEnumerable <GeneratorResult> Generate() { AtomConfig config = TryLoadAtomConfig(); if (config == null) { yield break; } var sqlConfig = config.Targets.Values.OfType <SqlTargetConfig>().Single(); var csharpConfig = config.Targets.Values.OfType <CSharpTargetConfig>().Single(); var defaults = AtomCreator.LoadDefaults(config.AtomPath); var sqlArgs = new GeneratorArguments <SqlTargetConfig>(sqlConfig, config.AtomPath, defaults); var args = new GeneratorArguments <CSharpTargetConfig>(csharpConfig, config.AtomPath, defaults, sqlArgs.Atoms); var sqlResult = new SqlGenerator().Generate(sqlArgs); sqlResult.OutputPath = sqlConfig.OutputPath; //if (Directory.Exists(sqlResult.OutputPath)) //{ // foreach (var file in Directory.EnumerateFiles(sqlResult.OutputPath, "*.generated.sql", SearchOption.AllDirectories)) // { // sqlResult.Deletions.Add(file); // } //} string redGateFile = Path.Combine(sqlConfig.OutputPath, "RedGateDatabaseInfo.xml"); Log.Information("Looking for redgate database info xml at {RedGateDatabaseInfoXml}", redGateFile); if (sqlResult.DataFiles.Any() && File.Exists(redGateFile)) { Log.Information("Found redgate file, updating..."); var regate = XDocument.Load(uri: redGateFile); var dataFiles = regate.Root.Elements("DataFileSet").First(); var allDataFiles = dataFiles.Elements("DataFile") .Select(n => n.Value).Union(sqlResult.DataFiles, StringComparer.OrdinalIgnoreCase).ToList(); dataFiles.Elements("Count") .First() .Value = allDataFiles.Count().ToString(); Log.Information("DataFiles Count: {DataFileCount}", allDataFiles.Count()); dataFiles.Elements("DataFile").Remove(); dataFiles.Add(allDataFiles.Select(s => new XElement("DataFile", s))); var genResult = new GeneratorResult() { OutputPath = sqlConfig.OutputPath }; genResult.AddOutput("RedGateDatabaseInfo.xml", regate.ToString()); yield return(genResult); } yield return(sqlResult); if (csharpConfig.Repository != null) { var repoResult = new RepositoryGenerator(sqlResult).Generate(args); repoResult.OutputPath = csharpConfig.Repository.OutputPath; yield return(repoResult); } var codeResult = new CodeGenerator().Generate(args); codeResult.OutputPath = csharpConfig.Entities.OutputPath; yield return(codeResult); }
protected override IEnumerable<GeneratorResult> Generate() { AtomConfig config = TryLoadAtomConfig(); if (config == null) { yield break; } var sqlConfig = config.Targets.Values.OfType<SqlTargetConfig>().Single(); var csharpConfig = config.Targets.Values.OfType<CSharpTargetConfig>().Single(); var defaults = AtomCreator.LoadDefaults(config.AtomPath); var sqlArgs = new GeneratorArguments<SqlTargetConfig>(sqlConfig, config.AtomPath, defaults); var args = new GeneratorArguments<CSharpTargetConfig>(csharpConfig, config.AtomPath, defaults, sqlArgs.Atoms); var sqlResult = new SqlGenerator().Generate(sqlArgs); sqlResult.OutputPath = sqlConfig.OutputPath; //if (Directory.Exists(sqlResult.OutputPath)) //{ // foreach (var file in Directory.EnumerateFiles(sqlResult.OutputPath, "*.generated.sql", SearchOption.AllDirectories)) // { // sqlResult.Deletions.Add(file); // } //} string redGateFile = Path.Combine(sqlConfig.OutputPath, "RedGateDatabaseInfo.xml"); Log.Information("Looking for redgate database info xml at {RedGateDatabaseInfoXml}", redGateFile); if (sqlResult.DataFiles.Any() && File.Exists(redGateFile)) { Log.Information("Found redgate file, updating..."); var regate = XDocument.Load(uri: redGateFile); var dataFiles = regate.Root.Elements("DataFileSet").First(); var allDataFiles = dataFiles.Elements("DataFile") .Select(n => n.Value).Union(sqlResult.DataFiles, StringComparer.OrdinalIgnoreCase).ToList(); dataFiles.Elements("Count") .First() .Value = allDataFiles.Count().ToString(); Log.Information("DataFiles Count: {DataFileCount}", allDataFiles.Count()); dataFiles.Elements("DataFile").Remove(); dataFiles.Add(allDataFiles.Select(s => new XElement("DataFile", s))); var genResult = new GeneratorResult() { OutputPath = sqlConfig.OutputPath }; genResult.AddOutput("RedGateDatabaseInfo.xml", regate.ToString()); yield return genResult; } yield return sqlResult; if (csharpConfig.Repository != null) { var repoResult = new RepositoryGenerator(sqlResult).Generate(args); repoResult.OutputPath = csharpConfig.Repository.OutputPath; yield return repoResult; } var codeResult = new CodeGenerator().Generate(args); codeResult.OutputPath = csharpConfig.Entities.OutputPath; yield return codeResult; }
private void btnGenerateCode_Click(object sender, EventArgs e) { try { var tableName = this.txtSqlTableName.Text.Trim(); if (tableName.Length.Equals(0)) { throw new Exception("Necesita especificar el nombre de la tabla."); } var className = this.txtClassName.Text.Trim(); if (className.Length.Equals(0)) { throw new Exception("Necesita especificar el nombre de la clase."); } var varName = $"{className.Substring(0, 1).ToLower()}{className.Substring(1, className.Length - 1)}"; var outputFolder = this.txtOutputFolder.Text.Trim(); if (outputFolder.Length.Equals(0)) { throw new Exception("Necesita especificar el folder destino."); } var sqlFileName = $"{tableName}.sql"; var repositoryFileName = $"{className}Repository.cs"; var interfaceFileName = $"I{className}Service.cs"; var serviceFileName = $"{className}Service.cs"; var gsFileName = $"{className}GetAndSet.cs"; Cursor.Current = Cursors.WaitCursor; //GENERATE SQL var spGen = new StoreProcedureGenerator(tableName); var sqlCode = spGen.GenerateCode(); Utilities.WriteFile(sqlCode, outputFolder, sqlFileName); //-- var spMax = spGen.GetMaxStoreProcedure(); //GENERATE REPOSITORY var rpGen = new RepositoryGenerator(tableName, className, spMax); var repositoryCode = rpGen.GenerateCode(); Utilities.WriteFile(repositoryCode, outputFolder, repositoryFileName); //-- //GENERATE SERVICE var svGen = new ServiceGenerator(className); var interfaceCode = svGen.GenerateCodeInterface(); var serviceCode = svGen.GenerateCodeService(); Utilities.WriteFile(interfaceCode, outputFolder, interfaceFileName); Utilities.WriteFile(serviceCode, outputFolder, serviceFileName); //-- //GENERATE GET AND SET var columns = new List <ColumnTable>(); for (var i = 0; i < this.dgdData.Rows.Count - 1; i++) { var row = this.dgdData.Rows[i]; //row.Cells[2].Value = Utilities.GetSapDataType(column.SapDataType, column.SapDataType2); columns.Add(new ColumnTable { Id = (int)row.Cells[8].Value, SqlTableName = row.Cells[9].Value?.ToString(), SqlColumnName = row.Cells[0].Value?.ToString(), SapDescription = row.Cells[10].Value?.ToString(), SqlDataType = row.Cells[6].Value?.ToString(), SapDataType = "", SapDataType2 = "", SqlSize = (int)row.Cells[3].Value, SqlPrecision = (int)row.Cells[4].Value, NullValue = (bool)row.Cells[7].Value ? 1 : 0, PropertyName = row.Cells[5].Value?.ToString(), PropertyType = row.Cells[6].Value?.ToString() }); } var gsGen = new GetAndSetGenerator <ColumnTable>(tableName, className, varName, columns); var gsCode = gsGen.GenerateCode(); Utilities.WriteFile(gsCode, outputFolder, gsFileName); //-- Cursor.Current = Cursors.Default; MessageBox.Show("Archivos generados", "Info"); } catch (Exception ex) { MessageBox.Show(ex.Message, "Error"); } }