Example #1
0
        /// <summary>
        /// 复制变量组
        /// </summary>
        /// <param name="sourse">源</param>
        /// <param name="destination">目标</param>
        /// <param name="pasteMode">粘贴模式,0:默认模式,重复则返回,1:如果重复则替换,2:如果重复则两个变量都保留,3:如果重复则放弃</param>
        private void CopyGroup(VariableGroup sourse, VariableGroup destination, uint pasteMode)
        {
            if (sourse == null)
            {
                return;
            }
            string groupName = sourse.Name;

            if ((pasteMode == 2) && IsExistName(sourse.Name, destination))//同时保留两个
            {
                groupName = GetDefaultName(destination, sourse.Name);
            }
            AddGroup(groupName, destination.AbsolutePath);

            VariableGroup var =
                VariableRepository.FindGroupByPath(destination.AbsolutePath == null ? groupName : destination.AbsolutePath + "." + groupName);

            if (var == null)
            {
                throw new ArgumentNullException(Resource1.VariableRepository_CopyGroup_destinationIsNotExist);
            }

            foreach (var childVariable in sourse.ChildVariables)
            {
                var varVariable = new AnalogVariable(var);
                ObjectCopier.CopyProperties(varVariable, childVariable);
                AddVariable(varVariable);
            }

            foreach (var variableGroup in sourse.ChildGroups)
            {
                CopyGroup(variableGroup, var, pasteMode);
            }
        }
Example #2
0
 /// <summary>
 /// 修改变量属性
 /// </summary>
 /// <param name="variable">修改前变量</param>
 /// <param name="newVariable">修改后变量</param>
 /// <returns>修改后的变量,修改失败返回null</returns>
 public virtual VariableBase EditVariable(VariableBase variable, VariableBase newVariable)
 {
     if (variable.Name != newVariable.Name && IsExistName(newVariable.Name, variable.ParentGroup))
     {
         throw new Exception(Resource1.VariableUnitOfWork_EditVariable_AvarialeNameExist);
     }
     ObjectCopier.CopyProperties(variable, newVariable);
     RealTimeRepositoryBase.RtDbContext.SaveAllChanges();
     return(variable);
 }
Example #3
0
        /// <summary>
        ///     修改报警
        /// </summary>
        public void EditAlarmGroup(string name, AlarmGroup newAlarmGroup)
        {
            CheckAlarmGroupSetIsNull();
            if (!IsExistAlarmGroupName(newAlarmGroup.Name))
            {
                throw new Exception("报警组名称已存在,不能修改");
            }
            var alarmGroup = FindAlarmGroupByName(name);

            if (alarmGroup == null)
            {
                throw new Exception("需要修改的报警组不存在");
            }
            ObjectCopier.CopyProperties(alarmGroup, newAlarmGroup);
            RealTimeRepositoryBase.RtDbContext.SaveAllChanges();
        }
Example #4
0
        /// <summary>
        ///     修改报警
        /// </summary>
        public void EditAlarm(string name, AlarmBase newAlarmBase)
        {
            CheckAlarmSetIsNull();
            if (!IsExistAlarmName(newAlarmBase.Name))
            {
                throw new Exception("报警名称已存在,不能修改");
            }
            AlarmBase alarm = FindAlarmByName(name);

            if (alarm == null)
            {
                throw new Exception("需要修改的报警不存在");
            }
            ObjectCopier.CopyProperties(alarm, newAlarmBase);
            RealTimeRepositoryBase.RtDbContext.SaveAllChanges();
        }