public LambdaConverter(SourceColumn column, Func <IDataReader, int, object> converter, string errorMsg) : base(column, errorMsg) { if (converter == null) { throw new ArgumentNullException("converter"); } this._converter = converter; }
public override int GetHashCode() { unchecked { var hashCode = (SourceColumn != null ? SourceColumn.GetHashCode() : 0); hashCode = (hashCode * 397) ^ (Caption != null ? Caption.GetHashCode() : 0); hashCode = (hashCode * 397) ^ Visible.GetHashCode(); return(hashCode); } }
public SqlMappingInfo(PropertyInfo prop, string[] columns) : this(prop) { if (SourceColumn == MappingHelpers.DO_NOT_MAP || !columns.Contains(SourceColumn.ToUpper())) { SetValue = null; return; } SetValue = CreateSetter(prop); ColumnNumber = Array.IndexOf(columns, SourceColumn.ToUpper()); }
public static DmlfConditionBase CompileSingleFilter(SourceColumn column, string tableAlias) { var expr = new DmlfColumnRefExpression { Column = new DmlfColumnRef { ColumnName = column.Name, Source = new DmlfSource { Alias = tableAlias }, } }; var type = DetectFilterType(column.FilterType, new[] { column }); var cond = FilterParser.ParseFilterExpression(type, expr, column.Filter); return cond; }
public void TestCreateShouldReturnNewSourceMap() { var column = new SourceColumn { Index = 1, Name = "Column 1", DataType = typeof(string), SemanticType = SemanticType.Measure }; var result = _factory.Create(column.Index, column.Name, column.DataType, column.SemanticType); Assert.That(result.Index, Is.EqualTo(column.Index)); Assert.That(result.Name, Is.EqualTo(column.Name)); Assert.That(result.DataType, Is.EqualTo(column.DataType)); Assert.That(result.SemanticType, Is.EqualTo(column.SemanticType)); }
public SimpleFieldConverter(SourceColumn column, string errorMsg) : base(column, errorMsg) { }
public LambdaFieldConverter(SourceColumn column, Func <object, object> converter) : this(column, converter, string.Empty) { }
public NullConverter(SourceColumn column, object nullValue, string errorMsg) : base(column, errorMsg) { this._nullValue = nullValue; }
public Converter(SourceColumn column, string errorMsg) { this._column = column; this._errorMsg = errorMsg; }
public LambdaConverter(SourceColumn column, Func <IDataReader, int, object> converter) : this(column, converter, string.Empty) { }
private object ConvertType(SourceColumn col, SourceColumnInfo sci, object src_val) { if (src_val == null || src_val == DBNull.Value) return src_val; var destType = sci.DestType; var srcType = sci.SrcType; var dstIsEnumProp = sci.DestIsEnumProp; object dest_val = src_val; if (dstIsEnumProp) { Log.DebugFormat("Convert [{0}] = '{1}' from [{2}] to enum", col.Name, src_val, srcType); // Lookup mapping first var destEnum = col.EnumEntries.FirstOrDefault(e => e.SourceValue == src_val.ToString()); if (destEnum != null) { return destEnum.DestinationValue.Value; } else { // Try to autoresolve var enumProp = (Zetbox.App.Base.EnumerationProperty)col.DestinationProperty.Last(); // Lookup by name var destEnumEntry = enumProp.Enumeration.EnumerationEntries.FirstOrDefault(e => e.Name == src_val.ToString()); if (destEnumEntry != null) { return destEnumEntry.Value; } else { // Try by number int int_val; if (int.TryParse(src_val.ToString(), out int_val)) { destEnumEntry = enumProp.Enumeration.EnumerationEntries.FirstOrDefault(e => e.Value == int_val); if (destEnumEntry != null) { return destEnumEntry.Value; } } } // Nothing found -> return null return DBNull.Value; } } else if (srcType != destType && col.References == null) { Log.DebugFormat("Convert [{0}] = '{1}' from [{2}] to [{3}]", col.Name, src_val, srcType, destType); try { switch (destType) { case DbType.AnsiString: case DbType.AnsiStringFixedLength: case DbType.String: case DbType.StringFixedLength: dest_val = src_val.ToString(); break; case DbType.Boolean: dest_val = _boolConverter.Convert(src_val); break; case DbType.Date: case DbType.DateTime: case DbType.DateTime2: dest_val = _dateTimeConverter.Convert(src_val); break; case DbType.Single: dest_val = Convert.ToSingle(src_val, CultureInfo.GetCultureInfo("de-AT")); break; case DbType.Double: dest_val = Convert.ToDouble(src_val, CultureInfo.GetCultureInfo("de-AT")); break; case DbType.Byte: dest_val = _byteConverter.Convert(src_val); break; case DbType.Int16: dest_val = _int16Converter.Convert(src_val); break; case DbType.Int32: dest_val = _int32Converter.Convert(src_val); break; case DbType.SByte: dest_val = Convert.ToSByte(src_val, CultureInfo.GetCultureInfo("de-AT")); break; case DbType.Int64: dest_val = Convert.ToInt64(src_val, CultureInfo.GetCultureInfo("de-AT")); break; case DbType.UInt16: dest_val = Convert.ToUInt16(src_val, CultureInfo.GetCultureInfo("de-AT")); break; case DbType.UInt32: dest_val = Convert.ToUInt32(src_val, CultureInfo.GetCultureInfo("de-AT")); break; case DbType.UInt64: dest_val = Convert.ToUInt64(src_val, CultureInfo.GetCultureInfo("de-AT")); break; case DbType.Guid: dest_val = new Guid(src_val.ToString()); break; case DbType.Currency: case DbType.Decimal: case DbType.VarNumeric: dest_val = Convert.ToDecimal(src_val, CultureInfo.GetCultureInfo("de-AT")); break; case DbType.Binary: case DbType.DateTimeOffset: case DbType.Object: case DbType.Time: case DbType.Xml: default: throw new NotSupportedException("Unknown DbType " + destType.ToString()); } } catch { dest_val = DBNull.Value; } if (dest_val == null || dest_val == DBNull.Value) { AddError(string.Format("Unable to convert '{{0}}' to {0}", destType), src_val); } } Log.DebugFormat(" => '{0}'", dest_val); return dest_val; }
public LambdaFieldConverter(SourceColumn column, Func<object, object> converter, string errorMsg) : base(column, errorMsg) { if (converter == null) throw new ArgumentNullException("converter"); this._converter = converter; }
public LambdaFieldConverter(SourceColumn column, Func<object, object> converter) : this(column, converter, string.Empty) { }
public LambdaConverter(SourceColumn column, Func<IDataReader, int, object> converter) : this(column, converter, string.Empty) { }
private object ConvertType(SourceColumn col, SourceColumnInfo sci, object src_val) { if (src_val == null || src_val == DBNull.Value) { return(src_val); } var destType = sci.DestType; var srcType = sci.SrcType; var dstIsEnumProp = sci.DestIsEnumProp; object dest_val = src_val; if (dstIsEnumProp) { Log.DebugFormat("Convert [{0}] = '{1}' from [{2}] to enum", col.Name, src_val, srcType); // Lookup mapping first var destEnum = col.EnumEntries.FirstOrDefault(e => e.SourceValue == src_val.ToString()); if (destEnum != null) { return(destEnum.DestinationValue.Value); } else { // Try to autoresolve var enumProp = (Zetbox.App.Base.EnumerationProperty)col.DestinationProperty.Last(); // Lookup by name var destEnumEntry = enumProp.Enumeration.EnumerationEntries.FirstOrDefault(e => e.Name == src_val.ToString()); if (destEnumEntry != null) { return(destEnumEntry.Value); } else { // Try by number int int_val; if (int.TryParse(src_val.ToString(), out int_val)) { destEnumEntry = enumProp.Enumeration.EnumerationEntries.FirstOrDefault(e => e.Value == int_val); if (destEnumEntry != null) { return(destEnumEntry.Value); } } } // Nothing found -> return null return(DBNull.Value); } } else if (srcType != destType && col.References == null) { Log.DebugFormat("Convert [{0}] = '{1}' from [{2}] to [{3}]", col.Name, src_val, srcType, destType); try { switch (destType) { case DbType.AnsiString: case DbType.AnsiStringFixedLength: case DbType.String: case DbType.StringFixedLength: dest_val = src_val.ToString(); break; case DbType.Boolean: dest_val = _boolConverter.Convert(src_val); break; case DbType.Date: case DbType.DateTime: case DbType.DateTime2: dest_val = _dateTimeConverter.Convert(src_val); break; case DbType.Single: dest_val = Convert.ToSingle(src_val, CultureInfo.GetCultureInfo("de-AT")); break; case DbType.Double: dest_val = Convert.ToDouble(src_val, CultureInfo.GetCultureInfo("de-AT")); break; case DbType.Byte: dest_val = _byteConverter.Convert(src_val); break; case DbType.Int16: dest_val = _int16Converter.Convert(src_val); break; case DbType.Int32: dest_val = _int32Converter.Convert(src_val); break; case DbType.SByte: dest_val = Convert.ToSByte(src_val, CultureInfo.GetCultureInfo("de-AT")); break; case DbType.Int64: dest_val = Convert.ToInt64(src_val, CultureInfo.GetCultureInfo("de-AT")); break; case DbType.UInt16: dest_val = Convert.ToUInt16(src_val, CultureInfo.GetCultureInfo("de-AT")); break; case DbType.UInt32: dest_val = Convert.ToUInt32(src_val, CultureInfo.GetCultureInfo("de-AT")); break; case DbType.UInt64: dest_val = Convert.ToUInt64(src_val, CultureInfo.GetCultureInfo("de-AT")); break; case DbType.Guid: dest_val = new Guid(src_val.ToString()); break; case DbType.Currency: case DbType.Decimal: case DbType.VarNumeric: dest_val = Convert.ToDecimal(src_val, CultureInfo.GetCultureInfo("de-AT")); break; case DbType.Binary: case DbType.DateTimeOffset: case DbType.Object: case DbType.Time: case DbType.Xml: default: throw new NotSupportedException("Unknown DbType " + destType.ToString()); } } catch { dest_val = DBNull.Value; } if (dest_val == null || dest_val == DBNull.Value) { AddError(string.Format("Unable to convert '{{0}}' to {0}", destType), src_val); } } Log.DebugFormat(" => '{0}'", dest_val); return(dest_val); }