using System.Collections.ObjectModel; using System.Diagnostics; using System.Windows.Forms; using BroadcastListener.Interfaces; namespace BroadcastListener.Classes { public class Broadcaster { private readonly Collection _listeners = new Collection(); /// /// Send message /// /// Message /// /// [DebuggerStepThrough()] public void Broadcast(string message, SenderInfo sender) { foreach (IMessageListener1 listener in _listeners) { listener.OnListen(message, sender); } } [DebuggerStepThrough()] /// /// Add a Listener to the Collection of Listeners /// /// public void AddListener(IMessageListener1 listener) { _listeners.Add(listener); } /// /// Remove a Listener from the collection /// /// public void RemoveListener(IMessageListener1 listener) { for (int index = 0; index < _listeners.Count; index++) { if ( _listeners[index].Equals(listener) ) { _listeners.Remove(_listeners[index]); } } } } public class SenderInfo { public string SenderName { get; set; } public string Function { get; set; } public string Details { get; set; } public SenderInfo(string SenderName, string Funtion, string Details) { this.SenderName= SenderName; this.Function= Funtion; this.Details= Details; } } }