Exemplo n.º 1
0
        /// <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);
        }
Exemplo n.º 2
0
        /// <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);
        }