public override void WriteJson(JsonWriter writer, object value, JsonSerializer serializer) { IPagedData pagedData = (IPagedData)value; writer.WriteRawValue(new JObject() { { "PageCount", pagedData.PageCount }, { "PageNumber", pagedData.PageNumber }, { "PageSize", pagedData.PageSize }, { "TotalItemCount", pagedData.TotalItemCount }, { "Items", JArray.FromObject(value, JsonParser <BaseResponse> .GetDefaultJsonSerializer()) } }.ToString()); }
public override object ReadJson(JsonReader reader, Type objectType, object existingValue, JsonSerializer serializer) { JTokenReader jtokenReader = (JTokenReader)reader; IPagedData pagedData = (IPagedData)Activator.CreateInstance(objectType); JObject jobject = (JObject)jtokenReader.CurrentToken; pagedData.PageCount = jobject.Value <int>("PageCount"); pagedData.PageNumber = jobject.Value <int>("PageNumber"); pagedData.PageSize = jobject.Value <int>("PageSize"); pagedData.TotalItemCount = jobject.Value <int>("TotalItemCount"); if (jobject["Items"] != null) { foreach (JToken jtoken in (JArray)jobject["Items"]) { pagedData.AddItem(jtoken.ToObject(objectType.GenericTypeArguments[0], JsonParser <BaseResponse> .GetDefaultJsonSerializer())); } } return(pagedData); }
public void Setup(IPagedData pagedList) { this.pageNumbers.Children.Clear(); int num1 = pagedList.PageNumber - 3 < 1 ? 1 : pagedList.PageNumber - 3; int num2 = num1 + 6 > pagedList.PageCount ? pagedList.PageCount : num1 + 6; Style style1 = this.FindResource("PageButtonStyle") as Style; Style style2 = this.FindResource("CurrentPageButtonStyle") as Style; for (int index = num1; index <= num2; ++index) { Button button = new Button(); button.Tag = index; button.Style = index == pagedList.PageNumber ? style2 : style1; button.Click += new RoutedEventHandler(this.PageButton_Click); button.Content = index; this.pageNumbers.Children.Add((UIElement)button); } this.btnFirstPage.Tag = 1; if (pagedList.PageNumber > 1) { this.btnPrevPage.Visibility = Visibility.Visible; this.btnPrevPage.Tag = (pagedList.PageNumber - 1); } else { this.btnPrevPage.Visibility = Visibility.Collapsed; } if (pagedList.PageNumber < pagedList.PageCount) { this.btnNextPage.Visibility = Visibility.Visible; this.btnNextPage.Tag = (pagedList.PageNumber + 1); } else { this.btnNextPage.Visibility = Visibility.Collapsed; } this.btnLastPage.Tag = pagedList.PageCount; this.Visibility = Visibility.Visible; this.pageNumber = pagedList.PageNumber; }
public Pager(IPagedData pagedData, Func<int, string> urlTemplate) { if (pagedData == null) { throw new ArgumentNullException("pagedData"); } if (urlTemplate == null) { throw new ArgumentNullException("urlTemplate"); } this.pagedData = pagedData; this.urlTemplate = urlTemplate; }