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); }