Exemple #1
0
        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);
        }
Exemple #2
0
        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);
        }