internal static ValueObjectWrapper GetValueObjects(object instance, SqlParserConfig config) { if (instance == null) { throw new ArgumentNullException(nameof(instance)); } var type = instance.GetType(); var valueObjects = new Dictionary <string, ValueObject>(); var propertyValues = new Dictionary <string, ValueWrapper>(); var properties = GetPropertyInfoCaches(type); foreach (var propertyInfo in properties) { var vo = new ValueObject(propertyInfo, config, propertyInfo.Name, propertyInfo.GetValue(instance), propertyInfo.PropertyType); vo.Initialize(); valueObjects.Add(propertyInfo.Name, vo); var wrapper = new ValueWrapper { Name = propertyInfo.Name, Value = vo.Value, Type = propertyInfo.PropertyType }; propertyValues.Add(propertyInfo.Name, wrapper); } var result = new ValueObjectWrapper(propertyValues, valueObjects); return(result); }
internal ValueObject(SqlParserConfig config, string parameterName, object parameterValue, Type parameterType) { _dialect = config.Dialect; PropertyName = parameterName; Value = parameterValue; DataType = parameterType; }
public OdbcSqlParserTest() { ConfigContainer.AddAdditional( DbConnectionKind.Odbc, () => new OdbcParameter(), nameof(OdbcSqlParserTest) ); _config = ConfigContainer.AdditionalConfigs[nameof(OdbcSqlParserTest)]; }
internal DomaSqlBuilder(ISqlNode node, object model, SqlParserConfig config, EasyExpressionEvaluator evaluator) { _node = node; _config = config; var valueObjectWrapper = ValueObjectCache.GetValueObjects(model, _config); _propertyValues = valueObjectWrapper.PropertyValues; _valueObjects = valueObjectWrapper.ValueObjects; ExpressionEvaluator = evaluator; }
//private readonly EasyExpressionEvaluator _evaluator; // for unit test internal DomaSqlBuilder(ISqlNode node, List <ParameterEmulator> emulators, SqlParserConfig config = null, string sqlFilePath = null) { _node = node; _config = config ?? ConfigContainer.DefaultConfig; var valueObjectWrapper = ValueObjectCache.GetValueObjects(emulators, _config); _propertyValues = valueObjectWrapper.PropertyValues; _valueObjects = valueObjectWrapper.ValueObjects; if (string.IsNullOrEmpty(sqlFilePath)) { ExpressionEvaluator = new EasyExpressionEvaluator(); } else { ExpressionEvaluator = new EasyExpressionEvaluator(sqlFilePath); } }
// for unit test internal static ValueObjectWrapper GetValueObjects(List <ParameterEmulator> emulators, SqlParserConfig config) { if (emulators == null) { throw new ArgumentNullException(nameof(emulators)); } var valueObjects = new Dictionary <string, ValueObject>(); var propertyValues = new Dictionary <string, ValueWrapper>(); foreach (var emulator in emulators) { var vo = new ValueObject(config, emulator.Name, emulator.ParameterValue, emulator.ParameterType); vo.Initialize(); valueObjects.Add(emulator.Name, vo); var wrapper = new ValueWrapper { Name = emulator.Name, Value = vo.Value, Type = emulator.ParameterType }; propertyValues.Add(wrapper.Name, wrapper); } var result = new ValueObjectWrapper(propertyValues, valueObjects); return(result); }
internal Context(SqlParserConfig config) { _config = config; }
public MysqlPagingTransformerTest() { _config = ConfigContainer.CreateConfigForTest(DbConnectionKind.MySql, nameof(MysqlPagingTransformerTest)); }
public StandardPagingTransformerTest() { _config = ConfigContainer.CreateConfigForTest(DbConnectionKind.Odbc, nameof(StandardPagingTransformerTest)); }
public OraclePagingTransformerTest() { _config = ConfigContainer.CreateConfigForTest(DbConnectionKind.Oracle, nameof(OraclePagingTransformerTest)); }
public MssqlPagingTransformerTest() { _config = ConfigContainer.CreateConfigForTest(DbConnectionKind.SqlServerLegacy, nameof(MssqlPagingTransformerTest)); }
public Db2PagingTransformerTest() { _config = ConfigContainer.CreateConfigForTest(DbConnectionKind.DB2, nameof(Db2PagingTransformerTest)); }
/// <summary> /// Create a new SqlParser instance /// </summary> /// <param name="sqlFilePath">file path for 2way sql</param> /// <param name="model">parameter object for 2way sql</param> /// <param name="config"> /// configuration of SqlParser.<br/> /// The default value for this parameter is null.<br/> /// if this parameter is null, use default config.<br/> /// </param> public SqlParser(string sqlFilePath, object model, SqlParserConfig config = null) { _sqlFilePath = sqlFilePath; _model = model; _config = config ?? ConfigContainer.DefaultConfig; }
public SqlitePagingTransformerTest() { _config = ConfigContainer.CreateConfigForTest(DbConnectionKind.SQLite, nameof(SqlitePagingTransformerTest)); }
public PostgresPagingTransformerTest() { _config = ConfigContainer.CreateConfigForTest(DbConnectionKind.PostgreSql, nameof(PostgresPagingTransformerTest)); }