Skip to content

Commit 3deb446

Browse files
Added null check for dtParameters variable (#6)
1 parent 05d7200 commit 3deb446

File tree

1 file changed

+59
-56
lines changed

1 file changed

+59
-56
lines changed

src/jQueryDatatableServerSideNetCore/Controllers/TestRegistersController.cs

Lines changed: 59 additions & 56 deletions
Original file line numberDiff line numberDiff line change
@@ -109,69 +109,72 @@ public async Task<IActionResult> ExportTable([FromQuery] string format, [FromFor
109109
dtParameters = JsonConvert.DeserializeObject<DtParameters>(dtParametersJson);
110110
}
111111

112-
var searchBy = dtParameters.Search?.Value;
112+
if (dtParameters != default)
113+
{
114+
var searchBy = dtParameters.Search?.Value;
113115

114-
// if we have an empty search then just order the results by Id ascending
115-
var orderCriteria = "Id";
116-
var orderAscendingDirection = true;
116+
// if we have an empty search then just order the results by Id ascending
117+
var orderCriteria = "Id";
118+
var orderAscendingDirection = true;
117119

118-
if (dtParameters.Order != null)
119-
{
120-
// in this example we just default sort on the 1st column
121-
orderCriteria = dtParameters.Columns[dtParameters.Order[0].Column].Data;
122-
orderAscendingDirection = dtParameters.Order[0].Dir.ToString().ToLower() == "asc";
123-
}
120+
if (dtParameters.Order != null)
121+
{
122+
// in this example we just default sort on the 1st column
123+
orderCriteria = dtParameters.Columns[dtParameters.Order[0].Column].Data;
124+
orderAscendingDirection = dtParameters.Order[0].Dir.ToString().ToLower() == "asc";
125+
}
124126

125-
var result = _context.TestRegisters.AsQueryable();
127+
var result = _context.TestRegisters.AsQueryable();
126128

127-
if (!string.IsNullOrEmpty(searchBy))
128-
{
129-
result = result.Where(r => r.Name != null && r.Name.ToUpper().Contains(searchBy.ToUpper()) ||
130-
r.FirstSurname != null && r.FirstSurname.ToUpper().Contains(searchBy.ToUpper()) ||
131-
r.SecondSurname != null && r.SecondSurname.ToUpper().Contains(searchBy.ToUpper()) ||
132-
r.Street != null && r.Street.ToUpper().Contains(searchBy.ToUpper()) ||
133-
r.Phone != null && r.Phone.ToUpper().Contains(searchBy.ToUpper()) ||
134-
r.ZipCode != null && r.ZipCode.ToUpper().Contains(searchBy.ToUpper()) ||
135-
r.Country != null && r.Country.ToUpper().Contains(searchBy.ToUpper()) ||
136-
r.Notes != null && r.Notes.ToUpper().Contains(searchBy.ToUpper()));
137-
}
129+
if (!string.IsNullOrEmpty(searchBy))
130+
{
131+
result = result.Where(r => r.Name != null && r.Name.ToUpper().Contains(searchBy.ToUpper()) ||
132+
r.FirstSurname != null && r.FirstSurname.ToUpper().Contains(searchBy.ToUpper()) ||
133+
r.SecondSurname != null && r.SecondSurname.ToUpper().Contains(searchBy.ToUpper()) ||
134+
r.Street != null && r.Street.ToUpper().Contains(searchBy.ToUpper()) ||
135+
r.Phone != null && r.Phone.ToUpper().Contains(searchBy.ToUpper()) ||
136+
r.ZipCode != null && r.ZipCode.ToUpper().Contains(searchBy.ToUpper()) ||
137+
r.Country != null && r.Country.ToUpper().Contains(searchBy.ToUpper()) ||
138+
r.Notes != null && r.Notes.ToUpper().Contains(searchBy.ToUpper()));
139+
}
138140

139-
result = orderAscendingDirection ? result.OrderByDynamic(orderCriteria, DtOrderDir.Asc) : result.OrderByDynamic(orderCriteria, DtOrderDir.Desc);
141+
result = orderAscendingDirection ? result.OrderByDynamic(orderCriteria, DtOrderDir.Asc) : result.OrderByDynamic(orderCriteria, DtOrderDir.Desc);
140142

141-
var resultList = await result.ToListAsync();
143+
var resultList = await result.ToListAsync();
142144

143-
switch (format)
144-
{
145-
case ExportFormat.Excel:
146-
return File(
147-
await _exportService.ExportToExcel(resultList),
148-
"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet",
149-
"data.xlsx");
150-
151-
case ExportFormat.Csv:
152-
return File(_exportService.ExportToCsv(resultList),
153-
"application/csv",
154-
"data.csv");
155-
156-
case ExportFormat.Html:
157-
return File(_exportService.ExportToHtml(resultList),
158-
"application/csv",
159-
"data.html");
160-
161-
case ExportFormat.Json:
162-
return File(_exportService.ExportToJson(resultList),
163-
"application/json",
164-
"data.json");
165-
166-
case ExportFormat.Xml:
167-
return File(_exportService.ExportToXml(resultList),
168-
"application/xml",
169-
"data.xml");
170-
171-
case ExportFormat.Yaml:
172-
return File(_exportService.ExportToYaml(resultList),
173-
"application/yaml",
174-
"data.yaml");
145+
switch (format)
146+
{
147+
case ExportFormat.Excel:
148+
return File(
149+
await _exportService.ExportToExcel(resultList),
150+
"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet",
151+
"data.xlsx");
152+
153+
case ExportFormat.Csv:
154+
return File(_exportService.ExportToCsv(resultList),
155+
"application/csv",
156+
"data.csv");
157+
158+
case ExportFormat.Html:
159+
return File(_exportService.ExportToHtml(resultList),
160+
"application/csv",
161+
"data.html");
162+
163+
case ExportFormat.Json:
164+
return File(_exportService.ExportToJson(resultList),
165+
"application/json",
166+
"data.json");
167+
168+
case ExportFormat.Xml:
169+
return File(_exportService.ExportToXml(resultList),
170+
"application/xml",
171+
"data.xml");
172+
173+
case ExportFormat.Yaml:
174+
return File(_exportService.ExportToYaml(resultList),
175+
"application/yaml",
176+
"data.yaml");
177+
}
175178
}
176179

177180
return null;

0 commit comments

Comments
 (0)