Ejemplo n.º 1
0
        private int Compare(MemoryQueryResultRow o1, MemoryQueryResultRow o2, ICollection <OrderByItem> orderByItems)
        {
            foreach (var orderByItem in orderByItems)
            {
                Object orderValue1 = o1.GetCell(orderByItem.GetIndex());
                ShardingAssert.Else(null == orderValue1 || orderValue1 is IComparable, "Order by value must implements Comparable");
                Object orderValue2 = o2.GetCell(orderByItem.GetIndex());
                ShardingAssert.Else(null == orderValue2 || orderValue2 is IComparable, "Order by value must implements Comparable");
                int result = CompareUtil.CompareTo((IComparable)orderValue1, (IComparable)orderValue2, orderByItem.GetSegment().GetOrderDirection(),
                                                   orderByItem.GetSegment().GetNullOrderDirection(), valueCaseSensitive[orderByItem.GetIndex()]);
                if (0 != result)
                {
                    return(result);
                }
            }

            return(0);
        }