Skip to content

Commit 9b97852

Browse files
committed
always operate with utc dates
1 parent 37e2e45 commit 9b97852

File tree

2 files changed

+14
-5
lines changed

2 files changed

+14
-5
lines changed

JSONAPI.Tests/ActionFilters/DefaultFilteringTransformerTests.cs

+11-5
Original file line numberDiff line numberDiff line change
@@ -156,18 +156,18 @@ public void SetupFixtures()
156156
new Dummy
157157
{
158158
Id = "122",
159-
NullableDateTimeField = new DateTime(1961, 5, 31, 18, 58, 0)
159+
NullableDateTimeField = new DateTime(1961, 5, 31, 18, 58, 0, DateTimeKind.Utc)
160160
},
161161
new Dummy
162162
{
163163
Id = "123",
164-
NullableDateTimeField = new DateTime(1961, 5, 31, 19, 01, 0)
164+
NullableDateTimeField = new DateTime(1961, 5, 31, 19, 01, 0, DateTimeKind.Utc)
165165
},
166166

167167
new Dummy
168168
{
169169
Id = "124",
170-
NullableDateTimeField = new DateTime(1962, 5, 31, 19, 01, 0)
170+
NullableDateTimeField = new DateTime(1962, 5, 31, 19, 01, 0, DateTimeKind.Utc)
171171
},
172172

173173
#endregion
@@ -870,15 +870,21 @@ public void Filters_by_multiple_matching_nullable_datetime_property_month()
870870
[TestMethod]
871871
public void Filters_by_multiple_matching_nullable_datetime_property_hour()
872872
{
873-
var returnedArray = GetArray("http://api.example.com/dummies?filter[nullable-date-time-field]=1961-05-31 19");
873+
var dt = new DateTime(1961,05,31,19,00,00, DateTimeKind.Utc);
874+
var localdt = dt.ToLocalTime();
875+
876+
var returnedArray = GetArray("http://api.example.com/dummies?filter[nullable-date-time-field]=1961-05-31 " + string.Format("{0,2:D2}", localdt.Hour));
874877
returnedArray.Length.Should().Be(1);
875878
returnedArray[0].Id.Should().Be("123");
876879
}
877880

878881
[TestMethod]
879882
public void Filters_by_multiple_matching_nullable_datetime_property_hour_minute()
880883
{
881-
var returnedArray = GetArray("http://api.example.com/dummies?filter[nullable-date-time-field]=1961-05-31 19:01");
884+
var dt = new DateTime(1961, 05, 31, 19, 00, 00, DateTimeKind.Utc);
885+
var localdt = dt.ToLocalTime();
886+
887+
var returnedArray = GetArray("http://api.example.com/dummies?filter[nullable-date-time-field]=1961-05-31 " + string.Format("{0,2:D2}", localdt.Hour) + ":01");
882888
returnedArray.Length.Should().Be(1);
883889
returnedArray[0].Id.Should().Be("123");
884890
}

JSONAPI/QueryableTransformers/DefaultFilteringTransformer.cs

+3
Original file line numberDiff line numberDiff line change
@@ -392,6 +392,9 @@ private Expression GetDateReangeExpression(string[] parts, PropertyInfo prop, Ty
392392
break;
393393
}
394394
upper = upper.AddTicks(-1);
395+
value = value.ToUniversalTime();
396+
upper = upper.ToUniversalTime();
397+
395398
var methodInfo = GetPropertyExpressionBetweenMethod.MakeGenericMethod(propertyType);
396399
Expression innerExpr = (Expression)methodInfo.Invoke(null, new object[] {value, upper, prop, param});
397400
if (expr == null)

0 commit comments

Comments
 (0)