1
0
mirror of synced 2025-02-07 15:01:23 +01:00

Add validation to rank options

This commit is contained in:
asesidaa 2023-10-08 15:49:55 +08:00
parent 66aaf027e2
commit dbc776ddda
2 changed files with 10 additions and 3 deletions

View File

@ -1,8 +1,11 @@
namespace Domain.Config;
using System.ComponentModel.DataAnnotations;
namespace Domain.Config;
public class RankConfig
{
public const string RANK_SECTION = "Rank";
[Required, Range(1, double.MaxValue, ErrorMessage = "Value for {0} must be greater than 0!")]
public int RefreshIntervalHours { get; set; } = 24;
}

View File

@ -52,8 +52,10 @@ try
builder.Configuration.GetSection(GameConfig.GAME_SECTION));
builder.Services.Configure<AuthConfig>(
builder.Configuration.GetSection(AuthConfig.AUTH_SECTION));
builder.Services.Configure<RankConfig>(
builder.Configuration.GetSection(RankConfig.RANK_SECTION));
builder.Services.AddOptions<RankConfig>()
.Bind(builder.Configuration.GetSection(RankConfig.RANK_SECTION))
.ValidateDataAnnotations()
.ValidateOnStart();
var serverIp = builder.Configuration["ServerIp"] ?? "127.0.0.1";
var certificateManager = new CertificateService(serverIp, new SerilogLoggerFactory(Log.Logger).CreateLogger(""));
@ -82,6 +84,8 @@ try
var refreshIntervalHours = builder.Configuration.GetSection(RankConfig.RANK_SECTION).
GetValue<int>("RefreshIntervalHours");
refreshIntervalHours.Throw().IfLessThanOrEqualTo(0);
Log.Information("Rank refresh interval: {RefreshIntervalHours} hours", refreshIntervalHours);
builder.Services.AddApplication(refreshIntervalHours);
builder.Services.AddInfrastructure(builder.Configuration);