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); } } }