/// <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));
        }
예제 #2
0
        /// <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));
        }