예제 #1
0
        private EAEPMessage ConstructMessage(string eventName, DateTime timestamp, IEnumerable<EventParameter> parameters)
        {
            var message = new EAEPMessage(timestamp, _host, _application, eventName);

            foreach(var parameter in parameters)
            {
                message[parameter.Name] = parameter.Value;
            }
            return message;
        }
예제 #2
0
        private EAEPMessage BuildMessage()
        {
            EAEPMessage message = new EAEPMessage(hostBox.Text, appBox.Text, eventBox.Text);

            StringReader reader = new StringReader(paramsBox.Text);
            {
                while (reader.Peek() != -1)
                {
                    message.AddParamAVP(reader.ReadLine());
                }
            }
            return message;
        }
예제 #3
0
 private void BroadcastMessage(EAEPMessage message)
 {
     try
     {
         var messageData = EncodeMessage(message);
         _multicastSender.Send(messageData);
     }
     catch(SocketException e)
     {
         _logger.Error(String.Format("message [{0}] cannot be sent", message), e);
     }
     catch(ObjectDisposedException e)
     {
         _logger.Error(String.Format("message [{0}] cannot be sent", message), e);
     }
 }
예제 #4
0
        protected override void OnActionExecuted(ActionExecutedContext filterContext)
        {
            base.OnActionExecuted(filterContext);

            if (Configuration.EAEPEnabled)
            {
                EAEPMessage message = new EAEPMessage(Environment.MachineName, Configuration.ApplicationName, "ActionExecuted");
                message["Controller"] = filterContext.ActionDescriptor.ControllerDescriptor.ControllerName;
                message["Action"] = filterContext.ActionDescriptor.ActionName;

                if (filterContext.HttpContext.User.Identity.Name.Length > 0)
                {
                    message[EAEPMessage.PARAM_USER] = filterContext.HttpContext.User.Identity.Name;
                }

                IEAEPHttpClient client = new EAEPHttpClient(Configuration.EAEPHttpClientTimeout);
                client.SendMessage(Configuration.EAEPMonitorURI, message);
            }
        }
예제 #5
0
파일: EAEPNode.cs 프로젝트: adambird/eaep
 public void SendMessage(EAEPMessage message)
 {
     byte[] data = Encoding.UTF8.GetBytes(message.ToString());
     _multicaster.Broadcast(data);
 }
예제 #6
0
 private static byte[] EncodeMessage(EAEPMessage message)
 {
     return Encoding.UTF8.GetBytes(message.ToString());
 }