/// <summary> /// Gets a file engine. /// </summary> /// <typeparam name="TEntity">The type of record.</typeparam> /// <param name="engineFactory">The engine factory.</param> /// <param name="handleEntryReadError">The error handler.</param> /// <returns>A new file engine.</returns> public static IFlatFileEngine GetEngine <TEntity>( this IFlatFileEngineFactory <IDelimitedLayoutDescriptor, IDelimitedFieldSettingsContainer> engineFactory, FileReadErrorHandler?handleEntryReadError = null) where TEntity : class, new() { var descriptorProvider = new DelimitedLayoutDescriptorProvider(); var descriptor = descriptorProvider.GetDescriptor <TEntity>(); return(engineFactory.GetEngine(descriptor, handleEntryReadError)); }
/// <summary> /// Gets the engine. /// </summary> /// <param name="engineFactory">The engine factory.</param> /// <param name="recordTypes">The record types.</param> /// <param name="typeSelectorFunc">The type selector function.</param> /// <param name="handleEntryReadError">The handle entry read error.</param> /// <returns>IFlatFileMultiEngine.</returns> public static IFlatFileMultiEngine GetEngine( this DelimitedFileEngineFactory engineFactory, IEnumerable <Type> recordTypes, Func <string, Type> typeSelectorFunc, Func <string, Exception, bool> handleEntryReadError = null) { var descriptorProvider = new DelimitedLayoutDescriptorProvider(); var descriptors = recordTypes.Select(type => descriptorProvider.GetDescriptor(type)).ToList(); return(engineFactory.GetEngine(descriptors, typeSelectorFunc, handleEntryReadError)); }
/// <summary> /// Gets a file engine. /// </summary> /// <param name="engineFactory">The engine factory.</param> /// <param name="recordTypes">The record types.</param> /// <param name="typeSelectorFunc">The type selector function.</param> /// <param name="handleEntryReadError">The error handler.</param> /// <param name="masterDetailStrategy">Determines how master-detail record relationships are handled.</param> /// <returns>IFlatFileMultiEngine.</returns> public static IFlatFileMultiEngine GetEngine( this DelimitedFileEngineFactory engineFactory, IEnumerable <Type> recordTypes, Func <string, int, Type> typeSelectorFunc, FileReadErrorHandler?handleEntryReadError = null, IMasterDetailStrategy?masterDetailStrategy = null) { var descriptorProvider = new DelimitedLayoutDescriptorProvider(); var descriptors = recordTypes.Select(type => descriptorProvider.GetDescriptor(type)).ToList(); return(engineFactory.GetEngine(descriptors, typeSelectorFunc, handleEntryReadError, masterDetailStrategy)); }