using System.Runtime.Serialization;
/// <summary>
/// 通用分页请求类
/// </summary>
[DataContract]
public class PagedListModelReq : Request
{
/// <summary>
/// <strong>Initializes a new instance of the <see cref="</strong>OperationLogReq<strong>" /> class</strong>
/// OperationLogReq
/// </summary>
public PagedListModelReq()
{
this.PageIndex = 1;
this.PageSize = 15;
}
/// <summary>
/// 索引开始
/// </summary>
[DataMember]
public int StartIndex
{
get
{
int index = 0;
if (this.PageSize > 0 && this.PageIndex > 0)
{
index = ((this.PageIndex - 1) * this.PageSize) + 1;
}
return index;
}
}
/// <summary>
/// 索引结束
/// </summary>
[DataMember]
public int EndIndex
{
get
{
int index = 1;
if (this.PageSize > 0 && this.PageIndex > 0)
{
index = this.PageIndex * this.PageSize;
}
return index;
}
}
/// <summary>
/// 分页大小
/// </summary>
[DataMember]
public int PageSize { get; set; }
/// <summary>
/// 第几页数
/// </summary>
[DataMember]
public int PageIndex { get; set; }
/// <summary>
/// Called when [deserialized].
/// </summary>
/// <param name="context">StreamingContext</param>
[OnDeserialized]
private void OnDeserialized(StreamingContext context)
{
if (this.PageIndex <= 0)
{
this.PageIndex = 1;
}
if (this.PageSize <= 0)
{
this.PageSize = 15;
}
}
}
/// <summary>
/// 通用分页请求类
/// </summary>
/// <typeparam name="T">Poco类型</typeparam>
[DataContract]
public class PagedListModelReq<T> : Request
{
/// <summary>
/// <strong>Initializes a new instance of the <see cref="</strong>OperationLogReq<strong>" /> class</strong>
/// OperationLogReq
/// </summary>
public PagedListModelReq()
{
this.PageIndex = 1;
this.PageSize = 15;
}
/// <summary>
/// 索引开始
/// </summary>
[DataMember]
public int StartIndex
{
get
{
int index = 0;
if (this.PageSize > 0 && this.PageIndex > 0)
{
index = ((this.PageIndex - 1) * this.PageSize) + 1;
}
return index;
}
}
/// <summary>
/// 索引结束
/// </summary>
[DataMember]
public int EndIndex
{
get
{
int index = 1;
if (this.PageSize > 0 && this.PageIndex > 0)
{
index = this.PageIndex * this.PageSize;
}
return index;
}
}
/// <summary>
/// 分页大小
/// </summary>
[DataMember]
public int PageSize { get; set; }
/// <summary>
/// 第几页数
/// </summary>
[DataMember]
public int PageIndex { get; set; }
/// <summary>
/// Called when [deserialized].
/// </summary>
/// <param name="context">序列化的上下文</param>
[OnDeserialized]
private void OnDeserialized(StreamingContext context)
{
if (this.PageIndex <= 0)
{
this.PageIndex = 1;
}
if (this.PageSize <= 0)
{
this.PageSize = 15;
}
}
}
[Serializable]
[DataContract]
public class PagedResult<T> : IPagedResult<T>
{
protected PagedResult();
public PagedResult(IList<T> source, int pageIndex, int pageSize);
public PagedResult(IQueryable<T> source, int pageIndex, int pageSize);
public PagedResult(IEnumerable<T> source, int pageIndex, int pageSize, int totalCount);
[DataMember]
public bool HasNextPage { get; }
[DataMember]
public bool HasPreviousPage { get; }
[DataMember]
public IEnumerable<T> Items { get; }
[DataMember]
public int PageIndex { get; }
[DataMember]
public int PageSize { get; }
[DataMember]
public int TotalCount { get; }
[DataMember]
public int TotalPages { get; }
}
/// <summary>
/// 通用分页返回类
/// </summary>
/// <typeparam name="T">Model对应的类型</typeparam>
[DataContract]
public class PagedListModelResp<T> : Response
{
/// <summary>
/// 返回分页数据
/// </summary>
[DataMember]
public PagedResult<T> List { get; set; }
}