Ejemplo n.º 1
0
 private void OnStatusAdded(StatusInfomation addedStatus, int statusNo, int allStatusCount)
 {
     if (StatusAdded != null)
     {
         StatusAdded(this, new StatusAddedEventArgs(addedStatus, statusNo, allStatusCount));
     }
 }
Ejemplo n.º 2
0
        /// <summary>
        /// ステータス情報XMLをステータス情報にパージングする
        /// </summary>
        /// <param name="stream">ステータス情報XMLを格納したStream</param>
        /// <returns>ステータス情報</returns>
        private StatusInfomation[] PaeseStatuses(Stream stream)
        {
            List <StatusInfomation> statusList = new List <StatusInfomation>();

            try
            {
                XmlDocument xdoc = new XmlDocument();
                xdoc.Load(stream);
                XmlNodeList statusNodes = xdoc.GetElementsByTagName("status");
                int         statusCount = 0;
                foreach (XmlNode statusNode in statusNodes)
                {
                    // ステータス
                    StatusInfomation status = new StatusInfomation();

                    foreach (XmlNode inStatusNode in statusNode.ChildNodes)
                    {
                        switch (inStatusNode.Name)
                        {
                        case "created_at":
                            status.SetCreatedAt(inStatusNode.InnerText);
                            break;

                        case "id":
                            status.Id = inStatusNode.InnerText;
                            break;

                        case "text":
                            status.Text = inStatusNode.InnerText;
                            break;

                        case "user":
                        {
                            // ユーザー情報
                            UserInfomation user = new UserInfomation();

                            foreach (XmlNode userNode in inStatusNode.ChildNodes)
                            {
                                switch (userNode.Name)
                                {
                                case "id":
                                    user.Id = userNode.InnerText;
                                    break;

                                case "name":
                                    user.Name = userNode.InnerText;
                                    break;

                                case "screen_name":
                                    user.ScreenName = userNode.InnerText;
                                    break;

                                case "location":
                                    user.Location = userNode.InnerText;
                                    break;

                                case "description":
                                    user.Description = userNode.InnerText;
                                    break;

                                case "profile_image_url":
                                    try
                                    {
                                        user.ProfileImageUrl = new Uri(userNode.InnerText);
                                    }
                                    catch (UriFormatException) {; }
                                    break;

                                case "url":
                                    try
                                    {
                                        user.Url = new Uri(userNode.InnerText);
                                    }
                                    catch (UriFormatException) {; }
                                    break;

                                case "protected":
                                    if (userNode.InnerText == Boolean.TrueString)
                                    {
                                        user.ProtectedMyUpdate = true;
                                    }
                                    else
                                    {
                                        user.ProtectedMyUpdate = false;
                                    }
                                    break;
                                }
                            }         // foreach (XmlNode userNode in inStatusNode.ChildNodes)

                            status.User = user;
                        }
                        break;
                        }
                    } // foreach (XmlNode inStatusNode in statusNode.ChildNodes)

                    statusList.Add(status);
                    OnStatusAdded(status, ++statusCount, statusNodes.Count);
                }
            }
            catch (WebException) { throw; }
            catch (OutOfMemoryException) { throw; }
            catch (IOException) { throw; }
            catch (UriFormatException) { throw; }
            catch (SocketException) { throw; }
            catch (XmlException) { throw; }

            return(statusList.ToArray());
        }
Ejemplo n.º 3
0
 /// <summary>
 /// コンストラクタ
 /// </summary>
 /// <param name="status">追加したステータス情報</param>
 /// <param name="statusNo">追加されたステータス情報の番号を取得する</param>
 /// <param name="allStatusCount">追加されるはずのステータス情報の数</param>
 public StatusAddedEventArgs(StatusInfomation status, int statusNo, int allStatusCount)
 {
     this.status         = status;
     this.statusNo       = statusNo;
     this.allStatusCount = allStatusCount;
 }