Ejemplo n.º 1
0
        async Task FetchMessageSummariesAsync(bool print)
        {
            var messageIds = await folder.SearchAsync(SearchQuery.NotSeen);

            if (messageIds.Count == 0)
            {
                return;
            }
            var messages = await folder.FetchAsync(messageIds, MessageSummaryItems.UniqueId | MessageSummaryItems.Envelope, cancel.Token);



            var toDelete = new List <UniqueId>();

            foreach (var message in messages)
            {
                try
                {
                    bool removeEmail = false;
                    NewMessageArrived?.Invoke(message.NormalizedSubject, ref removeEmail);

                    if (removeEmail)
                    {
                        toDelete.Add(message.UniqueId);
                    }
                }
                catch (Exception ex)
                {
                    Console.WriteLine("Problem handling message: " + ex.Message);
                }
            }

            folder.AddFlags(toDelete, MessageFlags.Seen, true);
        }
Ejemplo n.º 2
0
        public void Start(string group, ICollection <string> topics)
        {
            var config = new ConsumerConfig
            {
                BootstrapServers = _bootstrapServers,
                GroupId          = group,
                AutoOffsetReset  = AutoOffsetReset.Latest
            };

            var ct = new CancellationToken();

            using (var consumer = new ConsumerBuilder <Ignore, string>(config).Build())
            {
                consumer.Subscribe(topics);

                while (!cancelled)
                {
                    var consumeResult = consumer.Consume(ct);

                    // handle consumed message

                    var msg = new StreamMessage(consumeResult.Message.Value);

                    NewMessageArrived?.Invoke(msg);
                }

                consumer.Close();
            }
        }
Ejemplo n.º 3
0
        private void PortOnDataReceived(object sender, SerialDataReceivedEventArgs serialDataReceivedEventArgs)
        {
            try
            {
                if (Port.IsOpen)
                {
                    var str = Port.ReadLine();

                    //save messages in a buffer if it is needed to be read within a certain time.
                    lock (messageBuffer)
                    {
                        messageBuffer.Enqueue(Message.ParseMessage(str));
                    }

                    var msg = Message.ParseMessage(str);
                    NewMessageArrived?.Invoke(msg);
                }
                // Port.DiscardInBuffer();
            }
            catch (Exception ex)
            {
                Console.WriteLine("DataRecieved Error:{0}", ex.Message);
            }
        }
Ejemplo n.º 4
0
 /// <summary>
 /// Fire new message arrived event
 /// </summary>
 /// <param name="e"></param>
 protected virtual void OnNewMessageArrived(NewMessageEventArgs e)
 {
     NewMessageArrived?.Invoke(this, e);
 }