Beispiel #1
0
        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());
        }
Beispiel #2
0
        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;
        }
Beispiel #4
0
 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;
 }