public static void WriteAudit(DataAudit.DataAudit auditLogToProcess, string title) { DataAudit.DataAudit auditLog = auditLogToProcess; auditLog.TimeStamp = DateTime.UtcNow; QueueMessage newMessage = null; //where should I get this? string dbName = ConfigurationManager.AppSettings.Get("PhytelServicesConnName"); string configqueue = "DATA_AUDIT_QUEUE"; DataSet ds = Phytel.Services.SQLDataService.Instance.ExecuteSQL(dbName, false, string.Format("Select [Value] From ApplicationSetting Where [Key] = '{0}'", configqueue)); if (ds.Tables[0].Rows.Count > 0) { string messageQueue = ds.Tables[0].Rows[0]["Value"].ToString(); //string messageQueue = "fake"; string xmlBody = ToXML(auditLog); newMessage = new QueueMessage(ASEMessageType.Process, messageQueue); newMessage.Body = xmlBody; MessageQueueHelper.SendMessage(@messageQueue, newMessage, title); } }
public override void Execute(QueueMessage queueMessage) { try { _DBConnName = base.Configuration.SelectSingleNode("//Phytel.ASE.Process/ProcessConfiguration/PhytelServicesConnName").InnerText; DataAudit.DataAudit da = MessageQueueHelper.DeserializeXmlObject(queueMessage.Body, typeof(DataAudit.DataAudit)) as DataAudit.DataAudit; MongoDatabase db = Phytel.Services.MongoService.Instance.GetDatabase(_DBConnName, da.Contract, true, "Audit"); db.GetCollection(da.EntityType).Insert(da); XmlNodeList queues = Configuration.SelectNodes(ConfigXPathPrefix + "AdditionalQueues/Queue"); if (queues != null) { queueMessage.Routes.ForEach(t => { t.RetryProcessInterval = GetRetryInterval(); t.MaxProcessRetryCount = 4; }); foreach (XmlNode queue in queues) { try { string queueName = queue.InnerText; RouteMessage(queueMessage, queueName); } catch (Exception ex) { LogError(ex, LogErrorCode.Error, LogErrorSeverity.Critical); RetryMessage = true; } } } } catch (Exception ex) { base.LogError(ex, LogErrorCode.Error, LogErrorSeverity.Critical); throw; } }