コード例 #1
0
 private string GetQueryOrder(ISearchOrder so)
 {
     if (so.Ascending)
     {
         return(so.PropertyName);
     }
     else
     {
         return(so.PropertyName + " desc");
     }
 }
コード例 #2
0
 public OrderController(IOrderRepository <Order> orderRepository, ISearchOrder searchOrder)
 {
     _orderRepository = orderRepository;
     _searchOrder     = searchOrder;
 }
コード例 #3
0
        private static NHibernate.Criterion.Order GetOrder(ref ICriteria originalCriteria,
                                                           Dictionary <string, ICriteria> aliases, ISearchOrder findOrder)
        {
            StringBuilder name       = new StringBuilder();
            string        columnName = findOrder.PropertyName;

            if (columnName.Contains(":"))
            {
                int    idx        = columnName.LastIndexOf(':');
                string prefixName = columnName.Substring(0, idx);
                columnName = columnName.Substring(idx + 1);
                string[] prefixNames = prefixName.Split(new char[] { ':' }, StringSplitOptions.RemoveEmptyEntries);

                for (int j = 0; j < prefixNames.Length; ++j)
                {
                    string prefixAlias = prefixNames[j];
                    if (!aliases.ContainsKey(prefixAlias))
                    {
                        string    preCriteria;
                        ICriteria criteria;
                        if (j == 0)
                        {
                            preCriteria = "Current";
                        }
                        else
                        {
                            preCriteria = prefixNames[j - 1];
                        }

                        NHibernate.SqlCommand.JoinType joinType;
                        if (j == prefixNames.Length - 1)
                        {
                            joinType = GetJoinType(ref columnName);
                        }
                        else
                        {
                            joinType = GetJoinType(ref prefixNames[j - 1]);
                        }

                        criteria = CreateJoinCriteria(prefixAlias, preCriteria, aliases, joinType);

                        aliases.Add(prefixAlias, criteria);

                        originalCriteria = criteria;
                    }

                    if (j == prefixNames.Length - 1)
                    {
                        name.Append(prefixAlias).Append(".");
                    }
                }
            }
            else
            {
                name.Append("Current").Append(".");
            }


            if (findOrder.Ascending)
            {
                return(NHibernate.Criterion.Order.Asc(name.ToString() + columnName));
            }
            else
            {
                return(NHibernate.Criterion.Order.Desc(name.ToString() + columnName));
            }
        }