public object Execute(TransformContext context) { var logger = context.Service <ILogger>(); logger.LogDebug("ExecuteScalar transform"); var sql = context.Arguments.Get <string>("sql"); var dataType = context.Arguments.Get <string>("dataType"); var sqlHelper = new SqlHelper(sql); foreach (var pair in context.Arguments) { logger.LogDebug("arg {0}:{1}", pair.Key, pair.Value); if (!pair.Key.ToLower().StartsWith("param.")) { continue; } var key = pair.Key.Substring(6); sqlHelper.Parameters.Add(key, pair.Value); } var result = sqlHelper.ExecuteScalar(); var targetType = PropertyTypes.Parse(dataType); if (result == null || DBNull.Value.Equals(result)) { return(null); } return(Convert.ChangeType(result, targetType)); }
public Filter CreateFilter() { var expression = new FilterExpression(); var dataType = PropertyTypes.Parse(_dataType); var value = Convert.ChangeType(_value, dataType); if (dataType == typeof(int)) { return(expression.NotEqual(_field, (int)value)); } if (dataType == typeof(string)) { return(expression.NotEqual(_field, (string)value)); } if (dataType == typeof(DateTime)) { return(expression.NotEqual(_field, (DateTime)value)); } if (dataType == typeof(decimal)) { return(expression.NotEqual(_field, (decimal)value)); } throw new NotSupportedException("Unsupported data type: " + _dataType); }
public void parses_known_types() { PropertyTypes.Parse("int").ShouldEqual(typeof(int)); PropertyTypes.Parse("string").ShouldEqual(typeof(string)); PropertyTypes.Parse("dateTime").ShouldEqual(typeof(DateTime)); PropertyTypes.Parse("decimal").ShouldEqual(typeof(decimal)); PropertyTypes.Parse("bool").ShouldEqual(typeof(bool)); PropertyTypes.Parse("double").ShouldEqual(typeof(double)); PropertyTypes.Parse("float").ShouldEqual(typeof(float)); PropertyTypes.Parse("short").ShouldEqual(typeof(short)); }
public Filter CreateFilter() { var expression = new FilterExpression(); var dataType = PropertyTypes.Parse(_dataType); if (dataType == typeof(string)) { return(expression.IsIn(_field, _values)); } throw new NotSupportedException("Unsupported data type: " + _dataType); }
public void Visit(BeginProperty instruction) { executeInstruction(() => { var key = instruction.Key.Resolve(_services).ToString(); _propertyDef = new PropertyDefinition { Key = instruction.Key.Resolve(_services).ToString() }; if (instruction.Field == null) { return; } _currentFieldMap = new FieldMap { Key = key, FieldNames = new[] { instruction.Field.Resolve(_services).ToString() }, IsIdentifier = instruction.IsIdentifier, PropertyType = PropertyTypes.Parse(instruction.DataType.Resolve(_services).ToString()) }; }); }