public async Task <IActionResult> KmlFromCallToRaw([FromQuery] FromUrlQueryQuerierOptions options, [FromQuery] ToLocationFromQuery toLocation, [FromQuery] FromLocationFromQuery fromLocation, [FromQuery] KmlSettingsFromQuery kmlSettings) { Program.RequestStatistics.ApiV1KmlRequests++; if (fromLocation == null) { return(this.BadRequest("Error: fromLocation is null")); } if (toLocation == null) { return(this.BadRequest("Error: location is null")); } IQuerierOptions optionsInUse = this.CreateOptions(options); try { var action = new KmlAction(fromLocation, toLocation, optionsInUse as FromUrlQueryQuerierOptions, this.hamnetDbAccess); var kmlString = await action.Execute(); if ((kmlSettings != null) && (kmlSettings.AsText)) { return(this.Ok(kmlString)); } return(this.File(Encoding.UTF8.GetBytes(kmlString), KmlContentType, $"raw-From-To-{DateTime.Now:yyyyMMddTHHmmss}.kml")); } catch (Exception ex) { return(this.BadRequest($"Error: {ex.Message}")); } }
public async Task <IActionResult> Kml(string fromSite, string toSite, [FromQuery] FromUrlQueryQuerierOptions options, [FromQuery] KmlSettingsFromQuery kmlSettings) { Program.RequestStatistics.ApiV1KmlRequests++; if (string.IsNullOrWhiteSpace(fromSite)) { return(this.BadRequest("Error: fromSite is null, empty or white-space-only")); } if (string.IsNullOrWhiteSpace(toSite)) { return(this.BadRequest("Error: toSite is null, empty or white-space-only")); } IQuerierOptions optionsInUse = this.CreateOptions(options); try { var action = new KmlAction(WebUtility.UrlDecode(fromSite), WebUtility.UrlDecode(toSite), optionsInUse as FromUrlQueryQuerierOptions, this.hamnetDbAccess); var kmlString = await action.Execute(); if ((kmlSettings != null) && (kmlSettings.AsText)) { return(this.Ok(kmlString)); } return(this.File(Encoding.UTF8.GetBytes(kmlString), KmlContentType, $"{fromSite}-{toSite}-{DateTime.Now:yyyyMMddTHHmmss}.kml")); } catch (Exception ex) { return(this.BadRequest($"Error: {ex.Message}")); } }