using System; using System.Collections.Generic; using System.Runtime.Serialization; namespace Umbraco.Core.Models { /// /// Represents a paged result for a model collection /// /// [DataContract(Name = "pagedCollection", Namespace = "")] public class PagedResult { public PagedResult(long totalItems, long pageNumber, long pageSize) { TotalItems = totalItems; PageNumber = pageNumber; PageSize = pageSize; if (pageSize > 0) { TotalPages = (long) Math.Ceiling(totalItems/(Decimal) pageSize); } else { TotalPages = 1; } } [DataMember(Name = "pageNumber")] public long PageNumber { get; private set; } [DataMember(Name = "pageSize")] public long PageSize { get; private set; } [DataMember(Name = "totalPages")] public long TotalPages { get; private set; } [DataMember(Name = "totalItems")] public long TotalItems { get; private set; } [DataMember(Name = "items")] public IEnumerable Items { get; set; } /// /// Calculates the skip size based on the paged parameters specified /// /// /// Returns 0 if the page number or page size is zero /// internal int SkipSize { get { if (PageNumber > 0 && PageSize > 0) { return Convert.ToInt32((PageNumber - 1)*PageSize); } return 0; } } } }