Example #1
0
        /// <summary>
        /// 根据表格的行信息执行控制
        /// </summary>
        /// <param name="model"></param>
        private void GetControlCommand(DeviceModel model, ref CommandInvoker cmdInvoker)
        {
            if (model == null)
            {
                return;
            }

            if (model.IsDoorOperate)
            {
                if (model.DoorOperateFlag == true)
                {
                    // 开门操作
                    OpenDoorCommand cmd = new OpenDoorCommand(Controller, model.DeviceNo);
                    cmdInvoker.AddCommand(cmd);
                }
                else
                {
                    // 关门操作
                    CloseDoorCommand cmd = new CloseDoorCommand(Controller, model.DeviceNo);
                    cmdInvoker.AddCommand(cmd);
                }
            }

            if (model.IsGoLayer)
            {
                // 走层操作
                RunCommand cmd = new RunCommand(Controller, model.DeviceNo);
                cmd.dstLayers = new int[1] {
                    model.DstLayerNo
                };
                cmdInvoker.AddCommand(cmd);
            }
        }
Example #2
0
        /// <summary>
        /// 全部关门
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void btnCloseDoor_Click(object sender, EventArgs e)
        {
            // 获得选中的行
            int[] selectedIdx = gvDeviceInfo.GetSelectedRows();

            foreach (int item in selectedIdx)
            {
                // 将选中行的信息转换为设备模型对象
                DeviceModel model = (DeviceModel)gvDeviceInfo.GetRow(item);

                // 生成关门命令
                CloseDoorCommand cmd = new CloseDoorCommand(Controller, model.DeviceNo);
                commandInvoker.AddCommand(cmd);
            }

            // 执行命令队列里的所有命令
            commandInvoker.ExecuteCommand();
        }
 public DoorController(OpenDoorCommand openDoorCommand, CloseDoorCommand closeDoorCommand, GetDoorDirectionQuery getDoorDirectionQuery)
 {
     _openDoorCommand       = openDoorCommand;
     _closeDoorCommand      = closeDoorCommand;
     _getDoorDirectionQuery = getDoorDirectionQuery;
 }
Example #4
0
 public Door()
 {
     Close = new CloseDoorCommand();
     Open  = new OpenDoorCommand();
 }