public void AddEventHandler(string eventName, Action <dynamic> eventHandler) { var isFirst = false; if (!this._eventsList.TryGetValue(eventName, out var eventItem)) { var eventKey = Guid.NewGuid(); var @event = new EventEmitter(); eventItem = new EventItem(eventKey, @event); _eventsList.Add(eventName, eventItem); _eventEmittersList.Add(eventKey, @event); _connector.EventDictionary.Add(eventKey, this); isFirst = true; } eventItem.Event.Subject += eventHandler; if (isFirst) { _target.AddEventHandler(eventItem.EventKey, eventName); } }
internal EventItem(Guid eventKey, EventEmitter @event) { EventKey = eventKey; Event = @event; }