コード例 #1
0
        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}"));
            }
        }
コード例 #2
0
        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}"));
            }
        }