示例#1
0
        private void Add(IStatusMessage statusMessage)
        {
            if (!messageCollection.ContainsKey(statusMessage.Id))
            {
                MessageCollection.Add(statusMessage.Id, statusMessage);
            }

            OnMessagePropertyChange();
        }
示例#2
0
 public static void AddToLog(IStatusMessage msg)
 {
     lock (Log)
     {
         Log.Add(msg.ToString());
         if (Log.Count > MAX_LOG_SIZE)
         {
             Log.RemoveAt(0);
         }
     }
 }
示例#3
0
        public void DestroyMessage(IStatusMessage statusMessage)
        {
            lock (this)
            {
                if (messageCollection.ContainsKey(statusMessage.Id))
                {
                    MessageCollection.Remove(statusMessage.Id);
                }

                OnMessagePropertyChange();
            }
        }
示例#4
0
 void StatusMessage(IStatusMessage message)
 {
     if (MainWindow != null)
     {
         Gtk.Application.Invoke(delegate
         {
             MainWindow.MainWindowController.StatusMessage = message;
         });
     }
     else
     {
         //TODO
         Console.WriteLine("App listener: " + message);
     }
 }
示例#5
0
        private void HandleUpdate(IStatusMessage message)
        {
            switch (message)
            {
            case BatteryMessage bm:
                battery.Update(bm);
                break;

            case PortStatusMessage psm:
                HandleGeneralStatusUpdate(psm);
                break;

            case GestureMessage gm:
                orientation.Update(gm);
                break;
            }
        }
        public static string[] DetermineTopicFromTwitterMessage(IDictionary<string,string> tweetUpdate, IStatusMessage statusMessage, SearchDefinition[] searchDefinitions)
        {
            List<string> topics = new List<string>();
            foreach (SearchDefinition definition in searchDefinitions)
            {
                if (definition.ShouldIgnoreTweet(tweetUpdate))
                {
                    continue;
                }

                if (definition.IsTrackingFor(statusMessage) &&
                    topics.Contains(definition.PublishTo) == false)
                {
                    topics.Add(definition.PublishTo);
                }

                if (definition.IsFollowingUser(statusMessage.User) &&
                    topics.Contains(definition.PublishTo) == false)
                {
                    topics.Add(definition.PublishTo);
                }
            }
            return topics.ToArray();
        }
 /// <summary>
 /// Sends each message individually in an event.
 /// </summary>
 /// <param name="messages"></param>
 private void SendMessageEvents(IStatusMessage[] messages)
 {
     foreach (IStatusMessage message in messages)
     {
         OnStatusMessageReceived(new StatusMessageReceivedEventArgs( message ));
     }
 }
 /// <summary>
 /// Initializes a new instance of the <see cref="StatusMessageReceivedEventArgs"/> class.
 /// </summary>
 /// <param name="message">The message.</param>
 public StatusMessageReceivedEventArgs(IStatusMessage message)
 {
     this.Message = message;
 }
示例#9
0
 public void AutomateMessageDestroy(IStatusMessage statusMessage, long miilisecond)
 {
     statusMessage.AutomateMessageDestroy(miilisecond);
 }
示例#10
0
 public void DestroyMessage(IStatusMessage statusMessage, DestroyTime UsePredefinedTime)
 {
     statusMessage.AutomateMessageDestroy(UsePredefinedTime);
 }
 internal bool IsTrackingFor(IStatusMessage statusMessage)
 {
     if (this.TrackFor != null)
     {
         foreach (string searchParam in this.TrackFor.Split(','))
         {
             if (statusMessage.Text.ToUpper().Contains(searchParam.ToUpper()) == true)
             {
                 return true;
             }
         }
     }
     return false;
 }
        /// <summary>
        /// Dispatchable method that handles <see cref="IStatusMessage"/> changes.
        /// </summary>
        /// <param name="status">The status message recieved from the remote peer.</param>
        /// <param name="parameters">The message parameters the message was sent with.</param>
        public void OnNetworkMessageReceive(IStatusMessage status, IMessageParameters parameters)
        {
            Throw<ArgumentNullException>.If.IsNull(status)?.Now(nameof(status));

            StatusPublisher?.Invoke(status, parameters);
        }
示例#13
0
        /// <summary>
        /// Internally managed status receival method.
        /// Setup to be called internally using the <see cref="INetworkMessageSubscriptionService"/>.
        /// </summary>
        /// <param name="message">The new <see cref="IStatusMessage"/> message.</param>
        /// <param name="parameters"><see cref="IMessageParameters"/> the <see cref="IStatusMessage"/> was sent with.</param>
        private void OnReceiveStatus(IStatusMessage message, IMessageParameters parameters)
        {
            Throw<ArgumentNullException>.If.IsNull(message)?.Now(nameof(message));

            //I know I cast here so let's only call this once for efficiency
            NetStatus s = message.Status;

            //Set the new status to the incoming status
            Status = s;

            if (s != Status)
                OnStatusChanged(s);
        }
 public void OnNetworkMessageReceive(IStatusMessage status, IMessageParameters parameters)
 {
     throw new NotImplementedException("Web peers cannot handle status updates.");
 }