private void Subscribe(object target, string eventName, params Delegate[] handlers) { EventInfo eventInfo = target.GetType().GetEvent(eventName); if (!events.ContainsKey(eventInfo)) { events.Add(eventInfo, new List <Delegate>()); } if (!objects.ContainsKey(eventInfo)) { objects.Add(eventInfo, new List <object>()); } if (!objects[eventInfo].Contains(target)) { objects[eventInfo].Add(target); } foreach (Delegate handler in handlers) { events[eventInfo].Add(handler); eventInfo.AddEventHandler(target, handler); } RefreshConditions(this, EventArgs.Empty); SubscriptionsChanged?.Invoke(this, target); }
public async Task Handle(SubscriptionsChanged @event) { string message = string.Format("Account {0} has changed subscriptions {1}", @event.AccountCode, string.Join(",", @event.Subscriptions.Select(s => s.ProductCode))); AddAlert(message); }
public async Task SubscribeShow(ShowInfo show) { await Initialize(); if (!_shows.Any(s => s.Id == show.Id)) { _shows.Add(show); await _localStorage.SetItem(ShowSubscriptionsKey, _shows); SubscriptionsChanged?.Invoke(_shows); } }
private void Unsubscribe(object target, string eventName, params Delegate[] handlers) { EventInfo eventInfo = target.GetType().GetEvent(eventName); foreach (Delegate handler in handlers) { events[eventInfo].Remove(handler); eventInfo.RemoveEventHandler(target, handler); } RefreshConditions(this, EventArgs.Empty); SubscriptionsChanged?.Invoke(this, target); }
public async Task UnsubscribeShow(ShowInfo show) { await Initialize(); var subscription = _shows.FirstOrDefault(s => s.Id == show.Id); if (subscription != null) { _shows.Remove(subscription); await _localStorage.SetItem(ShowSubscriptionsKey, _shows); SubscriptionsChanged?.Invoke(_shows); } }
private void Disable(object target, string eventName) { EventInfo eventInfo = target.GetType().GetEvent(eventName); foreach (Delegate handler in events[eventInfo]) { eventInfo.RemoveEventHandler(target, handler); } if (!disabledEvents.Contains(eventInfo)) { disabledEvents.Add(eventInfo); } SubscriptionsChanged?.Invoke(this, target); }
public void Handle(SubscriptionsChanged message) { ReloadSubscriptions(); }
public void Handle(SubscriptionsChanged message, IMessageRouter router) { router.ClearAll(); }
public void Handle(SubscriptionsChanged message) { _router.ClearAll(); }
public void Handle(SubscriptionsChanged message) { ReloadSubscriptions(); }