diff --git a/ErsatzTV.Application/Channels/Commands/CreateChannelHandler.cs b/ErsatzTV.Application/Channels/Commands/CreateChannelHandler.cs index 6afbf2cf1..ef6b98048 100644 --- a/ErsatzTV.Application/Channels/Commands/CreateChannelHandler.cs +++ b/ErsatzTV.Application/Channels/Commands/CreateChannelHandler.cs @@ -74,7 +74,7 @@ namespace ErsatzTV.Application.Channels.Commands _ => BaseError.New("Channel number must be unique"), () => { - if (Regex.IsMatch(createChannel.Number, @"^[0-9]+(\.[0-9])?$")) + if (Regex.IsMatch(createChannel.Number, Channel.NumberValidator)) { return createChannel.Number; } diff --git a/ErsatzTV.Application/Channels/Commands/UpdateChannelHandler.cs b/ErsatzTV.Application/Channels/Commands/UpdateChannelHandler.cs index cde348fbd..f72944b39 100644 --- a/ErsatzTV.Application/Channels/Commands/UpdateChannelHandler.cs +++ b/ErsatzTV.Application/Channels/Commands/UpdateChannelHandler.cs @@ -82,7 +82,7 @@ namespace ErsatzTV.Application.Channels.Commands int matchId = match.Map(c => c.Id).IfNone(updateChannel.ChannelId); if (matchId == updateChannel.ChannelId) { - if (Regex.IsMatch(updateChannel.Number, @"^[0-9](\.[0-9])?$")) + if (Regex.IsMatch(updateChannel.Number, Channel.NumberValidator)) { return updateChannel.Number; } diff --git a/ErsatzTV.Core/Domain/Channel.cs b/ErsatzTV.Core/Domain/Channel.cs index 0df157cd6..78780dd84 100644 --- a/ErsatzTV.Core/Domain/Channel.cs +++ b/ErsatzTV.Core/Domain/Channel.cs @@ -5,6 +5,8 @@ namespace ErsatzTV.Core.Domain { public class Channel { + public static string NumberValidator = @"^[0-9]+(\.[0-9])?$"; + public Channel(Guid uniqueId) => UniqueId = uniqueId; public int Id { get; set; } public Guid UniqueId { get; init; } diff --git a/ErsatzTV/Validators/ChannelEditViewModelValidator.cs b/ErsatzTV/Validators/ChannelEditViewModelValidator.cs index 949127ab0..172084476 100644 --- a/ErsatzTV/Validators/ChannelEditViewModelValidator.cs +++ b/ErsatzTV/Validators/ChannelEditViewModelValidator.cs @@ -1,4 +1,5 @@ -using ErsatzTV.ViewModels; +using ErsatzTV.Core.Domain; +using ErsatzTV.ViewModels; using FluentValidation; namespace ErsatzTV.Validators @@ -7,7 +8,7 @@ namespace ErsatzTV.Validators { public ChannelEditViewModelValidator() { - RuleFor(x => x.Number).Matches(@"^[0-9]+(\.[0-9])?$") + RuleFor(x => x.Number).Matches(Channel.NumberValidator) .WithMessage("Invalid channel number; one decimal is allowed for subchannels"); RuleFor(x => x.Name).NotEmpty();