/// <summary>
        /// Shows a detailed report of all the places that fit the criteria
        /// </summary>
        public ActionResult Report(CartoPlaceReportRequest report)
        {
            var model = InitModel();

            var political = new GeoPolitical(report);

            model.SelectedCountry   = political.Country;
            model.SelectedPlaceType = report.PlaceType;

            model.ReportFilters = report;
            model.ReportPlaces  = _cartoPlaceService.ReportPlaces(report);

            return(View(model));
        }
        public static string GetReportUrl(CartoPlaceReportRequest filter, string mode = "report")
        {
            var url = $"/carto/{mode}/?";

            if (!String.IsNullOrWhiteSpace(filter.PlaceType))
            {
                url += $"PlaceType={filter.PlaceType}&";
            }
            if (!String.IsNullOrWhiteSpace(filter.Country))
            {
                url += $"Country={filter.Country}&";
            }
            if (!String.IsNullOrWhiteSpace(filter.Region))
            {
                url += $"Region={filter.Region}&";
            }
            if (!String.IsNullOrWhiteSpace(filter.Name))
            {
                url += $"Name={filter.Name}&";
            }

            return(url);
        }
 public static string GetPlacesUrl(CartoPlaceReportRequest filter)
 {
     return(GetReportUrl(filter, "places"));
 }