В CQRS, как мне передать список допустимых методов на аггрегате в пользовательский интерфейс?

У меня есть суммарный корень "Заказа", и на нем есть несколько методов, которые внутренне устанавливают его поле "Статус":

  • Submit
  • Place On Hold
  • Take Off Hold
  • Confirm
  • Cancel
  • etc.

Доступные действия зависят от текущего статуса заказа (например, его нельзя перевести в режим ожидания, если он уже находится в режиме ожидания). Проблема в том, что мне нужно задать запрос, чтобы сообщить UI, какие команды доступны, чтобы я мог скрыть операции, которые в противном случае бросили бы InvalidOperationException.

Как мне сделать это с минимальным нарушением DRY?

5
задан Josh Kodroff 1 September 2011 в 20:53
поделиться