Я пытаюсь придумать многоразовое предупреждение для бизнес-объектов в проекте, над которым я работаю. Прежде чем сохранить один из наших бизнес-объектов, иногда нам нужно предупредить пользователя о возможных последствиях. Скажем, мой бизнес-объект был назван «Компания». Company.Delete () избавится от компании и не особо заботится о том, что происходит. В этой конкретной компании может быть 10 000 сотрудников, которые были бы весьма разочарованы, если бы их было так легко уволить с работы случайно ...
Таким образом, для пользовательского интерфейса требуется способ увидеть что-то вроде:
- Удаление «Компании А» выведет 10 000 рабочих на улицы.
- Удаление «Компании А» оставит 1 000 000 акционеров бесполезными.
Так что я мог бы просто создать такую функцию, как Company.GetWarnings (), которая возвращает некоторые строки для отображения, но я хочу что-то немного лучше, чем это. Если Company.GetWarnings () вернула первое предупреждение выше, я бы хотел, чтобы пользовательский интерфейс мог знать, что означает это предупреждение. Например, если появилось первое предупреждение, пользовательский интерфейс знал бы, что это значит, и обрабатывал ситуацию, предоставляя ссылку, например:
- Удаление «Компании А» выведет 10 000 рабочих на улицы.
- Хотели бы вы найти новую работу для этих сотрудников? «Нажмите здесь»
Или, возможно, другой бизнес-объект будет использовать Company.GetWarnings () и, зная, что некоторые работники будут уволены с работы, он может автоматически отправлять выходные пакеты. Вы поняли ...
Так что, я думаю, требование звучит довольно просто, но я немного теряюсь в мелких деталях. Главным образом, какую структуру я мог бы дать GetWarnings (), чтобы он возвращал:
- Предупреждающее сообщение.
- Какой-то способ определить, что это за сообщение.
Оставив меня на мой вопрос:
Есть ли у кого-нибудь лучшие практики, примеры или предложения по внедрению такого рода системы предупреждений? Моя главная проблема с # 2. Там будет множество разных видов предупреждающих сообщений, поэтому я не хочу просто возвращать скажем ... словарь, где int - это идентификатор типа предупреждения. Это было бы трудно справиться быстро.
Спасибо за любой совет, который вы можете дать.