using System;
using System.Collections.Generic;
using System.Linq;
using System.Text; namespace Entity.Commons { /// <summary> /// 自定义谓词 /// </summary> public class VPredication : IEnumerable<KeyValuePair<string, object>> { Dictionary<string, object> dicv = null; SpacePredication spacePredication = null; /// <summary> /// 区间谓词 /// </summary> public SpacePredication SpacePredication { get { return this.spacePredication; } } /// <summary> /// 自定义区间 构造函数 /// </summary> public VPredication() { spacePredication = new SpacePredication(); dicv = new Dictionary<string, object>(); } /// <summary> /// 验证键是否存在值 /// </summary> /// <param name="index">键</param> /// <returns>bool</returns> public bool ContainsKey(string index) { return this.dicv.ContainsKey(index); } /// <summary> /// 索引器 /// </summary> /// <param name="index">索引值</param> /// <returns>值</returns> public object this[string index] { get { if (dicv.ContainsKey(index)) return dicv[index]; else return null; } } /// <summary> /// 增加新项 /// </summary> /// <param name="key">列枚举[只能接受非FLAG得单个枚举]</param> /// <param name="extremumPair"></param> public void AddItem(string key, object value) { this.dicv.Add(key, value); } /// <summary> /// 移除制定 列枚举 的项 /// </summary> /// <param name="key">列枚举[只能接受非FLAG得单个枚举]</param> public void RemoveItem(string key) { this.dicv.Remove(key); } #region IEnumerable<KeyValuePair<string,object>> 成员 public IEnumerator<KeyValuePair<string, object>> GetEnumerator() { return this.dicv.GetEnumerator(); } #endregion #region IEnumerable 成员 System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator() { return this.dicv.GetEnumerator(); } #endregion } /// <summary> /// 区间谓词 /// </summary> public class SpacePredication : IEnumerable<KeyValuePair<string, ExtremumPair>> { Dictionary<string, ExtremumPair> dic = null; /// <summary> /// 区间谓词 构造函数 /// </summary> public SpacePredication() { dic = new Dictionary<string, ExtremumPair>(); } /// <summary> /// 索引器 /// </summary> /// <param name="index">索引值</param> /// <returns>区间极值值对</returns> public ExtremumPair this[string index] { get { return dic[index]; } } /// <summary> /// 验证键是否存在值 /// </summary> /// <param name="index">键</param> /// <returns>bool</returns> public bool ContainsKey(string index) { return this.dic.ContainsKey(index); } /// <summary> /// 增加新项 /// </summary> /// <param name="_enum">列枚举[只能接受非FLAG得单个枚举]</param> /// <param name="extremumPair"></param> public void AddItem(string key, ExtremumPair extremumPair) { this.dic.Add(key, extremumPair); } /// <summary> /// 移除制定 列枚举 的项 /// </summary> /// <param name="key">列枚举[只能接受非FLAG得单个枚举]</param> public void RemoveItem(string key) { this.dic.Remove(key); } #region IEnumerable<KeyValuePair<string,ExtremumPair>> 成员 public IEnumerator<KeyValuePair<string, ExtremumPair>> GetEnumerator() { return this.dic.GetEnumerator(); } #endregion #region IEnumerable 成员 System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator() { return this.dic.GetEnumerator(); } #endregion } /// <summary> /// 区间极值值对 /// </summary> public class ExtremumPair { object leftValue, rightValue; /// <summary> /// 左极值 /// </summary> public object LeftValue { get { return leftValue; } } /// <summary> /// 右极值 /// </summary> public object RightValue { get { return rightValue; } } /// <summary> /// 区间极值值对 构造函数 /// </summary> /// <param name="leftValue">左极值</param> /// <param name="rightValue">右极值</param> public ExtremumPair(object leftValue, object rightValue) { this.leftValue = leftValue; this.rightValue = rightValue; } } /// <summary> /// 通用分页参数 结构 /// </summary> public class PagingParam { int pageSize = 10; int pageIndex = 1; int pageTotal = -1; /// <summary> /// 页面大小 /// </summary> public int PageSize { get { return pageSize; } } /// <summary> /// 页码 /// </summary> public int PageIndex { get { return pageIndex; } } public int PageTotal { get { return pageTotal; } } /// 构造函数 /// </summary> public PagingParam() { } /// <summary> /// 通用分页参数结构 构造函数 /// </summary> /// <param name="pageIndex">页码</param> /// <param name="pageSize">页面大小</param> public PagingParam(int pageIndex, int pageSize) { this.pageIndex = pageIndex; this.pageSize = pageSize; this.pageTotal = PageSize; } public PagingParam(int pageIndex, int pageSize, int pageTotal) { this.pageIndex = pageIndex; this.pageSize = pageSize; this.pageTotal = pageTotal; } } }