private void tsmiReadMoreReviews_Click(object sender, EventArgs e) { this.ChangeEnabilityOfReadMoreControls(false); for (int start = DetailView.ReviewCountOnDetailPage; start < this.reviewTotalCount; start += DetailView.ReviewCountOnListPage) { Uri uri = GUriBuilder.CreateReviewListUri(this.cont.ContentId, this.cont.PackageId, start); ReviewListPageRequestState state = new ReviewListPageRequestState(this.cont, start); this.bgTextLoader.AddTaskLast(new BackgroundTextLoadTask(uri, state)); } this.tabControl1.SelectedTab = this.tabpReview; }
private void HandleTextLoadCompletedList(BackgroundTextLoadTaskCompletedEventArgs e, ReviewListPageRequestState reqStateList) { if (!e.Success) { this.bgTextLoader.ClearTasks(); this.StatusMessage = string.Format("レビューの追加取得失敗エラー: {0}", e.Error.Message); return; } List<ReviewPostListViewItem> lvis = new List<ReviewPostListViewItem>(); for (Match m = DetailView.regexReviewListPost.Match(e.Text); m.Success; m = m.NextMatch()) { lvis.Add(new ReviewPostListViewItem( int.Parse(m.Groups["ReviewId"].Value), m.Groups["NetaBare"].Success, int.Parse(m.Groups["Score"].Value), int.Parse(m.Groups["Denominator"].Value), int.Parse(m.Groups["Numerator"].Value), HttpUtility.HtmlDecode(m.Groups["Title"].Value), HttpUtility.HtmlDecode(m.Groups["Author"].Value), m.Groups["Posted"].Value, HttpUtility.HtmlDecode(m.Groups["Body"].Value))); } if (lvis.Count <= 0) { this.bgTextLoader.ClearTasks(); this.StatusMessage = "レビューの追加取得でレビューが一件も拾えなかった."; return; } else { this.lvReview.Items.AddRange(lvis.ToArray()); } }