private static void AddQueryGreaterThanOrEqual(QueryHandle queryHandle, string columnName, object value) { var columnIndex = queryHandle.GetColumnIndex(columnName); if (value is char) { queryHandle.IntGreaterEqual(columnIndex, (int)value); } else if (value is int) { queryHandle.IntGreaterEqual(columnIndex, (int)value); } else if (value is long) { queryHandle.LongGreaterEqual(columnIndex, (long)value); } else if (value is float) { queryHandle.FloatGreaterEqual(columnIndex, (float)value); } else if (value is double) { queryHandle.DoubleGreaterEqual(columnIndex, (double)value); } else if (value is DateTimeOffset) { queryHandle.TimestampTicksGreaterEqual(columnIndex, (DateTimeOffset)value); } else if (value is string || value is bool) { throw new Exception($"Unsupported type {value.GetType().Name}"); } else { throw new NotImplementedException(); } }
private static void AddQueryGreaterThanOrEqual(QueryHandle queryHandle, string columnName, object value) { var columnIndex = queryHandle.GetColumnIndex(columnName); switch (value) { case char charValue: queryHandle.IntGreaterEqual(columnIndex, charValue); break; case byte byteValue: queryHandle.IntGreaterEqual(columnIndex, byteValue); break; case short shortValue: queryHandle.IntGreaterEqual(columnIndex, shortValue); break; case int intValue: queryHandle.IntGreaterEqual(columnIndex, intValue); break; case long longValue: queryHandle.LongGreaterEqual(columnIndex, longValue); break; case float floatValue: queryHandle.FloatGreaterEqual(columnIndex, floatValue); break; case double doubleValue: queryHandle.DoubleGreaterEqual(columnIndex, doubleValue); break; case DateTimeOffset date: queryHandle.TimestampTicksGreaterEqual(columnIndex, date); break; case string _: case bool _: throw new Exception($"Unsupported type {value.GetType().Name}"); case RealmInteger <byte> byteValue: queryHandle.IntGreaterEqual(columnIndex, byteValue); break; case RealmInteger <short> shortValue: queryHandle.IntGreaterEqual(columnIndex, shortValue); break; case RealmInteger <int> intValue: queryHandle.IntGreaterEqual(columnIndex, intValue); break; case RealmInteger <long> longValue: queryHandle.LongGreaterEqual(columnIndex, longValue); break; default: throw new NotImplementedException(); } }