protected void AddMessageAudit(Message msg, string subQueueName = null, Exception ex = null) { if (!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 ? QueueName : string.Format("{0};{1}", QueueName, subQueueName), QueuePath = null == subQueueName ? QueuePath : string.Format("{0};{1}", QueuePath, subQueueName), MessageContent = GetMessageXml(msg) }; var newId = MessageQueueService.CreateMessageAudit(messageAudit); if (null != ex) { var processingError = new MessageProcessingError { MessageAuditId = newId, Error = ex.Message, StackTrace = ex.StackTrace, TmStamp = DateTime.Now }; MessageQueueService.CreateMessageAuditException(processingError); } transaction.Complete(); } }
public void CreateLog(int userId, string message) { var entityContext = new EntityContext(); var messageAudit = new MessageAudit(); messageAudit.Time = DateTimeOffset.Now; messageAudit.UserId = userId; messageAudit.Message = message; entityContext.MessageAudits.Add(messageAudit); entityContext.SaveChanges(); }
/// <summary> /// Helper function used to create an instance of the Neuron ESB Audit service so message failures when publishing to the bus can be forwared /// to the Neuron Audit database /// </summary> /// <returns></returns> private bool ConnectAuditService() { bool retVal = false; // if auditing is enabled if (AuditOnFailurePublish && this._adapterMode.ModeName.Equals(AdapterModeStringConstants.Publish)) { try { if (MessageAuditService == null) { MessageAuditService = new MessageAudit(); MessageAuditService.Connect(Configuration); } retVal = true; } catch (Exception ex) { RaiseAdapterError(ErrorLevel.Error, "Failed to create Audit Service", ex); } } return(retVal); }