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.");
}
}
}