/// <summary> /// 选座座位 /// </summary> /// <param name="seatBtn"></param> /// <returns></returns> public bool SelectSeat(SeatButton seatBtn) { SeatManage.EnumType.SeatLockState lockseat = T_SM_Seat.LockSeat(seatBtn.SeatNo); if (lockseat == SeatManage.EnumType.SeatLockState.Locked)//座位成功加锁 { clientObject.EnterOutLogData.EnterOutlog.ShortSeatNo = seatBtn.ShortSeatNo; clientObject.EnterOutLogData.EnterOutlog.ReadingRoomName = _ReadingRoomName; clientObject.EnterOutLogData.EnterOutlog.ReadingRoomNo = _ReadingRoomNo; MessageWindow popWindow = new MessageWindow(SeatManage.EnumType.MessageType.SelectSeatConfirm); CountDown.Pause(); popWindow.ShowDialog(); CountDown.Start(); if (popWindow.viewModel.OperateResule == SeatManage.EnumType.HandleResult.Successed) { clientObject.EnterOutLogData.EnterOutlog.ReadingRoomName = _ReadingRoomName; clientObject.EnterOutLogData.EnterOutlog.ReadingRoomNo = _ReadingRoomNo; clientObject.EnterOutLogData.EnterOutlog.SeatNo = seatBtn.SeatNo; clientObject.EnterOutLogData.EnterOutlog.ShortSeatNo = seatBtn.ShortSeatNo; clientObject.EnterOutLogData.EnterOutlog.TerminalNum = clientObject.ClientSetting.ClientNo; clientObject.EnterOutLogData.FlowControl = SeatManage.EnumType.ClientOperation.SelectSeat; //操作为选择座位 clientObject.EnterOutLogData.EnterOutlog.Remark = string.Format("在终端{0}手动选择,{1},{2}号座位", clientObject.ClientSetting.ClientNo, clientObject.EnterOutLogData.Student.AtReadingRoom.Name, seatBtn.ShortSeatNo); RoomSelectSeatMethod = SeatManage.EnumType.SelectSeatMode.ManualMode; return(true); } else { T_SM_Seat.UnLockSeat(seatBtn.SeatNo);//确认窗口点击取消或者自动关闭,则解锁。 } } else if (lockseat == SeatManage.EnumType.SeatLockState.UnLock)//没有成功加锁 { MessageWindow popWindow = new MessageWindow(SeatManage.EnumType.MessageType.SeatIsLocked); CountDown.Pause(); popWindow.ShowDialog(); CountDown.Start(); } else if (lockseat == SeatManage.EnumType.SeatLockState.NotExists) { MessageWindow popWindow = new MessageWindow(SeatManage.EnumType.MessageType.SeatNotExist); CountDown.Pause(); popWindow.ShowDialog(); CountDown.Start(); } return(false); }
/// <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(); } }
/// <summary> /// 选择预约的座位 /// </summary> /// <param name="seatBtn"></param> /// <returns></returns> public bool SelectBookingSeat(SeatButton seatBtn) { DateTime datetimeNow = SeatManage.Bll.ServiceDateTime.Now; List <SeatManage.ClassModel.BespeakLogInfo> bespeakLogList = SeatManage.Bll.T_SM_SeatBespeak.GetBespeakLogInfoBySeatNo(seatBtn.SeatNo, datetimeNow.Date); if (bespeakLogList.Count > 0) { if (bespeakLogList[0].BsepeakTime.AddMinutes(-double.Parse(clientObject.EnterOutLogData.Student.AtReadingRoom.Setting.SeatBespeak.ConfirmTime.BeginTime)) <= datetimeNow) { PopupWindow popWindow = new PopupWindow(SeatManage.EnumType.TipType.IsBookingSeat); CountDown.Pause(); popWindow.ShowDialog(); CountDown.Start(); return(false); } else { clientObject.EnterOutLogData.BespeakLogInfo = bespeakLogList[0]; PopupWindow popWindow = new PopupWindow(SeatManage.EnumType.TipType.SelectBookingSeatWarn); CountDown.Pause(); popWindow.ShowDialog(); CountDown.Start(); if (popWindow.viewModel.OperateResule == SeatManage.EnumType.HandleResult.Failed) { clientObject.EnterOutLogData.BespeakLogInfo = null; return(false); } } } else { SeatManage.EnumType.SeatLockState lockseat = T_SM_Seat.LockSeat(seatBtn.SeatNo); if (lockseat == SeatManage.EnumType.SeatLockState.Locked)//座位成功加锁 { clientObject.EnterOutLogData.EnterOutlog.ShortSeatNo = seatBtn.ShortSeatNo; clientObject.EnterOutLogData.EnterOutlog.ReadingRoomName = _ReadingRoomName; PopupWindow popWindow = new PopupWindow(SeatManage.EnumType.TipType.SelectSeatConfinmed); CountDown.Pause(); popWindow.ShowDialog(); CountDown.Start(); if (popWindow.viewModel.OperateResule == SeatManage.EnumType.HandleResult.Failed) { T_SM_Seat.UnLockSeat(seatBtn.SeatNo);//确认窗口点击取消或者自动关闭,则解锁。 return(false); } } else if (lockseat == SeatManage.EnumType.SeatLockState.UnLock)//没有成功加锁 { PopupWindow popWindow = new PopupWindow(SeatManage.EnumType.TipType.SeatLocking); CountDown.Pause(); popWindow.ShowDialog(); CountDown.Start(); return(false); } else if (lockseat == SeatManage.EnumType.SeatLockState.NotExists) { PopupWindow popWindow = new PopupWindow(SeatManage.EnumType.TipType.SeatNotExists); CountDown.Pause(); popWindow.ShowDialog(); CountDown.Start(); return(false); } } clientObject.EnterOutLogData.EnterOutlog.SeatNo = seatBtn.SeatNo; clientObject.EnterOutLogData.EnterOutlog.ShortSeatNo = seatBtn.ShortSeatNo; clientObject.EnterOutLogData.EnterOutlog.TerminalNum = clientObject.ClientSetting.ClientNo; clientObject.EnterOutLogData.FlowControl = SeatManage.EnumType.ClientOperation.SelectSeat; //操作为选择座位 clientObject.EnterOutLogData.EnterOutlog.Remark = string.Format("在终端{0}手动选择,{1},{2}号座位", clientObject.ClientSetting.ClientNo, clientObject.EnterOutLogData.Student.AtReadingRoom.Name, seatBtn.ShortSeatNo); RoomSelectSeatMethod = SeatManage.EnumType.SelectSeatMode.ManualMode; return(true); }