/// <summary> /// 创建执行上下文。 /// </summary> /// <param name="dataPump">数据泵。</param> /// <param name="metaData">元数据。</param> /// <param name="rootSavePath">保存路径。</param> /// <param name="source">数据源。</param> /// <param name="extractItems">提取项列表。</param> /// <param name="asyn">异步通知器。</param> /// <returns>执行上下文。</returns> internal static DataPumpExecutionContext CreateContext(this DataPumpBase dataPump, Pump metaData, String rootSavePath, SourceFileItem source, IEnumerable <ExtractItem> extractItems, IAsyncProgress asyn = null) { DataPumpExecutionContext context = dataPump.CreateContext(metaData, rootSavePath, source); context.ExtractItems = extractItems; DataPumpControllableExecutionContext contextEx = context as DataPumpControllableExecutionContext; if (contextEx != null) { contextEx.Reporter = asyn; } return(contextEx); }
/// <summary> /// 执行数据泵。 /// </summary> /// <param name="pump">元数据。</param> /// <param name="savePath">保存路径。</param> /// <param name="source">数据源。</param> /// <param name="reporter">异步通知器。</param> /// <param name="items">提取项列表。</param> /// <returns>数据泵任务执行上下文。</returns> public static DataPumpExecutionContext Execute(this Pump pump, String savePath, SourceFileItem source, IAsyncProgress reporter, IEnumerable <ExtractItem> items = null) { DataPumpBase dataPump = pump.GetDataPump(); DataPumpExecutionContext context = dataPump.CreateContext(pump, savePath, source); DataPumpControllableExecutionContext contextEx = context as DataPumpControllableExecutionContext; if (contextEx != null) { contextEx.Reporter = reporter; } dataPump.Execute(context); return(context); }
/// <summary> /// 执行数据泵。 /// </summary> /// <param name="dataPump">元数据。</param> /// <param name="source">数据源。</param> /// <param name="reporter">异步通知器。</param> /// <param name="items">提取项列表。</param> /// <returns>数据泵任务执行上下文。</returns> public static DataPumpExecutionContext Execute(this DataPumpBase dataPump, SourceFileItem source, MultiTaskReporterBase reporter, params ExtractItem[] items) { DataPumpExecutionContext context = dataPump.CreateContext(source); context.ExtractItems = items; DataPumpControllableExecutionContext contextEx = context as DataPumpControllableExecutionContext; if (contextEx != null) { contextEx.Reporter = reporter; } dataPump.Execute(context); return(context); }