internal static string GenerateColumnNamesMappingForSortByColumns(DType sourceType) { Contracts.Assert(sourceType.IsTable); var allColumns = sourceType.GetNames(DPath.Root); string separator = string.Empty; var primitiveColumnsAndComparatorIds = new StringBuilder(); primitiveColumnsAndComparatorIds.Append("{"); foreach (var column in allColumns) { if (column.Type.IsPrimitive && !column.Type.IsOptionSet) { primitiveColumnsAndComparatorIds.AppendFormat("{0}\"{1}\":{2}", separator, CharacterUtils.EscapeString(column.Name), GetSortComparatorIdForType(column.Type)); separator = ","; } } primitiveColumnsAndComparatorIds.Append("}"); return(primitiveColumnsAndComparatorIds.ToString()); }