/// <summary> /// شرط را اعمال میکند /// و خروجی را در پارامتر دوم میریزد /// </summary> /// <param name="criteriaStruct"></param> /// <param name="criteria"></param> private void MakeCriteria(CriteriaStruct criteriaStruct, ref ICriteria criteria) { CriteriaStruct c = criteriaStruct; switch (criteriaStruct.Operation) { case CriteriaOperation.Equal: criteria.Add(Restrictions.Eq(c.PropertyName, c.Value)); break; case CriteriaOperation.IS: criteria.Add(Restrictions.IsNull(c.PropertyName)); break; case CriteriaOperation.NotEqual: criteria.Add(Restrictions.Not(Restrictions.Eq(c.PropertyName, c.Value))); break; case CriteriaOperation.GreaterThan: criteria.Add(Restrictions.Gt(c.PropertyName, c.Value)); break; case CriteriaOperation.LessThan: criteria.Add(Restrictions.Lt(c.PropertyName, c.Value)); break; case CriteriaOperation.GreaterEqThan: criteria.Add(Restrictions.Ge(c.PropertyName, c.Value)); break; case CriteriaOperation.LessEqThan: criteria.Add(Restrictions.Le(c.PropertyName, c.Value)); break; case CriteriaOperation.IsNotNull: criteria.Add(Restrictions.IsNotNull(c.PropertyName)); break; case CriteriaOperation.IsNull: criteria.Add(Restrictions.IsNull(c.PropertyName)); break; case CriteriaOperation.IN: criteria.Add(Restrictions.In(c.PropertyName, (decimal[])c.Value)); break; case CriteriaOperation.Like: if (c.Value is string) { criteria.Add(Restrictions.Like(c.PropertyName, c.Value.ToString(), MatchMode.Anywhere)); } else { criteria.Add(Restrictions.Like(c.PropertyName, c.Value)); } break; } }
/// <summary> /// تعداد رکوردها را پس از اعمال شروط بازمیگرداند /// توجه شود که تنها عملگر 'و' را جهت اتصال شروط استفاده میکند /// </summary> /// <param name="cretriaParam"></param> /// <returns></returns> public virtual int GetCountByCriteria(params CriteriaStruct[] cretriaParam) { ICriteria crit = this.NHibernateSession.CreateCriteria(typeof(T)); for (int i = 0; i < cretriaParam.Length; i++) { CriteriaStruct c = cretriaParam[i]; this.MakeCriteria(c, ref crit); } int count = (int)crit.SetProjection(Projections.Count("ID")).UniqueResult(); return(count); }
/// <summary> /// تعداد رکوردها را پس از اعمال شروط بازمیگرداند /// توجه شود که تنها عملگر 'و' را جهت اتصال شروط استفاده میکند /// </summary> /// <param name="cretriaParam"></param> /// <returns></returns> public virtual IList <T> GetByCriteria(params CriteriaStruct[] cretriaParam) { ICriteria crit = this.NHibernateSession.CreateCriteria(typeof(T)); for (int i = 0; i < cretriaParam.Length; i++) { CriteriaStruct c = cretriaParam[i]; this.MakeCriteria(c, ref crit); } IList <T> list = crit.List <T>(); return(list); }
/// <summary> /// تعداد رکوردها را پس از اعمال شروط بازمیگرداند /// </summary> /// <param name="cretriaParam"></param> /// <returns></returns> public virtual int GetCountByCriteria(ConditionOperations conOp, params CriteriaStruct[] cretriaParam) { ICriteria crit = this.NHibernateSession.CreateCriteria(typeof(T)); Junction disjunction = Restrictions.Disjunction(); for (int i = 0; i < cretriaParam.Length; i++) { CriteriaStruct c = cretriaParam[i]; this.MakeCriteria(c, ref crit, ref disjunction, conOp); } crit.Add(disjunction); int count = (int)crit.SetProjection(Projections.Count("ID")).UniqueResult(); return(count); }
/// <summary> /// تعداد رکوردها را پس از اعمال شروط بازمیگرداند /// </summary> /// <param name="cretriaParam"></param> /// <returns></returns> public virtual IList <T> GetByCriteriaByPage(int pageIndex, int pageSize, ConditionOperations conOp, params CriteriaStruct[] cretriaParam) { ICriteria crit = this.NHibernateSession.CreateCriteria(typeof(T)); Junction disjunction = Restrictions.Disjunction(); for (int i = 0; i < cretriaParam.Length; i++) { CriteriaStruct c = cretriaParam[i]; this.MakeCriteria(c, ref crit, ref disjunction, conOp); } crit.Add(disjunction); IList <T> list = crit.SetFirstResult(pageIndex * pageSize).SetMaxResults(pageSize).List <T>(); return(list); }
/// <summary> /// تعداد رکوردها را پس از اعمال شروط بازمیگرداند /// توجه شود که تنها عملگر 'و' را جهت اتصال شروط استفاده میکند /// </summary> /// <param name="cretriaParam"></param> /// <returns></returns> public virtual IList <T> GetByCriteriaByPage(int pageIndex, int pageSize, params CriteriaStruct[] cretriaParam) { ICriteria crit = this.NHibernateSession.CreateCriteria(typeof(T)); for (int i = 0; i < cretriaParam.Length; i++) { CriteriaStruct c = cretriaParam[i]; this.MakeCriteria(c, ref crit); } //if (category == PersonCategory.Public) //{ //} IList <T> list = crit.SetFirstResult(pageIndex * pageSize).SetMaxResults(pageSize).List <T>(); return(list); }
public IList <ProceedTrafficProxy> GetAllTrafic(decimal prsId, DateTime fromDate, DateTime toDate) { IList <ProceedTrafficProxy> list3; try { EntityRepository <ProceedTraffic> repository = new EntityRepository <ProceedTraffic>(); List <ProceedTrafficProxy> list = new List <ProceedTrafficProxy>(); CriteriaStruct[] structArray = new CriteriaStruct[3]; Person person = new Person(); person.ID = prsId; IList <ProceedTraffic> byCriteria = repository.GetByCriteria(new CriteriaStruct(Utility.GetPropertyName(() => new ProceedTraffic().Person), new Person() { ID = prsId }), new CriteriaStruct(Utility.GetPropertyName(() => new ProceedTraffic().FromDate), fromDate, CriteriaOperation.GreaterEqThan), new CriteriaStruct(Utility.GetPropertyName(() => new ProceedTraffic().FromDate), toDate, CriteriaOperation.LessEqThan)); foreach (ProceedTraffic traffic in byCriteria) { for (int i = 0; i < traffic.Pairs.Count; i++) { ProceedTrafficProxy item = new ProceedTrafficProxy(); item.From = Utility.IntTimeToRealTime(traffic.Pairs[i].From); item.To = Utility.IntTimeToRealTime(traffic.Pairs[i].To); item.Pishcard = traffic.Pairs[i].Precard.Name; item.Date = Utility.ToString(traffic.FromDate); list.Add(item); } } list3 = list; } catch (Exception exception) { BaseBusiness <BasicTraffic> .LogException(exception); throw exception; } return(list3); }
/// <summary> /// شرط را اعمال میکند /// و خروجی را در پارامتر دوم و سوم میریزد /// </summary> /// <param name="criteriaStruct"></param> /// <param name="criteria"></param> private void MakeCriteria(CriteriaStruct criteriaStruct, ref ICriteria criteria, ref Junction disjunction, ConditionOperations conOp) { CriteriaStruct c = criteriaStruct; switch (c.Operation) { case CriteriaOperation.Equal: if (conOp == ConditionOperations.AND) { criteria.Add(Restrictions.Eq(c.PropertyName, c.Value)); } else if (conOp == ConditionOperations.OR) { disjunction.Add(Restrictions.Eq(c.PropertyName, c.Value)); } break; case CriteriaOperation.NotEqual: if (conOp == ConditionOperations.AND) { criteria.Add(Restrictions.Not(Restrictions.Eq(c.PropertyName, c.Value))); } else if (conOp == ConditionOperations.OR) { disjunction.Add(Restrictions.Not(Restrictions.Eq(c.PropertyName, c.Value))); } break; case CriteriaOperation.GreaterThan: if (conOp == ConditionOperations.AND) { criteria.Add(Restrictions.Gt(c.PropertyName, c.Value)); } else if (conOp == ConditionOperations.OR) { disjunction.Add(Restrictions.Gt(c.PropertyName, c.Value)); } break; case CriteriaOperation.LessThan: if (conOp == ConditionOperations.AND) { criteria.Add(Restrictions.Lt(c.PropertyName, c.Value)); } else if (conOp == ConditionOperations.OR) { disjunction.Add(Restrictions.Lt(c.PropertyName, c.Value)); } break; case CriteriaOperation.GreaterEqThan: if (conOp == ConditionOperations.AND) { criteria.Add(Restrictions.Ge(c.PropertyName, c.Value)); } else if (conOp == ConditionOperations.OR) { disjunction.Add(Restrictions.Ge(c.PropertyName, c.Value)); } break; case CriteriaOperation.LessEqThan: if (conOp == ConditionOperations.AND) { criteria.Add(Restrictions.Le(c.PropertyName, c.Value)); } else if (conOp == ConditionOperations.OR) { disjunction.Add(Restrictions.Le(c.PropertyName, c.Value)); } break; case CriteriaOperation.IsNotNull: criteria.Add(Restrictions.IsNotNull(c.PropertyName)); break; case CriteriaOperation.IsNull: criteria.Add(Restrictions.IsNull(c.PropertyName)); break; case CriteriaOperation.IN: if (conOp == ConditionOperations.AND) { criteria.Add(Restrictions.In(c.PropertyName, (object[])c.Value)); } else if (conOp == ConditionOperations.OR) { disjunction.Add(Restrictions.In(c.PropertyName, (object[])c.Value)); } break; case CriteriaOperation.Like: if (conOp == ConditionOperations.AND) { if (c.Value is string) { criteria.Add(Restrictions.Like(c.PropertyName, c.Value.ToString(), MatchMode.Anywhere)); } else { criteria.Add(Restrictions.Like(c.PropertyName, c.Value)); } } else if (conOp == ConditionOperations.OR) { if (c.Value is string) { disjunction.Add(Restrictions.Like(c.PropertyName, c.Value.ToString(), MatchMode.Anywhere)); } else { disjunction.Add(Restrictions.Like(c.PropertyName, c.Value)); } } break; } }