private static void Main(string[] args) { var container = new SimpleInjectorComponentContainer(new Container()); ServiceBus.Register(container); var transportMessageFactory = container.Resolve <ITransportMessageFactory>(); using (var bus = ServiceBus.Create(container).Start()) { string userName; while (!string.IsNullOrEmpty(userName = Console.ReadLine())) { var command = new RegisterMemberCommand { UserName = userName }; var transportMessage = transportMessageFactory.Create(command, c => { }); for (var i = 0; i < 5; i++) { bus.Dispatch(transportMessage); // will be processed once since message id is the same } bus.Send(command); // will be processed since it has a new message id bus.Send(command); // will also be processed since it too has a new message id } } }
static void Main(string[] args) { using (var bus = ServiceBus.Create().Start()) { string userName; while (!string.IsNullOrEmpty(userName = Console.ReadLine())) { var command = new RegisterMemberCommand { UserName = userName }; var transportMessage = bus.CreateTransportMessage(command, null); for (var i = 0; i < 5; i++) { bus.Dispatch(transportMessage); // will be processed once since message id is the same } bus.Send(command); // will be processed since it has a new message id bus.Send(command); // will also be processed since it also has a new message id } } }
public async Task Should_receive_the_timeout_notification() { RegisterMember registerMember = new RegisterMemberCommand { MemberNumber = Guid.NewGuid().ToString(), Name = "Frank", Address = "123 american way", }; await InputQueueSendEndpoint.Send(registerMember); Guid? saga = await _repository.ShouldContainSaga(x => x.MemberNumber == registerMember.MemberNumber && GetCurrentState(x) == _machine.AddressValidationTimeout, TestTimeout); Assert.IsTrue(saga.HasValue); }
public async Task Should_receive_the_timeout_notification() { RegisterMember registerMember = new RegisterMemberCommand { MemberNumber = Guid.NewGuid().ToString(), Name = "Frank", Address = "123 american way", }; await InputQueueSendEndpoint.Send(registerMember); Guid?saga = await _repository.ShouldContainSaga(x => x.MemberNumber == registerMember.MemberNumber && GetCurrentState(x) == _machine.AddressValidationTimeout, TestTimeout); Assert.IsTrue(saga.HasValue); }
public async Task Should_handle_the_response() { Task <ConsumeContext <MemberRegistered> > handler = SubscribeHandler <MemberRegistered>(); RegisterMember registerMember = new RegisterMemberCommand { MemberNumber = Guid.NewGuid().ToString(), Name = "Frank", Address = "123 american way" }; await InputQueueSendEndpoint.Send(registerMember); ConsumeContext <MemberRegistered> registered = await handler; Guid?saga = await _repository.ShouldContainSaga(x => x.MemberNumber == registerMember.MemberNumber && GetCurrentState(x) == _machine.Registered, TestTimeout); Assert.IsTrue(saga.HasValue); var sagaInstance = _repository[saga.Value].Instance; Assert.IsFalse(sagaInstance.ValidateAddressRequestId.HasValue); }
private static void Main(string[] args) { var simpleInjectorContainer = new Container(); simpleInjectorContainer.Options.EnableAutoVerification = false; var container = new SimpleInjectorComponentContainer(simpleInjectorContainer); container.Register <IAzureStorageConfiguration, DefaultAzureStorageConfiguration>(); container.RegisterServiceBus(); var transportMessageFactory = container.Resolve <ITransportMessageFactory>(); using (var bus = container.Resolve <IServiceBus>().Start()) { string userName; while (!string.IsNullOrEmpty(userName = Console.ReadLine())) { var command = new RegisterMemberCommand { UserName = userName }; var transportMessage = transportMessageFactory.Create(command, c => { }); for (var i = 0; i < 5; i++) { bus.Dispatch(transportMessage); // will be processed once since message id is the same } bus.Send(command); // will be processed since it has a new message id bus.Send(command); // will also be processed since it too has a new message id } } }