IW4M-Admin/SharedLibraryCore/Configuration/Validation/ServerConfigurationValidator.cs
2022-01-26 15:26:25 -06:00

32 lines
915 B
C#

using FluentValidation;
namespace SharedLibraryCore.Configuration.Validation
{
/// <summary>
/// Validation class for server configuration
/// </summary>
public class ServerConfigurationValidator : AbstractValidator<ServerConfiguration>
{
public ServerConfigurationValidator()
{
RuleFor(_server => _server.Port)
.InclusiveBetween(1, ushort.MaxValue);
RuleFor(_server => _server.Password)
.NotEmpty();
RuleForEach(_server => _server.Rules)
.NotEmpty();
RuleForEach(_server => _server.AutoMessages)
.NotEmpty();
RuleFor(_server => _server.ReservedSlotNumber)
.InclusiveBetween(0, 32);
RuleFor(_server => _server.CustomHostname)
.MinimumLength(3)
.MaximumLength(128);
}
}
}