Пример #1
0
        private void selectNext(int direction)
        {
            var visibleRooms = Rooms.AsEnumerable().Where(r => r.IsPresent);

            Room room;

            if (selectedRoom.Value == null)
            {
                room = visibleRooms.FirstOrDefault()?.Room;
            }
            else
            {
                if (direction < 0)
                {
                    visibleRooms = visibleRooms.Reverse();
                }

                room = visibleRooms.SkipWhile(r => r.Room != selectedRoom.Value).Skip(1).FirstOrDefault()?.Room;
            }

            // we already have a valid selection only change selection if we still have a room to switch to.
            if (room != null)
            {
                selectRoom(room);
            }
        }