/// <summary>
        /// Lấy danh sách các loại phòng khác nhau ở trên tàu
        /// </summary>
        /// <param name="cruise"></param>
        /// <returns></returns>
        public IList Rooms(Cruise cruise)
        {
            if (!_rooms.ContainsKey(cruise.Id))
            {
                IList rooms     = _module.RoomGetAll(cruise);
                IList roomtypes = new ArrayList();

                // Kiểm tra đã có bảng map tàu/ loại phòng trong từ điển hay chưa, nếu chưa thì tạo mới
                Dictionary <string, int> roomMap = new Dictionary <string, int>();
                if (RoomCountMap.ContainsKey(cruise.Id))
                {
                    RoomCountMap[cruise.Id] = roomMap;
                }
                else
                {
                    RoomCountMap.Add(cruise.Id, roomMap);
                }

                foreach (Room room in rooms)
                {
                    if (!roomMap.ContainsKey(string.Format("{0}#{1}", room.RoomClass.Id, room.RoomType.Id)))
                    {
                        roomMap.Add(string.Format("{0}#{1}", room.RoomClass.Id, room.RoomType.Id), 1);
                        roomtypes.Add(room); // Nếu là loại chưa có trong từ điển thì thêm vào danh sách loại
                    }
                    else
                    {
                        roomMap[string.Format("{0}#{1}", room.RoomClass.Id, room.RoomType.Id)] += 1;
                    }
                }

                _rooms.Add(cruise.Id, roomtypes);
            }
            return(_rooms[cruise.Id]);
        }