/// <summary> /// /// </summary> /// <param name="text"></param> public ImapIdleCommandMessageReceivedEventArgs(String text) { Match m = null; ImapIdleCommandMessageType tp = ImapIdleCommandMessageType.Exists; this.Done = false; this.Text = text; StringReader sr = new StringReader(text); while (sr.Peek() > -1) { var line = sr.ReadLine(); if (line.StartsWith("+ idling", StringComparison.OrdinalIgnoreCase) == true) { _MessageList.Add(new ImapIdleCommandMessage(ImapIdleCommandMessageType.Idling, -1)); } else { m = RegexList.Message.Match(line); if (String.IsNullOrEmpty(m.Value) == true) { continue; } switch (m.Groups["Type"].Value) { case "EXISTS": tp = ImapIdleCommandMessageType.Exists; break; case "EXPUNGE": tp = ImapIdleCommandMessageType.Expunge; break; default: continue; } _MessageList.Add(new ImapIdleCommandMessage(tp, Int32.Parse(m.Groups["Number"].Value))); } } }
/// <summary> /// /// </summary> /// <param name="messageType"></param> /// <param name="number"></param> public ImapIdleCommandMessage(ImapIdleCommandMessageType messageType, Int32 number) { this.MessageType = messageType; this.Number = number; }