예제 #1
0
 private void GenerateCSharpClassDefinition()
 {
     try
     {
         var options = new CSharpClassTextGeneratorOptions();
         options.IncludePropertyAnnotationAttributes = IncludePropertyAttributes.Value;
         var conn = DatabaseSelectionController.GetDbConnection();
         GeneratedCSharpText.Value =
             CSharpClassGeneratorFromAdoDataReader.GenerateClass(conn, SqlQuery.Value, ClassName.Value, options);
     }
     catch (Exception e)
     {
         MessageBox.Show(e.ToString());
     }
 }
    public static string CreateCSharpClass(IEnumerable <SISColumn> schemaColumns,
                                           string tableName,
                                           CSharpClassTextGeneratorOptions generatorOptions)
    {
        generatorOptions ??= CSharpClassTextGeneratorOptions.Default;

        var sqlColumns       = schemaColumns.Select(InformationSchemaColumnToSqlColumn).ToList();
        var cSharpProperties = sqlColumns.Select(CSharpPropertyFactoryFromSqlColumn.ToCSharpProperty).ToList();

        var classText =
            CSharpClassTextGenerator.GenerateClassText(tableName,
                                                       cSharpProperties,
                                                       generatorOptions);

        return(classText.Trim());
    }
    public static string GenerateClassText(string className,
                                           IEnumerable <CSharpProperty> cSharpProperties,
                                           CSharpClassTextGeneratorOptions options)
    {
        var sb = new StringBuilder();

        sb.AppendLine(string.Format("public class {0}", className));
        sb.AppendLine("{");
        foreach (var cSharpProperty in cSharpProperties)
        {
            var transformedCSharpProperty = TransformProperty(className, cSharpProperty);
            sb.AppendLine(transformedCSharpProperty.ToString(options));
        }

        sb.AppendLine("}");
        return(sb.ToString());
    }
예제 #4
0
    private static async Task GeneratePbsiDatabaseTypes(StaticSqlConnectionProvider scp,
                                                        bool includeAttributes, bool includeTemporalColumns)
    {
        var generatorOptions = new CSharpClassTextGeneratorOptions()
        {
            IncludePropertyAnnotationAttributes = includeAttributes
        };

        var tableDefinitions = await InformationSchemaMetadataExplorer.GetInformationSchemaTableDefinitions(scp);

        foreach (var tableDefinition in tableDefinitions)
        {
            if (string.Equals(tableDefinition.InformationSchemaTable.TABLE_SCHEMA, "PbsiSf",
                              StringComparison.CurrentCultureIgnoreCase))
            {
                continue;
            }

            var columns = tableDefinition.InformationSchemaColumns;
            if (!includeTemporalColumns)
            {
                columns = columns.Where(z => !z.COLUMN_NAME.InsensitiveEquals("validto") &&
                                        !z.COLUMN_NAME.InsensitiveEquals("validfrom")
                                        )
                          .ToList();
            }

            var tableName = tableDefinition.InformationSchemaTable.TABLE_NAME
                            .Replace(".", "")
                            .Replace("$", "_");

            if (tableName.EndsWith("_History", StringComparison.OrdinalIgnoreCase))
            {
                continue;
            }

            var cSharpClass = CSharpClassGeneratorFromInformationSchema.CreateCSharpClass(
                columns,
                tableName,
                generatorOptions
                );
            Console.WriteLine(cSharpClass);
        }
    }
    public string ToString(CSharpClassTextGeneratorOptions options)
    {
        var generator = new CSharpPropertyTextGenerator(this, options);

        return(generator.Generate());
    }
예제 #6
0
 public CSharpPropertyTextGenerator(CSharpProperty property, CSharpClassTextGeneratorOptions options) : this(property)
 {
     _cSharpClassTextGeneratorOptions = options;
 }