/// <summary> /// Gets a new table from the source table filtered by objects. /// </summary> private static IBaseTable GetFilteredTable <T>(IBaseTable srcTable, List <int> objNums) { IBaseTable destTable = new BaseTable <T>(srcTable.PrimaryKey, srcTable.Title); foreach (int objNum in objNums) { foreach (object item in srcTable.SelectItems(new TableFilter("ObjNum", objNum), true)) { destTable.AddObject(item); } } return(destTable); }
/// <summary> /// Gets a new table from the source table filtered by objects. /// </summary> private IBaseTable GetFilteredTable <T>(IBaseTable srcTable, List <int> objNums) { IBaseTable destTable = new BaseTable <T>(srcTable.Name, srcTable.PrimaryKey, srcTable.Title); if (srcTable.TryGetIndex("ObjNum", out TableIndex index)) { foreach (int objNum in objNums) { if (index.ItemGroups.TryGetValue(objNum, out SortedDictionary <int, object> itemGroup)) { foreach (object item in itemGroup.Values) { destTable.AddObject(item); } } } } else { throw new ScadaException(AdminPhrases.IndexNotFound); } return(destTable); }