Пример #1
0
 /// <summary>
 /// コンストラクタ
 /// </summary>
 /// <param name="createdAt">ステータス情報が作成された時刻</param>
 /// <param name="id">ID</param>
 /// <param name="user">ユーザー情報</param>
 public StatusInfomation(string createdAt, string id, UserInfomation user)
 {
     try
     {
         SetCreatedAt(createdAt);
     }
     catch (FormatException)
     {
         ;
     }
     this.id   = id;
     this.user = user;
 }
Пример #2
0
 /// <summary>
 /// コンストラクタ
 /// </summary>
 /// <param name="createdAt">ステータス情報が作成された時刻</param>
 /// <param name="id">ID</param>
 /// <param name="user">ユーザー情報</param>
 public StatusInfomation(DateTime createdAt, string id, UserInfomation user)
 {
     this.createdAt = createdAt;
     this.id        = id;
     this.user      = user;
 }
Пример #3
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());
        }