/// <summary> /// Loads the entities and produces a load result. /// </summary> public ILoaderState Load() { ILoaderLogWriter log = Log ?? new LoaderLogWriter(_logger); try { var dataSourceProcessor = new DataSourceProcessor <TDtoIn, TLoadStateData>(_validator, log) { EntitiesGet = GetDtos(), Initialize = Initialize, MaxBatchSize = MaxBatchSize, Processor = (loaderState, dtoIn) => Process(dtoIn, loaderState), Commit = Commit }; ILoaderState result = dataSourceProcessor.Process(); return(result); } finally { OnLoaded(); } }
/// <summary> /// Creates a new instance. /// </summary> /// <param name="validator"> /// Optional validator to use. Null will use 'SpecProvider' /// </param> /// <param name="log">The log to post event to.</param> public DataSourceProcessor(IProvideSpecifications <TEntityDtoIn> validator = null, ILoaderLogWriter log = null) { _validator = validator ?? new SpecProvider <TEntityDtoIn>(); Log = Log ?? new LoaderLogWriter(LogManager.GetLogger(GetLogSystemName())); }