// 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));
        }
Beispiel #2
0
        /// <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;
            }
        }