diff --git a/AS1024.GeoFeed.Core/AS1024.GeoFeed.Core.csproj b/AS1024.GeoFeed.Core/AS1024.GeoFeed.Core.csproj index 09884c4..08f0b0d 100644 --- a/AS1024.GeoFeed.Core/AS1024.GeoFeed.Core.csproj +++ b/AS1024.GeoFeed.Core/AS1024.GeoFeed.Core.csproj @@ -1,4 +1,4 @@ - + net8.0 diff --git a/AS1024.GeoFeed.Core/CacheService/GeoFeedCacheService.cs b/AS1024.GeoFeed.Core/CacheService/GeoFeedCacheService.cs index 9572532..2570aae 100644 --- a/AS1024.GeoFeed.Core/CacheService/GeoFeedCacheService.cs +++ b/AS1024.GeoFeed.Core/CacheService/GeoFeedCacheService.cs @@ -42,7 +42,7 @@ namespace AS1024.GeoFeed.Core.CacheService var persistentCacheProvider = scope.ServiceProvider.GetRequiredService(); - var results = await feedProvider.GetGeoFeedData(); + var results = await feedProvider.GetGeoFeedDataAsync(); await persistentCacheProvider.CacheGeoFeed(results); } catch (Exception) diff --git a/AS1024.GeoFeed.Core/GeoFeedLogic/GeoFeedReturn.cs b/AS1024.GeoFeed.Core/GeoFeedLogic/GeoFeedReturn.cs deleted file mode 100644 index b9f5030..0000000 --- a/AS1024.GeoFeed.Core/GeoFeedLogic/GeoFeedReturn.cs +++ /dev/null @@ -1,70 +0,0 @@ -using System.Text; -using AS1024.GeoFeed.Core.Interfaces; -using AS1024.GeoFeed.Core.Tools; -using AS1024.GeoFeed.Models; -using Microsoft.Extensions.Caching.Memory; - -namespace AS1024.GeoFeed.Core.GeoFeedLogic -{ - public class GeoFeedReturn - { - private const string GeoFeedCacheKey = "GeoFeedData"; - private readonly IGeoFeedProvider provider; - private readonly ILogger logger; - private readonly IGeoFeedPersistentCacheProvider cacheProvider; - private readonly IMemoryCache memoryCache; - private readonly IWebHostEnvironment environment; - - public GeoFeedReturn(IGeoFeedProvider provider, - ILogger logger, - IGeoFeedPersistentCacheProvider cacheProvider, - IMemoryCache memoryCache, - IWebHostEnvironment environment) - { - this.provider = provider; - this.logger = logger; - this.cacheProvider = cacheProvider; - this.memoryCache = memoryCache; - this.environment = environment; - } - - public async Task GetGeoFeed() - { - bool isCached = true; - try - { - if (!memoryCache.TryGetValue(GeoFeedCacheKey, out List? feed)) - { - isCached = false; - feed = await provider.GetGeoFeedData(); - if (environment.IsProduction()) - { - MemoryCacheEntryOptions cacheEntryOptions = new MemoryCacheEntryOptions() - .SetSlidingExpiration(TimeSpan.FromMinutes(15)); - memoryCache.Set(GeoFeedCacheKey, feed, cacheEntryOptions); - } - } - - return Results.File(Encoding.UTF8.GetBytes(feed.ToGeoFeedCsv(true, isCached)), - "text/csv", - "geofeed.csv"); - - } - catch (HttpRequestException ex) - { - logger.LogWarning($"Temporary failure of retrieving GeoData from upstream. {ex}"); - string geoFeedData = cacheProvider.GetGeoFeed(); - - return Results.File(Encoding.UTF8.GetBytes(geoFeedData), - "text/csv", - "geofeed.csv"); - } - catch (Exception ex) - { - logger.LogError($"Error: {ex}"); - } - - return Results.NoContent(); - } - } -} diff --git a/AS1024.GeoFeed.Core/GeoFeedPreloader/PreloadGeoFeed.cs b/AS1024.GeoFeed.Core/GeoFeedPreloader/PreloadGeoFeed.cs index d0aa1e9..4b6f20d 100644 --- a/AS1024.GeoFeed.Core/GeoFeedPreloader/PreloadGeoFeed.cs +++ b/AS1024.GeoFeed.Core/GeoFeedPreloader/PreloadGeoFeed.cs @@ -41,7 +41,7 @@ namespace AS1024.GeoFeed.Core.GeoFeedPreloader private async Task StartPreLoad() { logger.LogInformation("Preloading GeoFeed data in memory..."); - List feed = await provider.GetGeoFeedData(); + List feed = await provider.GetGeoFeedDataAsync(); MemoryCacheEntryOptions cacheEntryOptions = new MemoryCacheEntryOptions().SetAbsoluteExpiration(TimeSpan.FromMinutes(45)); memoryCache.Set(GeoFeedCacheKey, feed, cacheEntryOptions); } diff --git a/AS1024.GeoFeed.Core/GeoFeedProviders/NetBoxGeoFeedProviderBase.cs b/AS1024.GeoFeed.Core/GeoFeedProviders/NetBoxGeoFeedProviderBase.cs index 452ab95..3b4899e 100644 --- a/AS1024.GeoFeed.Core/GeoFeedProviders/NetBoxGeoFeedProviderBase.cs +++ b/AS1024.GeoFeed.Core/GeoFeedProviders/NetBoxGeoFeedProviderBase.cs @@ -31,7 +31,7 @@ namespace AS1024.GeoFeed.Core.GeoFeedProviders this.httpClientFactory = httpClientFactory; } - public async Task> GetGeoFeedData() + public async Task> GetGeoFeedDataAsync() { List geoFeed = []; using HttpClient client = httpClientFactory.CreateClient(); diff --git a/AS1024.GeoFeed.Core/Interfaces/IGeoFeedProvider.cs b/AS1024.GeoFeed.Core/Interfaces/IGeoFeedProvider.cs index 719fb20..b97bcaf 100644 --- a/AS1024.GeoFeed.Core/Interfaces/IGeoFeedProvider.cs +++ b/AS1024.GeoFeed.Core/Interfaces/IGeoFeedProvider.cs @@ -5,6 +5,6 @@ namespace AS1024.GeoFeed.Core.Interfaces public interface IGeoFeedProvider { public string GeoFeedProviderName { get; } - public Task> GetGeoFeedData(); + public Task> GetGeoFeedDataAsync(); } }