Beispiel #1
0
        private MainMessage RoomList(RoomListQuery listQuery)
        {
            _log.Debug("In RoomList method.");
            RoomList roomList = new RoomList();
            IEnumerable <RoomDetail> roomEnum = _roomList.Select(x => x.ToNetworkModel());

            if (listQuery.NotEmpty)
            {
                roomEnum = roomEnum.Where(x => x.Players.Count != 0);
            }
            if (listQuery.NotFull)
            {
                roomEnum = roomEnum.Where(x => x.Players.Count != x.Capacity);
            }
            roomList.RoomList_.Add(roomEnum);
            MainMessage msg = PrepareMsg();

            msg.RoomMsg.RoomList = roomList;
            return(msg);
        }
        private MainMessage RoomListClient(RoomListQuery roomListQuery)
        {
            MainMessage msg = new MainMessage();

            msg.RoomMsg          = new RoomMsg();
            msg.RoomMsg.RoomList = new RoomList();
            // flatten
            IEnumerable <Room> rooms = _roomsPerServer.Values.SelectMany(x => x);

            // search filter
            rooms = rooms.Where(x => x.Name.Contains(roomListQuery.Search));
            // not empty filter
            if (roomListQuery.NotEmpty)
            {
                rooms = rooms.Where(x => x.Players.Count != 0);
            }
            // not full filter
            if (roomListQuery.NotFull)
            {
                rooms = rooms.Where(x => x.Players.Count != x.Capacity);
            }
            msg.RoomMsg.RoomList.RoomList_.AddRange(rooms.Select(x => x.ToNetworkModel()));
            return(msg);
        }