Exemplo n.º 1
0
        /// <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;
            }
        }
Exemplo n.º 2
0
        /// <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);
        }
Exemplo n.º 3
0
        /// <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);
        }
Exemplo n.º 4
0
        /// <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);
        }
Exemplo n.º 5
0
        /// <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);
        }
Exemplo n.º 6
0
        /// <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);
        }
Exemplo n.º 7
0
        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);
        }
Exemplo n.º 8
0
        /// <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;
            }
        }