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]); }
/// <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); }