コード例 #1
0
ファイル: EventController.cs プロジェクト: itdimk/AMAGE
        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);
        }
コード例 #2
0
        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);
        }
コード例 #3
0
    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);
        }
    }
コード例 #4
0
ファイル: EventController.cs プロジェクト: itdimk/AMAGE
        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);
        }
コード例 #5
0
    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);
        }
    }
コード例 #6
0
ファイル: EventController.cs プロジェクト: itdimk/AMAGE
        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);
        }
コード例 #7
0
 public void Handle(SubscriptionsChanged message)
 {
     ReloadSubscriptions();
 }
コード例 #8
0
 public void Handle(SubscriptionsChanged message, IMessageRouter router)
 {
     router.ClearAll();
 }
コード例 #9
0
 public void Handle(SubscriptionsChanged message)
 {
     _router.ClearAll();
 }
コード例 #10
0
 public void Handle(SubscriptionsChanged message)
 {
     ReloadSubscriptions();
 }