/// <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(); } }