-
Notifications
You must be signed in to change notification settings - Fork 49
Expand file tree
/
Copy pathServiceControlEditViewModelValidator.cs
More file actions
90 lines (80 loc) · 4.9 KB
/
ServiceControlEditViewModelValidator.cs
File metadata and controls
90 lines (80 loc) · 4.9 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
namespace ServiceControl.Config.UI.InstanceEdit
{
using FluentValidation;
using Validation;
using Validations = Extensions.Validations;
public class ServiceControlEditViewModelValidator : AbstractValidator<ServiceControlEditViewModel>
{
public ServiceControlEditViewModelValidator()
{
RuleFor(x => x.ServiceAccount)
.NotEmpty()
.When(x => x.SubmitAttempted);
RuleFor(x => x.HostName)
.NotEmpty()
.ValidHostname()
.When(x => x.SubmitAttempted);
RuleFor(x => x.PortNumber)
.NotEmpty()
.ValidPort()
.WithMessage(string.Format(Validation.Validations.MSG_USE_PORTS_IN_RANGE, "ServiceControl Port"))
.ErrorInstancePortAvailable(x => x.InstanceName) //across windows
.WithMessage(string.Format(Validation.Validations.MSG_PORT_IN_USE, "ServiceControl Port"))
.MustNotBeIn(x => Validations.UsedPorts(x.InstanceName)) //across all instances
.WithMessage(string.Format(Validation.Validations.MSG_MUST_BE_UNIQUE, "ServiceControl Port"))
.NotEqual(x => x.DatabaseMaintenancePortNumber)
.WithMessage(string.Format(Validation.Validations.MSG_PORTS_NOT_EQUAL, "ServiceControl",
"Database Maintenance"))
.When(x => x.SubmitAttempted);
RuleFor(x => x.DatabaseMaintenancePortNumber)
.NotEmpty()
.ValidPort()
.WithMessage(string.Format(Validation.Validations.MSG_USE_PORTS_IN_RANGE,
"ServiceControl Database Maintenance Port"))
.ErrorInstanceDatabaseMaintenancePortAvailable(x => x.InstanceName) //across windows
.WithMessage(string.Format(Validation.Validations.MSG_PORT_IN_USE,
"ServiceControl Database Maintenance Port"))
.MustNotBeIn(x => Validations.UsedPorts(x.ServiceControl.InstanceName)) //across all instances
.WithMessage(string.Format(Validation.Validations.MSG_MUST_BE_UNIQUE,
"ServiceControl Database Maintenance Port"))
.NotEqual(x => x.PortNumber)
.WithMessage(string.Format(Validation.Validations.MSG_PORTS_NOT_EQUAL, "Database Maintenance",
"ServiceControl"))
.When(x => x.SubmitAttempted);
RuleFor(x => x.LogPath)
.NotEmpty()
.ValidPath()
.MustNotBeIn(x => Validations.UsedPaths(x.InstanceName))
.WithMessage(string.Format(Validation.Validations.MSG_MUST_BE_UNIQUE, "Log Paths"))
.When(x => x.SubmitAttempted);
RuleFor(x => x.SelectedTransport)
.NotEmpty();
RuleFor(x => x.ConnectionString)
.NotEmpty().WithMessage(Validation.Validations.MSG_THIS_TRANSPORT_REQUIRES_A_CONNECTION_STRING)
.When(x => !string.IsNullOrWhiteSpace(x.SelectedTransport?.SampleConnectionString) && x.SubmitAttempted);
RuleFor(x => x.ErrorForwarding)
.NotNull()
.WithMessage(Validation.Validations.MSG_SELECTERRORFORWARDING);
RuleFor(x => x.ErrorQueueName)
.NotEmpty()
.NotEqual(x => x.ErrorForwardingQueueName)
.WithMessage(string.Format(Validation.Validations.MSG_QUEUENAMES_NOT_EQUAL, "Error", "Error Forwarding "))
.MustNotBeIn(x =>
Validations.UsedAuditQueueNames(x.SelectedTransport, x.InstanceName, x.ConnectionString))
.WithMessage(string.Format(Validation.Validations.MSG_QUEUE_ALREADY_ASSIGNED, "Error"))
.MustNotBeIn(x =>
Validations.UsedErrorQueueNames(x.SelectedTransport, x.InstanceName, x.ConnectionString))
.WithMessage(string.Format(Validation.Validations.MSG_QUEUE_ALREADY_ASSIGNED, "Error"))
.When(x => x.SubmitAttempted);
RuleFor(x => x.ErrorForwardingQueueName)
.NotEmpty()
.NotEqual(x => x.ErrorQueueName)
.WithMessage(string.Format(Validation.Validations.MSG_QUEUENAMES_NOT_EQUAL, "Error Forwarding", "Error"))
.MustNotBeIn(x => Validations.UsedAuditQueueNames(x.SelectedTransport, x.InstanceName, x.ConnectionString))
.WithMessage(string.Format(Validation.Validations.MSG_QUEUE_ALREADY_ASSIGNED, "Error Forwarding"))
.MustNotBeIn(x => Validations.UsedErrorQueueNames(x.SelectedTransport, x.InstanceName, x.ConnectionString))
.WithMessage(string.Format(Validation.Validations.MSG_QUEUE_ALREADY_ASSIGNED, "Error Forwarding"))
.When(x => x.ServiceControl.ErrorForwarding.Value && x.SubmitAttempted);
}
}
}