protected void AddMessageAudit(Message msg, string subQueueName = null, Exception ex = null) { if (!this.AuditActivity) { return; } using (var transaction = new TransactionScope( TransactionScopeOption.Required, new TransactionOptions { IsolationLevel = IsolationLevel.ReadCommitted })) { var messageAudit = new MessageAudit { MessageId = msg.Id, MessageStatus = MessageStatus.AwaitingProcessing, CorrelationId = msg.CorrelationId, QueueName = null == subQueueName ? this.QueueName : string.Format("{0};{1}", this.QueueName, subQueueName), QueuePath = null == subQueueName ? this.QueuePath : string.Format("{0};{1}", this.QueuePath, subQueueName), MessageContent = this.GetMessageXml(msg) }; var newId = this.MessageQueueService.CreateMessageAudit(messageAudit); if (null != ex) { var processingError = new MessageProcessingError { MessageAuditId = newId, Error = ex.Message, StackTrace = ex.StackTrace, TmStamp = DateTime.Now }; this.MessageQueueService.CreateMessageAuditException(processingError); } transaction.Complete(); } }
public Task HandleMessageErrorAsync(MessageProcessingError error) { if (MessageErrorHandler == null) { return(Task.CompletedTask); } return(MessageErrorHandler?.Invoke(error)); }
public Task HandleMessageErrorAsync(MessageProcessingError error) { return(Task.CompletedTask); }