ParametersMap VehicleServicesListService::run(
			std::ostream& stream,
			const Request& request
		) const {

			ParametersMap map;

			BOOST_FOREACH(const VehicleService::Registry::value_type& item, _env->getRegistry<VehicleService>())
			{
				const VehicleService& vs(*item.second);

				// Date filter
				if(!_date.is_not_a_date() && !vs.isActive(_date))
				{
					continue;
				}

				// Name filter
				if(!_name.empty())
				{
					if(	vs.getName().size() < _name.size() ||
						vs.getName().substr(0, _name.size()) != _name
					){
						continue;
					}
				}

				boost::shared_ptr<ParametersMap> vsMap(new ParametersMap);
				vs.toParametersMap(*vsMap, true);
				map.insert(TAG_VEHICLE_SERVICE, vsMap);
			}

			if(_page)
			{
				if(map.hasSubMaps(TAG_VEHICLE_SERVICE))
				{
					BOOST_FOREACH(const boost::shared_ptr<ParametersMap>& vsMap, map.getSubMaps(TAG_VEHICLE_SERVICE))
					{
						vsMap->merge(getTemplateParameters());
						_page->display(stream, request, *vsMap);
					}
				}
			}