/// <summary> /// Handles the returned object. /// </summary> /// <param name="message">Object returned.</param> public async virtual Task HandleMessageAsync(TObjectType message) { if (MessageRecieved.GetInvocationList().Length > 0) { await Task.Run(() => MessageRecieved(this, new MessageEventArgs <TObjectType> { Object = message })); } }
public void removeListener(string eventName, Action <object, MessageBusEventArgs <T> > @delegate = default) { foreach (var MessageRecieveditem in MessageRecieved.GetInvocationList()) { var _target = (MessageRecieveditem.Target as Action <object, MessageBusEventArgs <T> >); var methodEventValue = _target.Method.GetCustomAttribute <OnEventAttribute>(); if ((methodEventValue?.eventArgumentdata.Contains(eventName.ToLowerInvariant()) ?? false) && (@delegate == default || @delegate == _target)) { methodEventValue.eventArgumentdata = methodEventValue?.eventArgumentdata.Where(e => e.ToLowerInvariant() != eventName.ToLowerInvariant()).ToArray(); if ((methodEventValue.eventArgumentdata?.Length ?? 0) == 0) { MessageRecieved -= new EventHandler <MessageBusEventArgs <T> >(_target); } } } }
public void Trigger(string eventName, object sender = null, T Message = default, bool isolate = false) { if (!exclusionEventList.Any(e => eventName.ToLowerInvariant().StartsWith(e.ToLowerInvariant())) && MessageRecieved != null) { foreach (var MessageRecieveditem in MessageRecieved.GetInvocationList()) { var methodEventValue = (MessageRecieveditem.Target as Action <object, MessageBusEventArgs <T> >).Method.GetCustomAttribute <OnEventAttribute>(); if (methodEventValue?.eventArgumentdata.Contains(eventName.ToLowerInvariant()) ?? false) { MessageRecieveditem.DynamicInvoke(new object[] { sender, new MessageBusEventArgs <T>(this, eventName.ToLowerInvariant(), Message) }); if (!isolate) { if (!exclusionEventList.Any(e => eventName.ToLowerInvariant().StartsWith(e.ToLowerInvariant()))) { var hubContext = GlobalHost.ConnectionManager.GetHubContext <MessageBusHub>(); hubContext.Clients.All.receivemessage(eventName, Message); } } } } } //MessageRecieved?.Invoke(sender, new MessageBusEventArgs<T>(Message)); }