public DataExtactionItem GetCategoryCollection(string name)
 {
     if (!_categoryCollections.Keys.Contains(name))
     {
         var item = new DataExtactionItem()
         {
             Text = name, IsItemStyle = true, TreeNodes = new ObservableCollection <DataExtactionItem>()
         };
         _categoryCollections.Add(name, item);
         DataList.Add(item);
     }
     return(_categoryCollections[name]);
 }
 public DataExtactionItem GetSubCategoryn(string name, Object data, DataExtactionItem owner)
 {
     if (!_subCategorys.Keys.Contains(name))
     {
         var item = new DataExtactionItem()
         {
             Text = name, IsItemStyle = false, Data = data, TreeNodes = new ObservableCollection <DataExtactionItem>()
         };
         _subCategorys.Add(name, item);
         owner.TreeNodes.Add(item);
     }
     return(_subCategorys[name]);
 }
Example #3
0
        /// <summary>
        /// 加载单次提取的数据
        /// </summary>
        /// <param name="extactPath"></param>
        /// <returns></returns>
        private DataExtactionItem LoadSingleExtactData(string extactPath)
        {
            if (!Directory.Exists(Path.Combine(extactPath, "Result")))     //如果包含了Result文件夹,则认为是测试数据
            {
                return(null);
            }
            DirectoryInfo     d      = new DirectoryInfo(extactPath);
            DataExtactionItem extact = new DataExtactionItem()
            {
                Text = d.Name, TreeNodes = new ObservableCollection <DataExtactionItem>()
            };

            List <DataExtactionItem> ls = new List <DataExtactionItem>();

            foreach (var bin in Directory.GetFiles(Path.Combine(extactPath, "Result"), "*.ds"))        //ds为IDataSource二进制序列化包
            {
                try
                {
                    IDataSource ds = Serializer.DeSerializeFromBinary <IDataSource>(bin);
                    ds.SetCurrentPath(extactPath);     //修改数据中的当前任务路径,因为原始数据中存储的是绝对路径
                    if (ds != null)
                    {
                        ds.Filter <dynamic>();
                        ls.Add(new DataExtactionItem()
                        {
                            Text      = ds.PluginInfo.Name,
                            Index     = ds.PluginInfo == null ? 0 : ds.PluginInfo.OrderIndex,
                            Group     = ds.PluginInfo.Group,
                            Data      = ds,
                            TreeNodes = new ObservableCollection <DataExtactionItem>()
                        });
                    }
                }
                catch
                {
                }
            }
            //所有应用数据的分组和排序
            foreach (var group in ls.GroupBy(g => g.Group))
            {
                DataExtactionItem g = new DataExtactionItem()
                {
                    Text = group.Key, TreeNodes = new ObservableCollection <DataExtactionItem>()
                };
                g.TreeNodes.AddRange(group.ToList().OrderBy(p => p.Index));       //添加该分组的所有插件,并按照序号排序
                extact.TreeNodes.Add(g);
            }

            return(extact);
        }