У меня есть абстрактный (неважно) класс:
public abstract class CarrierAbstractFormAPI
{
public string Name { get; set; }
public string Fein { get; set; }
public string McNumber { get; set; }
public string DotNumber { get; set; }
public AddressCreateAPI Address { get; set; }
}
и класс AddressCreateAPI:
public class AddressCreateAPI
{
public string Street { get; set; }
public string City { get; set; }
public string ZipPostalCode { get; set; }
public int StateProvinceId { get; set; }
public string ContactName { get; set; }
public string ContactPhone { get; set; }
public string ContactFaxNumber { get; set; }
public string ContactEmail { get; set; }
}
Мой валидатор:
public abstract class CarrierAbstractFluentValidation<T> : AbstractValidator<T> where T : CarrierAbstractFormAPI
{
public CarrierAbstractFluentValidation()
{
RuleFor(d => d.Name)
.NotEmpty().WithMessage("Name is required");
RuleFor(d => d.Fein)
.NotEmpty().WithMessage("Fein is required");
RuleFor(d => d.McNumber)
.NotEmpty().WithMessage("McNumber is required");
RuleFor(d => d.DotNumber)
.NotEmpty().WithMessage("DotNumber is required");
RuleFor(d => d.Address.Street)
.NotEmpty().WithMessage("Address Street is required");
RuleFor(d => d.Address.City)
.NotEmpty().WithMessage("Address City is required");
RuleFor(d => d.Address.StateProvinceId)
.InclusiveBetween(0, int.MaxValue).WithMessage("Address State is required");
}
}
Работает нормально.
Но у меня есть несколько дополнительных классов, которые могут иметь
public AddressCreateAPI Address { get; set; }
недвижимость.
Я хочу переместить деталь:
RuleFor(d => d.Address.Street)
.NotEmpty().WithMessage("Address Street is required");
RuleFor(d => d.Address.City)
.NotEmpty().WithMessage("Address City is required");
RuleFor(d => d.Address.StateProvinceId)
.InclusiveBetween(0, int.MaxValue).WithMessage("Address State is required");
к общему классу и применить его в каждом свободном валидаторе, который имеет свойство Address. Как это сделать?