Azavea.Open.DAO.SQL.SqlDaLayer.OrderListToSql C# (CSharp) Method

OrderListToSql() protected method

Converts the list of SortOrders from this criteria into SQL, and appends to the given string builder.
protected OrderListToSql ( StringBuilder orderClauseToAddTo, DaoCriteria crit, ClassMapping mapping ) : void
orderClauseToAddTo StringBuilder
crit Azavea.Open.DAO.Criteria.DaoCriteria
mapping ClassMapping
return void
        protected void OrderListToSql(StringBuilder orderClauseToAddTo, DaoCriteria crit,
            ClassMapping mapping)
        {
            bool first = true;
            foreach (SortOrder order in crit.Orders)
            {
                if (first)
                {
                    first = false;
                }
                else
                {
                    orderClauseToAddTo.Append(", ");
                }
                switch (order.Direction)
                {
                    case SortType.Asc:
                        orderClauseToAddTo.Append(order is GroupCountSortOrder
                            ? (_connDesc.CanUseAliasInOrderClause()
                                ? (_connDesc.ColumnAliasPrefix() + COUNT_COL_ALIAS + _connDesc.ColumnAliasSuffix())
                                : "COUNT(*)")
                            : mapping.AllDataColsByObjAttrs[order.Property]);
                        orderClauseToAddTo.Append(" ASC");
                        break;
                    case SortType.Desc:
                        orderClauseToAddTo.Append(order is GroupCountSortOrder
                            ? (_connDesc.CanUseAliasInOrderClause()
                                ? (_connDesc.ColumnAliasPrefix() + COUNT_COL_ALIAS + _connDesc.ColumnAliasSuffix())
                                : "COUNT(*)")
                            : mapping.AllDataColsByObjAttrs[order.Property]);
                        orderClauseToAddTo.Append(" DESC");
                        break;
                    case SortType.Computed:
                        orderClauseToAddTo.Append(order.Property);
                        break;
                    default:
                        throw new NotSupportedException("Sort type '" + order.Direction + "' not supported.");
                }
            }
        }