Разрешить создание команд вне среды cqrs

У меня есть необходимость позволить разработчикам пользовательского интерфейса работать с использованием проекта MVC, который связан только с средой NCQRS через службу WCF.

Чтобы сэкономить на ненужных сопоставлениях и сложности, я использую команды в качестве параметров службы WCF, а служба просто передает их в среду:

var cmd = input.MapTo<CreateUserAccountCommand>();
 _commandService.BeginWcfCall(x => x.ExecuteCreateUserAccountCommand(cmd));

Это все хорошо, когда приложение mvc находится в том же sln, что и служба wcf, но когда они разделены и служба WCF находится на удаленном сервере, у меня возникают проблемы с командой, пытающейся использовать NcqrsEnvirnment для GetKnownTypes:

public static IEnumerable<Type> GetKnownTypes()
{
   var knownCommandsEnumerator =
NcqrsEnvironment.Get<IKnownCommandsEnumerator>();
   if (knownCommandsEnumerator == null)
   {
       throw new InvalidOperationException("No
Ncqrs.Commanding.IKnownCommandsEnumerator implementation registered
with the NcqrsEnvironment.");
   }
   return knownCommandsEnumerator.GetAllCommandTypes();

}

Мое единственное предложение для этого - разрешить создание команды на клиенте, изменив приведенный выше код на:

public static IEnumerable<Type> GetKnownTypes()
{
   if (NcqrsEnvironment.IsConfigured)
   {
       var knownCommandsEnumerator = NcqrsEnvironment.Get<IKnownCommandsEnumerator>();
       if (knownCommandsEnumerator == null)
       {
           throw new InvalidOperationException("No Ncqrs.Commanding.IKnownCommandsEnumerator implementation registered
with the NcqrsEnvironment.");
       }
       return knownCommandsEnumerator.GetAllCommandTypes();
   }
   return null;

}

Будет ли это жизнеспособным изменением?

0 ответов

Другие вопросы по тегам