public static DatabaseService Create(SmartSqlBuilderFactory builderFactory, ISqlProviderFactory sqlProviderFactory, Connection connection)
        {
            var builder  = builderFactory.Create(connection);
            var provider = sqlProviderFactory.Create(connection.DbType);

            return(new DatabaseService(builder, connection, provider));
        }
        public IActionResult GenerateEntityClass(
            [FromQuery] ColumnRequest request
            , [FromServices] SmartSqlBuilderFactory factory
            , [FromServices] ISqlProviderFactory sqlProviderFactory
            , [FromServices] ConnectionService connectionService
            )
        {
            var connection = connectionService.QuerySingle(request.ConnectionId);

            if (connection == null)
            {
                return(null);
            }
            var dbService = DatabaseService.Create(factory, sqlProviderFactory, connection);
            var columns   = dbService.ListColumns(request.TableName);
            var code      = _codeGenerator.Execute(columns);

            return(Success(code));
        }
 /// <summary>
 /// Resets by removing the factory.
 /// </summary>
 public static void Reset()
 {
     factory = null;
 }
 /// <summary>
 /// Sets the factory.
 /// </summary>
 /// <param name="fact">The fact.</param>
 public static void SetFactory(ISqlProviderFactory fact)
 {
     factory = fact;
 }
 /// <summary>
 /// Sets the factory.
 /// </summary>
 /// <param name="fact">The fact.</param>
 public static void SetFactory(ISqlProviderFactory fact)
 {
     factory = fact;
 }
 /// <summary>
 /// Resets by removing the factory.
 /// </summary>
 public static void Reset()
 {
     factory = null;
 }