From cc1717e4a318b5d31c2c6685e0e118fe0e530841 Mon Sep 17 00:00:00 2001 From: Jeff Leung Date: Sat, 13 Jan 2024 18:11:07 -0800 Subject: [PATCH] Return a file instead of just a CSV text --- AS1024.GeoFeed.MinimalAPI/Program.cs | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/AS1024.GeoFeed.MinimalAPI/Program.cs b/AS1024.GeoFeed.MinimalAPI/Program.cs index 01c98d9..ef0a2b8 100644 --- a/AS1024.GeoFeed.MinimalAPI/Program.cs +++ b/AS1024.GeoFeed.MinimalAPI/Program.cs @@ -9,6 +9,7 @@ using Microsoft.Extensions.Caching.Memory; using Microsoft.Extensions.Hosting; using Microsoft.Extensions.Logging; using System; +using System.Text; namespace AS1024.GeoFeed.MinimalAPI { @@ -48,7 +49,7 @@ namespace AS1024.GeoFeed.MinimalAPI app.Run(); } - protected static async Task GeoFeedDataRunner(IGeoFeedProvider provider, + protected static async Task GeoFeedDataRunner(IGeoFeedProvider provider, ILogger logger, IGeoFeedPersistentCacheProvider cacheProvider, IMemoryCache memoryCache, @@ -67,20 +68,26 @@ namespace AS1024.GeoFeed.MinimalAPI } } - return feed.ToGeoFeedCsv(); + return Results.File(Encoding.UTF8.GetBytes(feed.ToGeoFeedCsv()), + "text/csv", + "geofeed.csv"); + } catch (HttpRequestException ex) { logger.LogWarning($"Temporary failure of retrieving GeoData from upstream. {ex}"); string geoFeedData = cacheProvider.GetGeoFeed(); - return geoFeedData; + + return Results.File(Encoding.UTF8.GetBytes(geoFeedData), + "text/csv", + "geofeed.csv"); } catch (Exception ex) { logger.LogError($"Error: {ex}"); } - return ""; + return Results.NoContent(); } } }