public async Task Handle(PollForPurchaseOrders message, IMessageHandlerContext context) { DoValidateMessage(message); var orders = await GetOrders(); var command = new ProcessPurchaseOrder { Id = message.Id, Orders = orders }; await context.Send(command).ConfigureAwait(false); _logger.InfoFormat(Resources.LoggerMessage.PurchaseOrdersPolledMessage, orders.Count(), command.Id); }
public async Task Handle(ProcessPurchaseOrder message, IMessageHandlerContext context) { _logger.Info($"{message.Id} stated."); ushort minutes; var setting = Configuration.Root["SagaRequestTimeoutMinutes"]; if (!ushort.TryParse(setting, out minutes)) { minutes = 2; } var policy = new IntegrationWarningPolicy { Id = message.Id, TimeoutMinutes = minutes }; await RequestTimeout(context, TimeSpan.FromMinutes(policy.TimeoutMinutes), policy); var command = new ArchiveData { Id = message.Id, Orders = message.Orders }; await context.Send(command); }