/// <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; }
/// <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; }
/// <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()); }