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(); } } }