Some minor housekeeping
This commit is contained in:
parent
e8152186c1
commit
42aacf497c
|
|
@ -0,0 +1,15 @@
|
||||||
|
using AS1024.GeoFeed.Models;
|
||||||
|
using System.Text.Json.Serialization;
|
||||||
|
|
||||||
|
namespace AS1024.GeoFeed.MinimalAPI
|
||||||
|
{
|
||||||
|
[JsonSerializable(typeof(NetboxData))]
|
||||||
|
[JsonSerializable(typeof(Result))]
|
||||||
|
[JsonSerializable(typeof(CustomFields))]
|
||||||
|
[JsonSourceGenerationOptions(PropertyNamingPolicy = JsonKnownNamingPolicy.SnakeCaseLower)]
|
||||||
|
internal partial class AppJsonSerializerContext : JsonSerializerContext
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
@ -6,8 +6,9 @@ using AS1024.GeoFeed.Models;
|
||||||
using Microsoft.AspNetCore.Http.HttpResults;
|
using Microsoft.AspNetCore.Http.HttpResults;
|
||||||
using Microsoft.AspNetCore.Mvc;
|
using Microsoft.AspNetCore.Mvc;
|
||||||
using Microsoft.Extensions.Caching.Memory;
|
using Microsoft.Extensions.Caching.Memory;
|
||||||
|
using Microsoft.Extensions.Hosting;
|
||||||
|
using Microsoft.Extensions.Logging;
|
||||||
using System;
|
using System;
|
||||||
using System.Text.Json.Serialization;
|
|
||||||
|
|
||||||
namespace AS1024.GeoFeed.MinimalAPI
|
namespace AS1024.GeoFeed.MinimalAPI
|
||||||
{
|
{
|
||||||
|
|
@ -27,11 +28,32 @@ namespace AS1024.GeoFeed.MinimalAPI
|
||||||
options.SerializerOptions.TypeInfoResolverChain.Insert(0, AppJsonSerializerContext.Default);
|
options.SerializerOptions.TypeInfoResolverChain.Insert(0, AppJsonSerializerContext.Default);
|
||||||
});
|
});
|
||||||
var app = builder.Build();
|
var app = builder.Build();
|
||||||
var geoFeed = app.Map("/geofeed.csv", async (IGeoFeedProvider provider,
|
|
||||||
|
app.Map("/geofeed.csv", async (IGeoFeedProvider provider,
|
||||||
ILogger<Program> logger,
|
ILogger<Program> logger,
|
||||||
IGeoFeedPersistentCacheProvider cacheProvider,
|
IGeoFeedPersistentCacheProvider cacheProvider,
|
||||||
IMemoryCache memoryCache,
|
IMemoryCache memoryCache,
|
||||||
IWebHostEnvironment environment) => {
|
IWebHostEnvironment environment) => {
|
||||||
|
return await GeoFeedDataRunner(provider, logger, cacheProvider, memoryCache, environment);
|
||||||
|
});
|
||||||
|
|
||||||
|
app.Map("/geofeed", async (IGeoFeedProvider provider,
|
||||||
|
ILogger<Program> logger,
|
||||||
|
IGeoFeedPersistentCacheProvider cacheProvider,
|
||||||
|
IMemoryCache memoryCache,
|
||||||
|
IWebHostEnvironment environment) => {
|
||||||
|
return await GeoFeedDataRunner(provider, logger, cacheProvider, memoryCache, environment);
|
||||||
|
});
|
||||||
|
|
||||||
|
app.Run();
|
||||||
|
}
|
||||||
|
|
||||||
|
protected static async Task<string> GeoFeedDataRunner(IGeoFeedProvider provider,
|
||||||
|
ILogger<Program> logger,
|
||||||
|
IGeoFeedPersistentCacheProvider cacheProvider,
|
||||||
|
IMemoryCache memoryCache,
|
||||||
|
IWebHostEnvironment environment)
|
||||||
|
{
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
if (!memoryCache.TryGetValue("Geofeed", out List<IPGeoFeed>? feed))
|
if (!memoryCache.TryGetValue("Geofeed", out List<IPGeoFeed>? feed))
|
||||||
|
|
@ -59,18 +81,6 @@ namespace AS1024.GeoFeed.MinimalAPI
|
||||||
}
|
}
|
||||||
|
|
||||||
return "";
|
return "";
|
||||||
});
|
|
||||||
app.Run();
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
[JsonSerializable(typeof(NetboxData))]
|
|
||||||
[JsonSerializable(typeof(Result))]
|
|
||||||
[JsonSerializable(typeof(CustomFields))]
|
|
||||||
[JsonSourceGenerationOptions(PropertyNamingPolicy = JsonKnownNamingPolicy.SnakeCaseLower)]
|
|
||||||
internal partial class AppJsonSerializerContext : JsonSerializerContext
|
|
||||||
{
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue