using FluentValidation;
using System.Net;
namespace SharedLibraryCore.Configuration.Validation
{
///
/// Validation class for server configuration
///
public class ServerConfigurationValidator : AbstractValidator
{
public ServerConfigurationValidator()
{
RuleFor(_server => _server.IPAddress)
.NotEmpty()
.Must(_address => IPAddress.TryParse(_address, out _));
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);
}
}
}