Return a file instead of just a CSV text

This commit is contained in:
Jeff Leung 2024-01-13 18:11:07 -08:00
parent 48932ec2a5
commit cc1717e4a3
1 changed files with 11 additions and 4 deletions

View File

@ -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<string> GeoFeedDataRunner(IGeoFeedProvider provider,
protected static async Task<IResult> GeoFeedDataRunner(IGeoFeedProvider provider,
ILogger<Program> 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();
}
}
}