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); }
public void PushReportToHookAsync(JobId sender, MessageHook message) { new Task(() => _hookManager.PushAsync(sender, message)).Start(); }