// GET: /EventMessage/Details/5 public ActionResult Details(int? id) { if (id == null) { return new HttpStatusCodeResult(HttpStatusCode.BadRequest); } EventMessage.EventMessage em = new EventMessage.EventMessage(ConfigurationManager.ConnectionStrings["SystemDS"].ToString(), Convert.ToInt32(id)); return View(convertToEventMessage(em)); }
/// <summary> /// 出发一个事件且将事件打包成消息发送到远程队列 /// </summary> /// <param name="eventMessage">发送的消息实例。</param> /// <param name="queue">队列名称</param> /// <param name="exChange">RabbitMq的Exchange名称</param> public void TriggerEventMessage(EventMessage.EventMessage eventMessage, string queue, string exChange) { Context.SendConnection = RabbitMqClientFactory.CreateConnection();//获取连接 using (Context.SendConnection) { Context.SendChannel = RabbitMqClientFactory.CreateModel(Context.SendConnection);//获取通道 const byte deliveryMode = 2; using (Context.SendChannel) { var messageSerializer = MessageSerializerFactory.CreateMessageSerializerInstance(); //发序列化消息 var properties = Context.SendChannel.CreateBasicProperties(); properties.DeliveryMode = deliveryMode; //表示持久化消息 //声明队列 Context.SendChannel.QueueDeclare(queue, deliveryMode == 2, false, false, null); Context.SendChannel.BasicPublish(exChange, queue, properties, messageSerializer.SerializerBytes(eventMessage)); } } }
private EventMessage.EventMessage convertFromEventMessage(democode.mvc.Models.EventMessage data) { EventMessage.EventMessage msg = new EventMessage.EventMessage(); try { msg.EventID = data.EventID; msg.Level = (EventMessage.EventLevel)Convert.ToInt16(data.Level); msg.Action = (EventMessage.EventAction)Convert.ToInt16(data.Action); msg.Result = (EventMessage.EventResult)Convert.ToInt16(data.Result); msg.Application = data.Application; msg.ApplicationVersion = data.ApplicationVersion; msg.OperationCode = data.OperationCode; msg.KeyWords = data.Keywords; msg.EventDateTime = Convert.ToDateTime(data.EventDateTime); msg.UID = (data.UID == null) ? Guid.Empty : new Guid(data.UID); msg.IP = data.IP; msg.URL = data.URL; return msg; } catch (Exception ex) { return null; } }