Ejemplo n.º 1
0
        public List <T> List(OrderEntity[] orders, ListFilterEntity filterCriterias)
        {
            List <T> resultList = new List <T>();

            try
            {
                if (Session == null || !Session.IsOpen)
                {
                    Session = NHibernateManager.Instance.GetSession();
                }

                ICriteria criteria = Session.CreateCriteria(typeof(T));

                addCriterias(ref criteria, filterCriterias);

                addOrder(ref criteria, orders);

                criteria.List(resultList);
            }
            finally
            {
                NHibernateManager.Instance.CloseSession();
            }

            return(resultList);
        }
Ejemplo n.º 2
0
        private void addCriterias(ref ICriteria criteria, ListFilterEntity filterEntities)
        {
            if (filterEntities != null && filterEntities.Count > 0)
            {
                if (!filterEntities.HasOperation)
                {
                    ICriterion criterion;

                    for (int i = 0; i < filterEntities.Count; i++)
                    {
                        criterion = criterionEntity(filterEntities[i]);

                        criteria.Add(criterion);
                    }
                }
                else
                {
                    ICriterion leftCriterion, rightCriterion;

                    for (int i = 1; i < filterEntities.Count - 1; i += 2)
                    {
                        leftCriterion  = criterionEntity(filterEntities[i - 1]);
                        rightCriterion = criterionEntity(filterEntities[i + 1]);

                        switch (filterEntities[i].FilterOperation)
                        {
                        case FilterOperation.And: criteria.Add(Expression.And(leftCriterion, rightCriterion)); break;

                        case FilterOperation.Or: criteria.Add(Expression.Or(leftCriterion, rightCriterion)); break;

                        default: throw new OrderOperationInvalidException();
                        }
                    }
                }
            }
        }
Ejemplo n.º 3
0
 /// <summary>
 /// O mesmo que List(), incluindo um array do tipo NHibernate.Expression.Order para ordenação da lista.
 /// </summary>
 /// <param name="orders">Array com instâncias de Order.</param>
 /// <returns></returns>
 public virtual IList List(OrderEntity[] orders, ListFilterEntity filterEntities)
 {
     return(ListEntityManager <T> .Instance.List(orders, filterEntities));
 }