示例#1
0
 /// <summary>
 /// 构造函数
 /// </summary>
 private RoomSeatWindowObject(string roomNo)
 {
     try
     {
         if (_window == null)
         {
             _window = new Dictionary <string, RoomSeatWindow>();
         }
         if (!_window.ContainsKey(roomNo))
         {
             _window.Add(roomNo, new RoomSeatWindow(roomNo));
         }
         else
         {
             _window[roomNo] = new RoomSeatWindow(roomNo);
         }
     }
     catch (Exception ex)
     {
         SeatManage.SeatManageComm.WriteLog.Write("阅览室布局窗体初始化失败:" + ex.Message);
         throw ex;
     }
 }
        /// <summary>
        /// 进入阅览室前判断
        /// </summary>
        /// <param name="roomNo"></param>
        public void EnterReadingRoom(ReadingRoomBtn_ViewModel vm_Room)
        {
            try
            {
                this.clientObject.EnterOutLogData.EnterOutlog.ReadingRoomNo = vm_Room.ReadingRoomNo;
                ReadingRoomInfo roomInfo = SeatManage.Bll.T_SM_ReadingRoom.GetSingleRoomInfo(vm_Room.ReadingRoomNo);
                if (vm_Room.Status == SeatManage.EnumType.ReadingRoomStatus.Close || vm_Room.Status == SeatManage.EnumType.ReadingRoomStatus.BeforeClose)
                {
                    clientObject.EnterOutLogData.Student.AtReadingRoom = roomInfo;
                    MessageWindow fullWindow = new MessageWindow(SeatManage.EnumType.MessageType.RoomNotOpen);
                    fullWindow.ShowDialog();
                    clientObject.EnterOutLogData.Student.AtReadingRoom = null;
                    return;
                }
                if (vm_Room.Usage == SeatManage.EnumType.ReadingRoomUsingStatus.Full && (!roomInfo.Setting.NoManagement.Used))
                {
                    MessageWindow fullWindow = new MessageWindow(SeatManage.EnumType.MessageType.RoomFull);
                    fullWindow.ShowDialog();
                    return;
                }
                clientObject.EnterOutLogData.Student.AtReadingRoom = roomInfo;//给读者所在的阅览室赋值。

                //验证读者身份是否允许选择该阅览室。
                if (!Code.SelectSeatProven.ProvenReaderType(clientObject.EnterOutLogData.Student, roomInfo.Setting))
                {
                    MessageWindow popWindow = new MessageWindow(SeatManage.EnumType.MessageType.RoomNotReaderType);
                    popWindow.ShowDialog();
                    return;
                }
                //验证读者黑名单,选座次数。
                if (Code.SelectSeatProven.ProvenReaderState(clientObject.EnterOutLogData.Student, roomInfo, clientObject.RegulationRulesSet.BlacklistSet, clientObject.ClientSetting.DeviceSetting))
                {
                    this.clientObject.EnterOutLogData.EnterOutlog.ReadingRoomNo = "";
                    return;
                }
                //TODO:验证终端选座方式
                if (vm_Room.Usage == SeatManage.EnumType.ReadingRoomUsingStatus.Full && roomInfo.Setting.NoManagement.Used)
                {
                    this.clientObject.EnterOutLogData.FlowControl = SeatManage.EnumType.ClientOperation.SelectSeat;
                    this.clientObject.EnterOutLogData.EnterOutlog.ReadingRoomNo   = roomInfo.No;
                    this.clientObject.EnterOutLogData.EnterOutlog.ReadingRoomName = roomInfo.Name;
                    RoomSeatWindow roomSeatWindow = new RoomSeatWindow();
                    roomSeatWindow.ShowDialog();
                    return;
                }
                else
                {
                    SeatManage.EnumType.SelectSeatMode selectSeatMethod = SeatClientV3.Code.SelectSeatProven.ProvenSelectSeatMethod(clientObject.ClientSetting.DeviceSetting, roomInfo.Setting.SeatChooseMethod);

                    if (selectSeatMethod == SeatManage.EnumType.SelectSeatMode.OptionalMode || selectSeatMethod == SeatManage.EnumType.SelectSeatMode.ManualMode)
                    {
                        this.clientObject.EnterOutLogData.FlowControl = SeatManage.EnumType.ClientOperation.SelectSeat;
                        this.clientObject.EnterOutLogData.EnterOutlog.ReadingRoomNo   = roomInfo.No;
                        this.clientObject.EnterOutLogData.EnterOutlog.ReadingRoomName = roomInfo.Name;
                        RoomSeatWindow roomSeatWindow = new RoomSeatWindow();
                        roomSeatWindow.ShowDialog();
                        return;
                    }
                    else
                    {
                        this.clientObject.EnterOutLogData.FlowControl = SeatManage.EnumType.ClientOperation.RandonSelect;
                        this.clientObject.EnterOutLogData.EnterOutlog.ReadingRoomNo   = roomInfo.No;
                        this.clientObject.EnterOutLogData.EnterOutlog.ReadingRoomName = roomInfo.Name;
                        return;
                    }
                }
            }
            catch (Exception ex)
            {
                SeatManage.SeatManageComm.WriteLog.Write("加载阅览室遇到异常" + ex.Message);
                MessageWindow errorWindow = new MessageWindow(SeatManage.EnumType.MessageType.Exception);
                errorWindow.ShowDialog();
            }
        }