c # Валидационный подход - PullRequest
0 голосов
/ 20 апреля 2010

Сценарий таков:

Существует 4 элемента управления, два раскрывающихся списка, два средства выбора даты и некоторые правила проверки. Одним из них является мастер выпадающий
В зависимости от значения в главном раскрывающемся списке одно правило проверки будет применено к двум указателям даты, а другое - к раскрывающемуся элементу управления.
Эти правила проверки сработают, если пользователь изменит значение в любом из четырех элементов управления.

Необходимо указать поставщика ошибок при последнем редактировании элемента управления.

Я думаю о создании одного метода для каждого правила проверки. Основной метод с синтаксисом:

Private void ValidateData(Control ctrl)
    {
       ClearAllErrors();
       switch(value value in master dropdown)
       case 'Value 1' : Rule1(ctrl)
       case 'Value 2' : Rule2(ctrl)
       ....
    }

И методы правил такие:

Private void Rule1(Control ctrl)
{
     //Rule Logic
     //Eg. Date in dropdown should between 5 days after the date in dropdown1 
     //and 3 days before the date in dropdown2. 
     //Set error provider on the control if rule breaks.
}

Теперь при проверке событий любого из четырех элементов управления я передам этот элемент управления и вызову метод ValidateData ().

Идея состоит в том, чтобы сохранить код поддерживаемым. Может ли этот подход быть оптимизирован каким-либо образом, или есть какой-то лучший способ справиться с такого рода проверками.

Ответы [ 2 ]

1 голос
/ 20 апреля 2010

В вашем подходе нет ничего плохого

1 голос
/ 20 апреля 2010

Использование валидатора фабрика .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...