Preparation fo Mystery rolling

This commit is contained in:
2026-05-24 02:55:03 -05:00
parent 47bd6110cf
commit bceff701bf
15 changed files with 646 additions and 32 deletions

View File

@@ -1,5 +1,7 @@
namespace ALttPRandomizer {
using ALttPRandomizer.Azure;
using ALttPRandomizer.Serialization;
using ALttPRandomizer.Model;
using ALttPRandomizer.Options;
using ALttPRandomizer.Randomizers;
using ALttPRandomizer.Service;
@@ -13,7 +15,8 @@
using Microsoft.Extensions.Options;
using Serilog;
using System.Text.Json;
using System.Text.Json.Serialization;
using YamlDotNet.Serialization;
using YamlDotNet.Serialization.NamingConventions;
internal class Program
{
@@ -47,13 +50,30 @@
});
});
builder.Services.AddControllers()
var yamlDeserializer =
new DeserializerBuilder()
.WithNamingConvention(UnderscoredNamingConvention.Instance)
.WithTypeConverter(new YamlStringEnumConverter())
.WithTypeConverter(new RandomizableWeightsYamlConverters())
.Build();
var yamlFormatter =
new YamlInputFormatter(
yamlDeserializer,
provider.GetRequiredService<ILogger<YamlInputFormatter>>());
builder.Services
.AddControllers(options => {
options.InputFormatters.Add(yamlFormatter);
})
.AddJsonOptions(x => {
x.JsonSerializerOptions.PropertyNameCaseInsensitive = true;
x.JsonSerializerOptions.PropertyNamingPolicy = JsonNamingPolicy.SnakeCaseLower;
x.JsonSerializerOptions.Converters.Add(new JsonStringEnumConverter(JsonNamingPolicy.SnakeCaseLower, false));
x.JsonSerializerOptions.WithStringEnum();
});
builder.Services.AddSwaggerGen();
builder.Services.AddSwaggerGen(options => {
options.OperationFilter<DefaultMysterySettingsFilter>();
});
var options = new DefaultAzureCredentialOptions();
@@ -72,6 +92,7 @@
builder.Services.AddSingleton<ShutdownHandler>();
builder.Services.AddScoped<BaseRandomizer>();
builder.Services.AddScoped<MysteryRandomizer>();
builder.Services.AddScoped<RandomizeService>();
builder.Services.AddScoped<SeedService>();
builder.Services.AddScoped<IdGenerator>();