/// <summary>Initializes a new instance of the <see cref="DefaultConverterProvider" /> class.</summary> /// <param name="converters">System registered converter instances.</param> public DefaultConverterProvider(IEnumerable <ILiteralConverter> converters) { if (converters == null) { throw new ArgumentNullException(nameof(converters)); } if (!converters.Any()) { throw new ArgumentOutOfRangeException(nameof(converters)); } _fallbackConverter = (_converters = converters).First(converter => !converter.SupportedDataTypes.Any() && (!converter.SupportedTypes.Any())); }
public void Setup() { var converters = new ILiteralConverter[] { new StringConverter(), new DecimalConverter(), new IntegerConverter(), new TestConverter(), new FloatingPointLiteralConverter(), new UntypedLiteralConverter() }; var converterProvider = new DefaultConverterProvider(converters); var mappingProviderVisitors = new IMappingProviderVisitor[] { new CollectionStorageModelConventionVisitor() }; Repository = new DefaultMappingsRepository( new[] { new AttributesMappingSource(typeof(IProduct).GetTypeInfo().Assembly) }, new DefaultMappingBuilder(converterProvider, Array.Empty <QIriMapping>(), mappingProviderVisitors)); }
private static IEntityMapping BuildMapping <TEntity>(this ICollection <ITermMappingProvider> mappingProviders, out IPropertyMapping firstPropertyMapping) { firstPropertyMapping = null; var entityMapping = new MergingEntityMapping(typeof(TEntity)); foreach (var mappingProvider in mappingProviders) { mappingProvider.Accept(MappingVisitors); var entityMappingProvider = mappingProvider as IEntityMappingProvider; if (entityMappingProvider != null) { entityMapping.Classes.Add(new StatementMapping(entityMappingProvider.GetGraph(QIriMappings), entityMappingProvider.GetTerm(QIriMappings))); continue; } var propertyMappingProvider = mappingProvider as IPropertyMappingProvider; if (propertyMappingProvider == null) { continue; } ILiteralConverter valueConverter = null; if (propertyMappingProvider.ValueConverterType != null) { valueConverter = ConverterProvider.FindConverter(propertyMappingProvider.ValueConverterType); } var collectionMappingProvider = mappingProvider as ICollectionMappingProvider; var propertyMapping = (collectionMappingProvider != null ? CollectionMapping.CreateFrom(entityMapping, collectionMappingProvider, valueConverter, QIriMappings) : PropertyMapping.CreateFrom(entityMapping, propertyMappingProvider, valueConverter, QIriMappings)); entityMapping.Properties.Add(propertyMapping); if (firstPropertyMapping == null) { firstPropertyMapping = propertyMapping; } } return(entityMapping); }
public void Setup() { var converters = new ILiteralConverter[] { new StringConverter(), new DecimalConverter(), new IntegerConverter(), new TestConverter(), new FloatingPointLiteralConverter(), new UntypedLiteralConverter() }; var converterProvider = new DefaultConverterProvider(converters); var mappingProviderVisitors = new IMappingProviderVisitor[] { new CollectionStorageModelConventionVisitor(), new ConverterConventionVisitor(converterProvider) }; Builder = new DefaultMappingBuilder(converterProvider, new QIriMapping[0], mappingProviderVisitors); OpenGenericMappingProviders = new Dictionary <Type, ICollection <ITermMappingProvider> >(); TheTest(); }