Exemplo n.º 1
0
        public TableSorter(IFieldProperties field, ResultOptionMode mode)
        {
            this.field = field ?? throw new ArgumentNullException(nameof(field));
            switch (field.DataType)
            {
            default:
            case DataType.Binary: throw new NotSupportedException();

            case DataType.Bool:
                comparer = Comparer <bool> .Default;
                break;

            case DataType.Int8:
                comparer = Comparer <sbyte> .Default;
                break;

            case DataType.Int16:
                comparer = Comparer <short> .Default;
                break;

            case DataType.Int32:
                comparer = Comparer <int> .Default;
                break;

            case DataType.Int64:
                comparer = Comparer <long> .Default;
                break;

            case DataType.UInt8:
                comparer = Comparer <byte> .Default;
                break;

            case DataType.UInt16:
                comparer = Comparer <ushort> .Default;
                break;

            case DataType.UInt32:
                comparer = Comparer <uint> .Default;
                break;

            case DataType.UInt64:
                comparer = Comparer <ulong> .Default;
                break;

            case DataType.Char:
                comparer = Comparer <char> .Default;
                break;

            case DataType.DateTime:
                comparer = Comparer <DateTime> .Default;
                break;

            case DataType.Decimal:
                comparer = Comparer <decimal> .Default;
                break;

            case DataType.Double:
                comparer = Comparer <double> .Default;
                break;

            case DataType.Enum:
                comparer = Comparer.Default;
                break;

            case DataType.Single:
                comparer = Comparer <float> .Default;
                break;

            case DataType.String:
                comparer = Comparer <string> .Default;
                break;

            case DataType.TimeSpan:
                comparer = Comparer <TimeSpan> .Default;
                break;

            case DataType.User:
                comparer = Comparer <string> .Default;
                break;
            }

            switch (mode)
            {
            case ResultOptionMode.SortAsc:
                descending = false;
                break;

            case ResultOptionMode.SortDesc:
                descending = true;
                break;

            default: throw new ArgumentOutOfRangeException(nameof(mode));
            }
        }
Exemplo n.º 2
0
 /// <inheritdoc />
 public override string EscapeFieldName(IFieldProperties field) => "\"" + field.NameAtDatabase + "\"";
Exemplo n.º 3
0
 /// <inheritdoc />
 public virtual IFieldProperties GetDatabaseFieldProperties(IFieldProperties field) => field;