Example #1
0
        /// <summary>
        /// Deep Clone
        /// </summary>
        /// <returns></returns>
        public EQASubSystemCollectin Copy()
        {
            EQASubSystemCollectin subSystems = new EQASubSystemCollectin();

            if (this.Count <= 0)
            {
                return(subSystems);
            }
            else
            {
                foreach (EQASubSystem subSystem in this)
                {
                    subSystems.Add(subSystem.Copy());
                }
                return(subSystems);
            }
        }
Example #2
0
        /// <summary>
        /// 从SYS表的多个数据行和Loop表, Eqp表生成子系统集合类的实例
        /// </summary>
        /// <param name="rowsEQASubSystem"></param>
        /// <param name="tableEQALoop"></param>
        /// <param name="tableEQAEquipment"></param>
        /// <returns></returns>
        public static EQASubSystemCollectin CreateEQASubSystems(DataRowCollection rowsEQASubSystem, DataTable tableEQACable, DataTable tableEQALoop, DataTable tableEQAEquipment)
        {
            if (rowsEQASubSystem == null)
            {
                throw new System.ArgumentNullException("from function CreateEQASubSystems", "Parameter rowEQASubSystem equals to null");
            }
            if (tableEQACable == null)
            {
                throw new System.ArgumentNullException("from function CreateEQASubSystems", "Parameter tableEQACable equals to null");
            }
            if (tableEQALoop == null)
            {
                throw new System.ArgumentNullException("from function CreateEQASubSystems", "Parameter tableEQALoop equals to null");
            }
            if (tableEQAEquipment == null)
            {
                throw new System.ArgumentNullException("from function CreateEQASubSystems", "Parameter tableEQAEquipment equals to null");
            }

            EQASubSystemCollectin subSystems = new EQASubSystemCollectin();

            if (rowsEQASubSystem.Count <= 0)
            {
                return(subSystems);
            }

            lock (rowsEQASubSystem) {
                lock (tableEQALoop) {
                    lock (tableEQAEquipment) {
                        try {
                            foreach (DataRow rowSubSystem in rowsEQASubSystem)
                            {
                                subSystems.Add(CreateEQASubSystem(rowSubSystem, tableEQACable, tableEQALoop, tableEQAEquipment));
                            }
                        } catch (DataException ex) {
                            MessageBoxWinForm.Info("数据访问错误", ex.Message, "");
                        }
                    }
                }
            }

            return(subSystems);
        }