Skip to content

Commit 5e06835

Browse files
committed
ADded datetime fix
1 parent 4f1de8e commit 5e06835

File tree

1 file changed

+38
-5
lines changed

1 file changed

+38
-5
lines changed

Mvc.JQuery.Datatables.Core/Processing/TypeFilters.cs

Lines changed: 38 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -101,12 +101,12 @@ private static object ChangeType(DataTablesPropertyInfo propertyInfo, string que
101101
public static string DateTimeOffsetFilter(string query, string columnname, DataTablesPropertyInfo propertyInfo, List<object> parametersForLinqQuery)
102102
{
103103
if (query == "~") return string.Empty;
104+
var filterString = null as string;
105+
104106
if (query.Contains("~"))
105107
{
106108
var parts = query.Split('~');
107109

108-
var filterString = null as string;
109-
110110
DateTimeOffset start, end;
111111
if (DateTimeOffset.TryParse(parts[0] ?? "", out start))
112112
{
@@ -124,18 +124,35 @@ public static string DateTimeOffsetFilter(string query, string columnname, DataT
124124
}
125125
else
126126
{
127-
return string.Format("{1}.ToLocalTime().ToString(\"g\").{0}", FilterMethod(query, parametersForLinqQuery, propertyInfo.Type), columnname);
127+
DateTimeOffset dateTime;
128+
if (DateTimeOffset.TryParse(query, out dateTime))
129+
{
130+
if (dateTime.Date == dateTime)
131+
{
132+
133+
filterString = string.Format("{1}.Date == @" + parametersForLinqQuery.Count, columnname);
134+
parametersForLinqQuery.Add(dateTime);
135+
136+
}
137+
else
138+
{
139+
filterString = string.Format("{1} == @" + parametersForLinqQuery.Count, columnname);
140+
parametersForLinqQuery.Add(dateTime);
141+
}
142+
}
143+
return filterString;
128144
}
129145
}
130146

131147
public static string DateTimeFilter(string query, string columnname, DataTablesPropertyInfo propertyInfo, List<object> parametersForLinqQuery)
132148
{
133149
if (query == "~") return string.Empty;
150+
var filterString = null as string;
151+
134152
if (query.Contains("~"))
135153
{
136154
var parts = query.Split('~');
137155

138-
var filterString = null as string;
139156

140157
DateTime start, end;
141158
if (DateTime.TryParse(parts[0] ?? "", out start))
@@ -154,7 +171,23 @@ public static string DateTimeFilter(string query, string columnname, DataTablesP
154171
}
155172
else
156173
{
157-
return string.Format("{1}.ToLocalTime().ToString(\"g\").{0}", FilterMethod(query, parametersForLinqQuery, propertyInfo.Type), columnname);
174+
DateTimeOffset dateTime;
175+
if (DateTimeOffset.TryParse(query, out dateTime))
176+
{
177+
if (dateTime.Date == dateTime)
178+
{
179+
180+
filterString = string.Format("{1}.Date == @" + parametersForLinqQuery.Count, columnname);
181+
parametersForLinqQuery.Add(dateTime);
182+
183+
}
184+
else
185+
{
186+
filterString = string.Format("{1} == @" + parametersForLinqQuery.Count, columnname);
187+
parametersForLinqQuery.Add(dateTime);
188+
}
189+
}
190+
return filterString;
158191
}
159192
}
160193

0 commit comments

Comments
 (0)