private void OnDirectMessageAdded(DirectMessage message, int messageNo, int allMessageCount) { if (DirectMessageAdded != null) { DirectMessageAdded(this, new DirectMessageAddedEventArgs(message, messageNo, allMessageCount)); } }
/// <summary> /// コンストラクタ /// </summary> /// <param name="message">追加したダイレクトメッセージ</param> /// <param name="messageNo">追加されたダイレクトメッセージの番号を取得する</param> /// <param name="allMessageCount">追加されるはずのダイレクトメッセージの数</param> public DirectMessageAddedEventArgs(DirectMessage message, int messageNo, int allMessageCount) { this.message = message; this.messageNo = messageNo; this.allMessageCount = allMessageCount; }
/// <summary> /// ダイレクトメッセージXMLをステータス情報にパージングする /// </summary> /// <param name="stream">ダイレクトメッセージXMLを格納したStream</param> /// <returns>ダイレクトメッセージ</returns> private DirectMessage[] PaeseDirectMessage(Stream stream) { List <DirectMessage> messageList = new List <DirectMessage>(); try { XmlDocument xdoc = new XmlDocument(); xdoc.Load(stream); XmlNodeList directMessageNodes = xdoc.GetElementsByTagName("direct_message"); int messageCount = 0; foreach (XmlNode directMessageNode in directMessageNodes) { // メッセージ DirectMessage message = new DirectMessage(); foreach (XmlNode inDirectMessageNode in directMessageNode.ChildNodes) { switch (inDirectMessageNode.Name) { case "created_at": message.SetCreatedAt(inDirectMessageNode.InnerText); break; case "id": message.Id = inDirectMessageNode.InnerText; break; case "text": message.Text = inDirectMessageNode.InnerText; break; case "sender_id": message.SenderId = inDirectMessageNode.InnerText; break; case "recipient_id": message.RecipientId = inDirectMessageNode.InnerText; break; case "sender_screen_name": message.SenderScreenName = inDirectMessageNode.InnerText; break; case "recipient_screen_name": message.RecipientrScreenName = inDirectMessageNode.InnerText; break; } } // foreach (XmlNode inStatusNode in statusNode.ChildNodes) messageList.Add(message); OnDirectMessageAdded(message, ++messageCount, directMessageNodes.Count); } } catch (WebException) { throw; } catch (OutOfMemoryException) { throw; } catch (IOException) { throw; } catch (UriFormatException) { throw; } catch (SocketException) { throw; } catch (XmlException) { throw; } return(messageList.ToArray()); }