Skip to content

Commit f41ad82

Browse files
committed
fix: isempty and null ayrıldı
1 parent a53b758 commit f41ad82

File tree

4 files changed

+31
-27
lines changed

4 files changed

+31
-27
lines changed

src/QueryFilter.Test/QueryFilterModel.CollectionFormatterTest.cs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -112,7 +112,7 @@ public void MultipleOperator_Test_Success()
112112

113113
var result = new PostgreSqlFormatter().Format(queryFilterModel);
114114

115-
Assert.IsTrue(result.Trim().Equals("SELECT * FROM \"\" WHERE ( \"Name\" IS NULL OR Name and \"Age\" IN (93.0) ) or ( \"Name\" ='Nancy' and \"Age\" IN (35.0) ) OFFSET 0 ROWS FETCH NEXT 10 ROWS ONLY".Trim()));
115+
Assert.IsTrue(result.Trim().Equals(" SELECT * FROM \"\" WHERE ( \"Name\" IS NULL and \"Age\" IN (93.0) ) or ( \"Name\" ='Nancy' and \"Age\" IN (35.0) ) OFFSET 0 ROWS FETCH NEXT 10 ROWS ONLY ".Trim()));
116116
Assert.IsTrue(result.Contains("(35.0)"));
117117
Assert.IsTrue(result.Contains("Nancy"));
118118
}
@@ -141,7 +141,7 @@ public void MultipleOperator_Test_Modified_Model_Success()
141141

142142
var result = new PostgreSqlFormatter().Format(queryFilterModel);
143143

144-
Assert.AreEqual(result.Trim(), "SELECT * FROM \"\" WHERE ( \"Name\" IS NULL OR Name and \"Age\" IN (93.0) ) or ( \"Name\" ='Nancy' and \"Age\" IN (35.0) ) AND \"Name\" ='Selcuk' OFFSET 0 ROWS FETCH NEXT 10 ROWS ONLY".Trim());
144+
Assert.AreEqual(result.Trim(), "SELECT * FROM \"\" WHERE ( \"Name\" IS NULL and \"Age\" IN (93.0) ) or ( \"Name\" ='Nancy' and \"Age\" IN (35.0) ) AND \"Name\" ='Selcuk' OFFSET 0 ROWS FETCH NEXT 10 ROWS ONLY".Trim());
145145
}
146146

147147
[TestCase]
@@ -151,7 +151,7 @@ public void NotEqual_Empty_Test_Modified_Model_Success()
151151

152152
var result = new PostgreSqlFormatter().Format(queryFilterModel);
153153

154-
Assert.AreEqual(result.Trim(), "SELECT * FROM \"\" WHERE \"Name\" IS NULL OR Name = '' OFFSET 0 ROWS FETCH NEXT 10 ROWS ONLY".Trim());
154+
Assert.AreEqual(result.Trim(), "SELECT * FROM \"\" WHERE \"Name\" = '' OFFSET 0 ROWS FETCH NEXT 10 ROWS ONLY".Trim());
155155
}
156156
[TestCase]
157157
public void StringMember_Filtered_Contains_Success()

src/QueryFilter.Test/QueryFilterModel.CollectionTest.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -81,7 +81,7 @@ public void NumberMember_Filtered_Empty_Success(IEnumerable<StudentModel> studen
8181
[TestCaseSource("_studentLists")]
8282
public void NumberMember_Filtered_Null_Success(IEnumerable<StudentModel> studentModels)
8383
{
84-
var queryFilterModel = QueryFilterModel.Parse("$filter=NullValue~eq~''");
84+
var queryFilterModel = QueryFilterModel.Parse("$filter=NullValue~eq~null");
8585
var result = studentModels.QueryFilter(queryFilterModel);
8686
Assert.AreEqual(result.TotalCount, 1);
8787
}

src/QueryFilter/Descriptor/Filtering/Parsing/FilterLexer.cs

Lines changed: 7 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -44,14 +44,13 @@ public IList<FilterToken> Tokenize()
4444
}
4545
else if (TryParseString(out result))
4646
{
47-
if (!string.IsNullOrEmpty(result))
48-
{
49-
tokens.Add(String(result));
50-
}
51-
else
52-
{
53-
tokens.Add(NullValue(result));
54-
}
47+
48+
tokens.Add(String(result));
49+
//}
50+
//else
51+
//{
52+
// tokens.Add(NullValue(result));
53+
//}
5554
}
5655
else if (TryParseCharacter(out result, '('))
5756
{

src/QueryFilter/Formatter/PostgreSQLFormatter.cs

Lines changed: 20 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -325,33 +325,38 @@ private void VisitBinary(FilterDescriptor filter)
325325
{
326326
if (filter.Operator == FilterOperator.IsEqualTo)
327327
{
328-
Write("IS NULL OR ");
329-
Write(filter.Member);
330-
Write(" = '' ");
331-
328+
Write("IS NULL ");
332329
}
333330
else if (filter.Operator == FilterOperator.IsNotEqualTo)
334331
{
335332
Write("IS NOT NULL");
336333
}
337334
}
338-
else
335+
else if (string.IsNullOrEmpty(filter.Value.ToString()))
339336
{
340-
if (filter.Operator == FilterOperator.Contains ||
341-
filter.Operator == FilterOperator.StartsWith ||
342-
filter.Operator == FilterOperator.NotStartsWith ||
343-
filter.Operator == FilterOperator.EndsWith ||
344-
filter.Operator == FilterOperator.NotEndsWith)
337+
if (filter.Operator == FilterOperator.IsEqualTo)
345338
{
346-
string operatorFormat = GetOperator(filter.Operator);
347-
Write(string.Format(operatorFormat, filter.Value));
339+
Write(" = ''");
348340
}
349-
else
341+
else if (filter.Operator == FilterOperator.IsNotEqualTo)
350342
{
351-
Write(GetOperator(filter.Operator));
352-
WriteValue(filter.Value);
343+
Write("!= ''");
353344
}
354345
}
346+
else if (filter.Operator == FilterOperator.Contains ||
347+
filter.Operator == FilterOperator.StartsWith ||
348+
filter.Operator == FilterOperator.NotStartsWith ||
349+
filter.Operator == FilterOperator.EndsWith ||
350+
filter.Operator == FilterOperator.NotEndsWith)
351+
{
352+
var operatorFormat = GetOperator(filter.Operator);
353+
Write(string.Format(operatorFormat, filter.Value));
354+
}
355+
else
356+
{
357+
Write(GetOperator(filter.Operator));
358+
WriteValue(filter.Value);
359+
}
355360
}
356361
}
357362
}

0 commit comments

Comments
 (0)