private void Push(JobId senderKey, MessageHook message, HookNotification h)
 {
     ErrorHandle.Expect(() =>
     {
         h.Handler.DoHandle(senderKey, message);
         return(true);
     },
                        out bool anyError,
                        string.Format(_errorInHanlder,
                                      senderKey.Id,
                                      senderKey.Name,
                                      message.Type,
                                      h.Handler.Id,
                                      h.Handler.Name),
                        string.Format(_errorMessage,
                                      message.Text));
 }
        /// <summary>
        /// Pushes the notiofication or message hook to all registered handlers
        /// </summary>
        /// <param name="senderKey">sender of message hook</param>
        /// <param name="message">formatted message hook</param>
        public void PushAsync(JobId senderKey, MessageHook message)
        {
            if (senderKey == default(JobId))
            {
                throw new ArgumentNullException(nameof(senderKey));
            }
            if (message == default(IHookHandler <JobId>))
            {
                throw new ArgumentNullException(nameof(message));
            }

            var val = _hooks.Values.Where(h => h.Id.Equals(senderKey) && (h.Type == message.Type || h.Type == MessageType.All));

            if (val.Any())
            {
                val.AsParallel().ForAll(h =>
                {
                    new Task(() => Push(senderKey, message, h)).Start();
                });
            }
        }
 /// <summary>
 /// Push recieved MessageHook into configured infrastructure
 /// </summary>
 /// <param name="sender">job's indentifier is the one, who psuhed the message hook</param>
 /// <param name="message">MessageHook to be handled</param>
 public void DoHandle(JobId sender, MessageHook message)
 {
     ErrorHandle.Logger.LogMessage(string.Format(_message, sender.ToString()), LogLevel.Info);
     ErrorHandle.Logger.LogMessage(message.ToString(), LogLevel.Info);
     ErrorHandle.Logger.LogMessage(string.Format(_messageHanlder, Id, Name), LogLevel.Info);
 }
Example #4
0
 public void PushReportToHookAsync(JobId sender, MessageHook message)
 {
     new Task(() => _hookManager.PushAsync(sender, message)).Start();
 }