private ObjectMapper CreateObjectMapper(TableMap tableMap, IEnumerable<DataColumnInfo> schema) { var instanceFactory = _configuration.InstanceFactoryProviders.FirstOrDefault(x => x.CanHandle(tableMap.Type)) ?? new DefaultInstanceFactory(); var mapper = new ObjectMapper(instanceFactory); mapper.Initialize(tableMap, schema); return mapper; }
public IEnumerable<IDataParameter> Map(object input, TableMap tableMap) { if (input == null) return Enumerable.Empty<IDataParameter>(); var dataParameters = input as IEnumerable<IDataParameter>; if (dataParameters != null) return dataParameters; throw new NotImplementedException(); }
public void Initialize(TableMap tableMap, IEnumerable<DataColumnInfo> schema) { var dictionary = schema.ToDictionary(x => x.Name.ToLower(), x => x.Index); foreach (var propertyMap in tableMap.Columns) { int index; if (!dictionary.TryGetValue(propertyMap.ColumnName.ToLower(), out index)) continue; var setter = PropertySetter.Create(tableMap.Type, propertyMap.PropertyName); _recordToPropertyMappers.Add(new DataRecordToPropertyMapper(index, setter, propertyMap.Serializer)); } }
private IInstanceMapper CreateMapper(TableMap tableMap, IEnumerable<DataColumnInfo> schema) { var targetType = tableMap.Type; if (targetType == typeof(ExpandoObject)) return new ExpandoObjectMapper(); if (targetType.IsGenericType && targetType.GetGenericTypeDefinition() == typeof(DataEntityTuple<>)) return CreateDataEntityTupleMapper(tableMap, schema); return CreateObjectMapper(tableMap, schema); }
public ParameterBuilderFactory(TableMap tableMap) { _tableMap = tableMap; }
private IInstanceMapper CreateDataEntityTupleMapper(TableMap tableMap, IEnumerable<DataColumnInfo> schema) { var expandoObjectMapper = new ExpandoObjectMapper(); var objectMapper = CreateObjectMapper(tableMap, schema); return new DataEntityTupleMapper(expandoObjectMapper, objectMapper); }
public void Add(Type type, TableMap tableMap) { _dictionary.Add(type, tableMap); }