static async Task RunLoop(IEndpointInstance endpointInstance) { while (true) { Console.WriteLine("Enter a number of sagas to start then press enter."); int numberToSend; if (int.TryParse(Console.ReadLine(), out numberToSend)) { Console.WriteLine(); List <Task> tasks = new List <Task>(); for (var i = 0; i < numberToSend; i++) { var command = new StartProcessingSaga { UniqueSagaId = Guid.NewGuid(), Username = $"User-{i}" }; Logger.Info($"Starting saga = {command.Username}"); tasks.Add(endpointInstance.Send(command)); } await Task.WhenAll(tasks).ConfigureAwait(false); Console.WriteLine($"Started {numberToSend} sagas."); } } }
public async Task Handle(StartProcessingSaga message, IMessageHandlerContext context) { Data.UniqueSagaId = message.UniqueSagaId; Data.Username = message.Username; //Setup the first timeout var timeout = CreateCheckForDataTimeout(context); Logger.Info($"Created saga {Data.UniqueSagaId} for user {Data.Username}."); await timeout.ConfigureAwait(false); }