示例#1
0
        public async Task Run(
            [ServiceBusTrigger("%ServiceBusConfig:WriteTopic%", "%ServiceBusConfig:CreateProductSubscription%", Connection = "ServiceBusConfig:ReadConnectionString", IsSessionsEnabled = true)]
            Message message,
            IMessageSession messageSession, string lockToken)
        {
            var operation = await _messageReader.GetModelAsync <CreateProductServiceBusMessage>(message);

            if (!operation.Status)
            {
                await messageSession.DeadLetterAsync(lockToken, operation.ErrorCode);

                return;
            }

            var model = operation.Data;
            var insertProductCommand = new InsertProductCommand(model.CorrelationId, model.ProductCode, model.ProductName);
            var insertOperation      = await _mediator.Send(insertProductCommand);

            if (!insertOperation.Status)
            {
                await messageSession.DeadLetterAsync(lockToken, insertOperation.ErrorCode);

                return;
            }

            await messageSession.CompleteAsync(lockToken);
        }