Beispiel #1
0
        /// <summary>
        /// 数据提取控制器构造器
        /// </summary>
        /// <param name="task">当前任务实例</param>
        /// <param name="source">提取对象</param>
        /// <param name="extractItems">提取项集合</param>
        /// <param name="asyn">异步通知</param>
        /// <param name="workMode">工作模式</param>
        public DataExtractControler(SPFTask task, Pump source, ExtractItemCollection extractItems, IAsyncProgress asyn, EnumDataExtractWorkMode workMode)
        {
            OwnerTask    = task;
            SourcePump   = source;
            Asyn         = asyn;
            WorkMode     = workMode;
            ExtractItems = extractItems.GetAllCheckedExtractItem();

            MainWorkThread = new SingleThread();
        }
Beispiel #2
0
        /// <summary>
        /// 获取提取项列表
        /// </summary>
        /// <param name="source">数据泵</param>
        /// <returns></returns>
        public ExtractItemCollection GetAllExtractItems(Pump source)
        {
            ExtractItemCollection extracts = new ExtractItemCollection();

            //插件过滤 根据提取方式和操作系统
            var filtetResult = GetPluginsByType <DataParsePluginInfo>(PluginType.SpfDataParse).Keys.Where(p => p.Pump.HasFlag(source.Type) &&
                                                                                                          p.DeviceOSType.HasFlag(source.OSType));

            //加载提取项列表
            extracts.Load(filtetResult);

            return(extracts);
        }