Esempio n. 1
0
 /// <summary>
 /// Register to receive messages
 /// </summary>
 /// <param name="id">Id of an action</param>
 /// <param name="action">The action which will be performed when a message is redeived for the Id</param>
 public void Register(MediatorActionType id, Action<object> action)
 {
     if (!IsRegistered(id.ToString(), action))
     {
         if (!callbacks.ContainsKey(id.ToString()))
         {
             callbacks[id.ToString()] = new List<Action<object>>();
         }
         callbacks[id.ToString()].Add(action);
     }
 }
Esempio n. 2
0
 /// <summary>
 /// Send message (call all delegates) for an Id
 /// </summary>
 /// <param name="id"></param>
 /// <param name="message"></param>
 public void SendMessage(MediatorActionType id, object message)
 {
     try
     {
         if (callbacks.ContainsKey(id.ToString()))
         {
             callbacks[id.ToString()].ForEach(action => action(message));
         }
     }
     catch (Exception ex)
     {
         Logger.Instance.LogException(ex);
         Debug.WriteLine(ex.Message);
     }
 }
Esempio n. 3
0
        /// <summary>
        /// When a control is disposed unregister all actions
        /// </summary>
        /// <param name="id"></param>
        /// <param name="action"></param>
        public void Unregister(MediatorActionType id, Action<object> action)
        {
            if (callbacks.ContainsKey(id.ToString()))
            {
                callbacks[id.ToString()].Remove(action);

                if (callbacks[id.ToString()].Count == 0)
                {
                    callbacks.Remove(id.ToString());
                }
            }
        }