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