Проверка поля столбца/строки Datatable
Я создаю несколько типизированных таблиц данных, которые мне понадобятся для выполнения проверки строк и отдельных ячеек, и пытаюсь найти наилучший способ их разработки, который обеспечит гибкость для новых методов проверки. Некоторые поля / столбцы могут иметь более одного метода проверки, который необходимо проверить.
Строковое поле меньше или равно X (x может изменяться в зависимости от столбца данных)
Строковое поле содержит ':', и каждая строка между двоеточием меньше или равна X, а вся строка меньше Y
Строковое поле не может начинаться с числа
Длина комбинации трех полей в строке данных не может быть больше X символов.
Поле даты должно находиться между датами X и Y
Двойное поле максимум X десятичных знаков
Так, например, EmployeeRow может иметь строковые поля FirstName, MiddleInitial, LastName с максимальной длиной 25, 5 и 25, но с общим количеством 40 символов и полем HireDate, которое должно быть между 01/01/1901 и 12/31/2099.
Что я уже пробовал:
Я думал о создании статического класса для каждого из правил проверки, который возвращает структуру, имеющую результаты проверки (логическое значение) и строковое Сообщение (Почему проверка не удалась):
public static class ValidationRules { public static ValidationResult MaxLengthValidation(this string value, int maxLength){ // } public static ValidationResult MultiPartMaxLengthValidation(this string value, int maxPartLength, int maxTotalLength){ // } public static ValidationResult DateRangeValidation(this DateTime value, DateTime minDate, DateTime maxDate) { // } // etc.. }
Затем я мог бы настроить свой DataRow так, чтобы у него была функция Validate, которая проверяла бы каждый из столбцов, а также реализовывала бы любую многоколоночную проверку. Но почему-то мне кажется, что это не самый лучший подход. Существуют ли какие-либо лучшие проекты или способы создания этой концепции?