/// <summary>
 /// 获取所有阅览室的座位使用状态
 /// </summary>
 /// <param name="school"></param>
 /// <returns></returns>
 public Dictionary <string, ReadingRoomSeatUsedState_Ex> GetAllRoomSeatUsedState()
 {
     try
     {
         Dictionary <string, ReadingRoomSeatUsedState_Ex> roomStatusEx = new Dictionary <string, ReadingRoomSeatUsedState_Ex>();
         List <SeatManage.ClassModel.ReadingRoomInfo>     rooms        = seatManage.GetReadingRoomInfo(null);
         List <string> roomNums = new List <string>();
         foreach (SeatManage.ClassModel.ReadingRoomInfo room in rooms)
         {
             roomNums.Add(room.No);
         }
         Dictionary <string, ReadingRoomSeatUsedState> roomsUsedState = seatManage.GetRoomSeatUsedState(roomNums);
         foreach (SeatManage.ClassModel.ReadingRoomInfo room in rooms)
         {
             ReadingRoomSeatUsedState_Ex roomSeatState = new ReadingRoomSeatUsedState_Ex();
             roomSeatState.ReadingRoom          = room;
             roomSeatState.PersonTimes          = roomsUsedState[room.No].PersonTimes;
             roomSeatState.SeatAmountAll        = roomsUsedState[room.No].SeatAmountAll;
             roomSeatState.SeatAmountShortLeave = roomsUsedState[room.No].SeatAmountShortLeave;
             roomSeatState.SeatAmountUsed       = roomsUsedState[room.No].SeatAmountUsed;
             roomStatusEx.Add(room.No, roomSeatState);
         }
         return(roomStatusEx);
     }
     catch (Exception ex)
     {
         throw new Exception("获取阅览室座位使用情况失败" + ex.Message);
     }
 }
        /// <summary>
        /// 获取剩余的座位
        /// </summary>
        /// <param name="roomList"></param>
        /// <returns></returns>
        public Dictionary <string, ReadingRoomSeatUsedState_Ex> GetTeminaRoomStatus(List <string> roomNums)
        {
            List <ReadingRoomInfo> rooms = GetReadingRoomInfo(roomNums);
            List <EnterOutLogInfo> roomEnterOutLoglist            = GetRoomUsingSeatEnterOutLogInfo(roomNums);
            List <BespeakLogInfo>  roomBespeakLogs                = GetBespeakLogInfoByRoomsNum(roomNums, GetServerDateTime());
            Dictionary <string, ReadingRoomSeatUsedState_Ex> list = new Dictionary <string, ReadingRoomSeatUsedState_Ex>();

            for (int i = 0; i < rooms.Count; i++)
            {
                ReadingRoomSeatUsedState_Ex usedState = new ReadingRoomSeatUsedState_Ex();
                usedState.ReadingRoom   = rooms[i];
                usedState.SeatAmountAll = rooms[i].SeatList.Seats.Count(u => u.Value.IsSuspended != true);
                List <EnterOutLogInfo> enterOutLoglist = roomEnterOutLoglist.FindAll(u => u.ReadingRoomNo == rooms[i].No);
                List <BespeakLogInfo>  bespeakLogs     = roomBespeakLogs.FindAll(u => u.ReadingRoomNo == rooms[i].No);
                usedState.SeatAmountShortLeave = enterOutLoglist.Count(u => u.EnterOutState == SeatManage.EnumType.EnterOutLogType.ShortLeave);
                for (int j = 0; j < enterOutLoglist.Count; j++)
                {
                    if (bespeakLogs.Find(u => u.SeatNo == enterOutLoglist[j].SeatNo) != null)
                    {
                        usedState.SeatTemUseCount += 1;
                        break;
                    }
                }
                usedState.SeatBookingCount = bespeakLogs.Count;
                usedState.SeatAmountUsed   = enterOutLoglist.Count;
                list.Add(rooms[i].No, usedState);
            }
            return(list);
        }
コード例 #3
0
        /// <summary>
        /// 获取多个阅览室座位使用状态V3
        /// </summary>
        /// <param name="roomNums">阅览室编号列表</param>
        /// <param name="date"></param>
        /// <returns></returns>
        public Dictionary <string, ReadingRoomSeatUsedState> GetRoomSeatUsedStateV3(List <string> roomNums)
        {
            Dictionary <string, ReadingRoomSeatUsedState> stateList = new Dictionary <string, ReadingRoomSeatUsedState>();
            List <ReadingRoomInfo> readingRooms = new List <ReadingRoomInfo>();

            try
            {
                if (roomNums != null && roomNums.Count > 0)
                {
                    for (int i = 0; i < roomNums.Count; i++)
                    {
                        StringBuilder strWhere = new StringBuilder();
                        strWhere.Append(string.Format(" ReadingRoomNo = '{0}'", roomNums[i]));
                        DataSet ds = viewReadingRoomState_DAL.GetList(strWhere.ToString(), null);
                        if (ds.Tables[0].Rows.Count > 0)
                        {
                            ReadingRoomSeatUsedState_Ex roomState = DataRowToReadingRoomSeatUsedState(ds.Tables[0].Rows[0]);
                            ReadingRoomSeatUsedState    state     = new ReadingRoomSeatUsedState();
                            state.SeatAmountAll    = roomState.ReadingRoom.SeatList.Seats.Count(u => u.Value.IsSuspended != true);
                            state.SeatAmountUsed   = roomState.SeatAmountUsed;
                            state.SeatBookingCount = roomState.SeatBookingCount;
                            stateList.Add(roomState.ReadingRoom.No, state);
                        }
                    }
                }
                else
                {
                    DataSet ds = viewReadingRoomState_DAL.GetList("", null);
                    for (int i = 0; i < ds.Tables[0].Rows.Count; i++)
                    {
                        ReadingRoomSeatUsedState_Ex roomState = DataRowToReadingRoomSeatUsedState(ds.Tables[0].Rows[i]);
                        ReadingRoomSeatUsedState    state     = new ReadingRoomSeatUsedState();
                        state.SeatAmountAll    = roomState.ReadingRoom.SeatList.Seats.Count(u => u.Value.IsSuspended != true);
                        state.SeatAmountUsed   = roomState.SeatAmountUsed;
                        state.SeatBookingCount = roomState.SeatBookingCount;
                        stateList.Add(roomState.ReadingRoom.No, state);
                    }
                }
            }
            catch (Exception ex)
            {
                throw new Exception(string.Format("获取阅览室信息失败:{0}", ex.Message));
            }
            return(stateList);
        }
コード例 #4
0
        private ReadingRoomSeatUsedState_Ex DataRowToReadingRoomSeatUsedState(DataRow dr)
        {
            ReadingRoomSeatUsedState_Ex state = new ReadingRoomSeatUsedState_Ex();

            state.ReadingRoom      = new ReadingRoomInfo();
            state.ReadingRoom.No   = dr["ReadingRoomNo"].ToString();
            state.ReadingRoom.Name = dr["ReadingRoomName"].ToString();
            if (!String.IsNullOrEmpty(dr["ReadingSetting"].ToString()))
            {
                state.ReadingRoom.Setting = new ReadingRoomSetting(dr["ReadingSetting"].ToString());
            }
            else
            {
                state.ReadingRoom.Setting = new ReadingRoomSetting();
            }
            if (!string.IsNullOrEmpty(dr["RoomSeat"].ToString()))
            {
                state.ReadingRoom.SeatList = SeatLayout.GetSeatLayout(dr["RoomSeat"].ToString());
            }
            else
            {
                state.ReadingRoom.SeatList = new SeatLayout();
            }
            state.ReadingRoom.Libaray.No          = dr["LibraryNo"].ToString();
            state.ReadingRoom.Libaray.Name        = dr["LibraryName"].ToString();
            state.ReadingRoom.Libaray.School.No   = dr["SchoolNo"].ToString();
            state.ReadingRoom.Libaray.School.Name = dr["SchoolName"].ToString();
            state.ReadingRoom.Libaray.AreaList    = state.ReadingRoom.Libaray.ToList(dr["AreaInfo"].ToString());
            if (dr["AreaName"] != null && !string.IsNullOrEmpty(dr["AreaName"].ToString()))
            {
                foreach (AreaInfo item in state.ReadingRoom.Libaray.AreaList)
                {
                    if (dr["AreaName"].ToString() == item.AreaName)
                    {
                        state.ReadingRoom.Area = item;
                        break;
                    }
                }
            }
            state.SeatAmountUsed   = int.Parse(dr["UsingCount"].ToString());
            state.SeatBookingCount = int.Parse(dr["BespeakCount"].ToString());
            return(state);
        }