public string GetSqlCompare(Filter.ECompare compare) { switch (compare) { case Filter.ECompare.IsEqual: return("="); case Filter.ECompare.GreaterThan: return(">"); case Filter.ECompare.GreaterThanEqual: return(">="); case Filter.ECompare.LessThan: return("<"); case Filter.ECompare.LessThanEqual: return("<="); case Filter.ECompare.NotEqual: return("!="); case Filter.ECompare.IsIn: return("IN"); case Filter.ECompare.IsNull: return("is null"); case Filter.ECompare.IsNotNull: return("is not null"); default: return(""); } }
public FilterPair(TableColumn column1, object filterValue, Filter.ECompare compare = Filter.ECompare.IsEqual) { Column1 = column1; Column2 = null; FilterValue = filterValue; Compare = compare; }
public FilterPair(TableColumn column1, TableColumn column2, Filter.ECompare compare = Filter.ECompare.IsEqual) { Column1 = column1; Column2 = column2; FilterValue = null; Compare = compare; }
public string ConvertOperator(Filter.ECompare Operator) { switch (Operator) { case Filter.ECompare.IsEqual: return("eq"); case Filter.ECompare.GreaterThan: return("gt"); case Filter.ECompare.GreaterThanEqual: return("ge"); case Filter.ECompare.LessThan: return("lt"); case Filter.ECompare.LessThanEqual: return("le"); case Filter.ECompare.NotEqual: return("ne"); default: throw new Exception("ConvertOperator failed"); } }
private string GenerateFilterCondition(string column, Filter.ECompare filterOperator, ETypeCode compareDataType, object value) { string filterString; switch (compareDataType) { case ETypeCode.String: case ETypeCode.Text: case ETypeCode.Json: case ETypeCode.Xml: case ETypeCode.Guid: case ETypeCode.Unknown: filterString = TableQuery.GenerateFilterCondition(column, ConvertOperator(filterOperator), (string)value); break; case ETypeCode.Boolean: filterString = TableQuery.GenerateFilterConditionForBool(column, ConvertOperator(filterOperator), (bool)value); break; case ETypeCode.Int16: case ETypeCode.Int32: case ETypeCode.UInt16: case ETypeCode.UInt32: filterString = TableQuery.GenerateFilterConditionForInt(column, ConvertOperator(filterOperator), (int)value); break; case ETypeCode.UInt64: case ETypeCode.Int64: filterString = TableQuery.GenerateFilterConditionForLong(column, ConvertOperator(filterOperator), (long)value); break; case ETypeCode.DateTime: filterString = TableQuery.GenerateFilterConditionForDate(column, ConvertOperator(filterOperator), (DateTime)value); break; case ETypeCode.Time: filterString = TableQuery.GenerateFilterCondition(column, ConvertOperator(filterOperator), value.ToString()); break; case ETypeCode.Double: case ETypeCode.Decimal: filterString = TableQuery.GenerateFilterConditionForDouble(column, ConvertOperator(filterOperator), (double)value); break; default: throw new Exception("The data type: " + compareDataType.ToString() + " is not supported by Azure table storage."); } return(filterString); }
public async Task FilterPairs(string columnName, DataType.ETypeCode dataType, object filterValue, Filter.ECompare filterCompare, int expctedRows) { var table = Helpers.CreateSortedTestData(); var joinPairs = new List <FilterPair> { new FilterPair(new TableColumn(columnName, dataType), filterValue, filterCompare) }; // set a junk filter that filters var transformFilter = new TransformFilter(table, null, joinPairs); await transformFilter.Open(0, null, CancellationToken.None); Assert.Equal(5, transformFilter.FieldCount); var count = 0; while (await transformFilter.ReadAsync()) { count = count + 1; } Assert.Equal(expctedRows, count); }