/// <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();
            }
        }
        //private ViewModel.LoadingUC_ViewModel _LoadViewModel = new LoadingUC_ViewModel();
        ///// <summary>
        ///// 读取滚动条
        ///// </summary>
        //public ViewModel.LoadingUC_ViewModel LoadViewModel
        //{
        //    get { return _LoadViewModel; }
        //    set { _LoadViewModel = value; }
        //}

        #endregion
        /// <summary>
        /// 分区域排列
        /// </summary>
        public void GetRoomUsage()
        {
            try
            {
                //添加区域
                List <LibraryInfo> linList = SeatManage.Bll.T_SM_Library.GetLibraryInfoList(null, null, null);
                foreach (LibraryInfo lib in linList)
                {
                    foreach (AreaInfo area in lib.AreaList)
                    {
                        if (!ReadingRoomUsage.ContainsKey(area.AreaName))
                        {
                            ReadingRoomUsage.Add(area.AreaName, new List <ReadingRoomBtn_ViewModel>());
                        }
                    }
                }
                if (!ReadingRoomUsage.ContainsKey("阅览室"))
                {
                    ReadingRoomUsage.Add("阅览室", new List <ReadingRoomBtn_ViewModel>());
                }

                DateTime nowDateTime = SeatManage.Bll.ServiceDateTime.Now;
                Dictionary <string, ReadingRoomSeatUsedState_Ex> roomStateList = SeatManage.Bll.TerminalOperatorService.GetTeminaRoomStatus(clientObject.ClientSetting.DeviceSetting.Rooms);
                foreach (KeyValuePair <string, ReadingRoomSeatUsedState_Ex> item in roomStateList)
                {
                    if (item.Value.ReadingRoom.Area.AreaName == "")
                    {
                        item.Value.ReadingRoom.Area.AreaName = "阅览室";
                    }
                    if (roomStateList.ContainsKey(item.Key))
                    {
                        SeatManage.EnumType.ReadingRoomStatus roomStatus = SeatClientV3.Code.NowReadingRoomState.ReadingRoomOpenState(item.Value.ReadingRoom.Setting.RoomOpenSet, nowDateTime);
                        if (roomStatus == SeatManage.EnumType.ReadingRoomStatus.Close && !clientObject.ClientSetting.DeviceSetting.IsShowClosedRoom)
                        {
                            continue;
                        }
                        ReadingRoomBtn_ViewModel viewModel = new ReadingRoomBtn_ViewModel();
                        viewModel.ReadingRoomName  = item.Value.ReadingRoom.Name;
                        viewModel.ReadingRoomNo    = item.Value.ReadingRoom.No;
                        viewModel.IsBook           = item.Value.ReadingRoom.Setting.SeatBespeak.Used;
                        viewModel.AllSeatCount     = roomStateList[item.Key].SeatAmountAll;
                        viewModel.UsedSeatCount    = roomStateList[item.Key].SeatAmountUsed;
                        viewModel.BookingSeatCount = roomStateList[item.Key].SeatBookingCount;
                        viewModel.Usage            = roomStateList[item.Key].RoomSeatUsingState;
                        viewModel.Status           = roomStatus;
                        ReadingRoomUsage[item.Value.ReadingRoom.Area.AreaName].Add(viewModel);
                    }
                }
                //删除空区域
                List <string> deleteArea = new List <string>();
                foreach (KeyValuePair <string, List <ReadingRoomBtn_ViewModel> > item in ReadingRoomUsage)
                {
                    if (item.Value.Count < 1)
                    {
                        deleteArea.Add(item.Key);
                    }
                }
                foreach (string a in deleteArea)
                {
                    ReadingRoomUsage.Remove(a);
                }
            }
            catch (Exception ex)
            {
                SeatManage.SeatManageComm.WriteLog.Write("加载阅览室遇到异常" + ex.Message);
                MessageWindow errorWindow = new MessageWindow(SeatManage.EnumType.MessageType.Exception);
                errorWindow.ShowDialog();
            }
        }