/// <summary>
    /// Gets a sorted list of TrailSite instances containing water tank facilities, sorted from east to west. The list is a copy, mofifications to the list have no affect on the original.
    /// </summary>
    /// <returns>List of TrailSite :List of matching TrailSite instances, or null if none found.</returns>
    public List <TrailSite> GetTrailSitesWithTankWater()
    {
        List <TrailSite> ts = _model.GetTrailSites(AppDelegates.PlaceHasFacility(Facility.FACILITY_NAME_TANK_WATER));

        if (ts is null)
        {
            return(null);
        }
        ts.Sort();
        return(ts);
    }
    /// <summary>
    /// Gets the sorted list of CampSite instances containing shower facilities, sorted from east to west. The list is a copy, mofifications to the list have no affect on the original.
    /// </summary>
    /// <returns>List of CampSite :List of matching CampSite instances, or null if none found.</returns>
    public List <CampSite> GetCampSitesWithShower()
    {
        List <CampSite> campSites = _model.GetCampSites(AppDelegates.PlaceHasFacility(Facility.FACILITY_NAME_SHOWER));

        if (campSites is null)
        {
            return(null);
        }
        campSites.Sort();
        return(campSites);
    }
    /// <summary>
    /// Gets the sorted list of CampSite instances containing USB charging facilities, sorted from east to west. The list is a copy, mofifications to the list have no affect on the original.
    /// </summary>
    /// <returns>List of CampSite: List of matching CampSite instances, or null if none found.</returns>
    public List <CampSite> GetCampSitesWithUSBCharging()
    {
        List <CampSite> campSites = _model.GetCampSites(AppDelegates.PlaceHasFacility(Facility.FACILITY_NAME_USB_CHARGER));

        if (campSites is null)
        {
            return(null);
        }
        campSites.Sort();
        return(campSites);
    }
    /// <summary>
    /// Gets a sorted list of Place instances having parking facilities, sorted from east to west. The list is a copy, mofifications to the list have no affect on the original.
    /// </summary>
    /// <returns>List of Place :List of matching Place instances, or null if none found.</returns>
    public List <Place> GetPlacesWithParking()
    {
        List <Place> places = _model.GetPlaces(AppDelegates.PlaceHasFacility(Facility.FACILITY_NAME_PAPRKING));

        if (places is null)
        {
            return(null);
        }
        places.Sort();
        return(places);
    }
    /// <summary>
    /// Gets the sorted list of Place instances containing toilet facilities, sorted from east to west. The list is a copy, mofifications to the list have no affect on the original.
    /// </summary>
    /// <returns>List of Place: List of matching Place instances, or null if none found.</returns>
    public List <Place> GetPlacesWithToilet()
    {
        List <Place> places = _model.GetPlaces(AppDelegates.PlaceHasFacility(Facility.FACILITY_NAME_TOILET));

        if (places is null)
        {
            return(null);
        }
        places.Sort();
        return(places);
    }
    /// <summary>
    /// Gets the sorted list of Place instances containing shelter facilities, sorted from east to west. The list is a copy, mofifications to the list have no affect on the original.
    /// </summary>
    /// <returns>List of Place :List of matching Place instances, or null if none found.</returns>
    public List <Place> GetPlacesWithShelter()
    {
        List <Place> places = _model.GetPlaces(AppDelegates.PlaceHasFacility(Facility.FACILITY_NAME_SHELTER));

        if (places is null)
        {
            return(null);
        }
        places.Sort();
        return(places);
    }