public void TestResolvesToMessageIdentifierWhenAnnotatedForCommandMessage() { IParameterResolver resolver = _testSubject.CreateInstance(_messageIdentifierMethod, _messageIdentifierMethod.GetParameters(), 0); var eventMessage = GenericCommandMessage.AsCommandMessage("test"); resolver.Matches(eventMessage).Should().BeTrue(); resolver.ResolveParameterValue(eventMessage).Should().Be(eventMessage.Identifier); }
protected void Send(object command, ICommandCallback callback) { var commandMessage = ProcessInterceptors(GenericCommandMessage.AsCommandMessage(command)); var commandCallback = callback; if (_retryScheduler != null) { commandCallback = new RetryingCallback(callback, _retryScheduler, CommandBus); } CommandBus.Dispatch(commandMessage, commandCallback); }
protected void SendAndForget(object command) { if (_retryScheduler == null) { CommandBus.Dispatch(ProcessInterceptors(GenericCommandMessage.AsCommandMessage(command))); } else { var commandMessage = GenericCommandMessage.AsCommandMessage(command); Send(commandMessage, LoggingCallback.Instance); } }
public Task <object> Invoke(object proxy, MethodInfo invokedMethod, object[] args) { var command = args[0]; if (_metaDataExtractors.Length != 0) { var metaDataValues = new Dictionary <string, object>(); foreach (var extractor in _metaDataExtractors) { extractor.AddMetaData(args, metaDataValues); } if (!metaDataValues.IsEmpty()) { command = GenericCommandMessage.AsCommandMessage(command).WithMetaData(metaDataValues); } } if (_forceCallbacks || !_commandCallbacks.IsEmpty()) { var callbacks = new List <ICommandCallback>(); var future = new FutureCallback <object>(); callbacks.Add(future); foreach (var arg in args) { if (arg is ICommandCallback) { var callback = (ICommandCallback)arg; callbacks.Add(callback); } } callbacks.AddRange(_commandCallbacks); Send(command, new CompositeCallback(callbacks)); return(future.Task); } else { SendAndForget(command); return(null); } }