public void Subscribe(CremaEventListener listener) { if (this.listeners.Any() == false) { this.OnSubscribe(); } this.listeners.Add(listener); }
public void Unsubscribe(CremaEventListener listener) { this.listeners.Remove(listener); if (this.listeners.Any() == false) { this.OnUnsubscribe(); } }
private void RemoveEventListener(CremaEvents eventName, CremaEventListener listener) { if (this.Context.Properties[typeof(CremaEventListenerContext)] is CremaEventListenerContext context) { context.RemoveEventListener(eventName, listener); } else { throw new NotImplementedException(); } }
public void RemoveEventListener(CremaEvents eventName, CremaEventListener listener) { if (this.eventListeners.ContainsKey(eventName) == true) { var eventHandler = this.eventListeners[eventName]; eventHandler.Unsubscribe(listener); } else { throw new NotImplementedException(); } }
private void AddEventListener(CremaEvents eventName, CremaEventListener listener) { if (this.Context.Properties.ContainsKey(typeof(CremaEventListenerContext)) == false) { this.eventListenerContext = new CremaEventListenerContext(this.eventListeners); this.Context.Properties[typeof(CremaEventListenerContext)] = this.eventListenerContext; } if (this.eventListenerContext != null) { this.eventListenerContext.AddEventListener(eventName, listener); } else { throw new NotImplementedException(); } }