public async Task <IActionResult> TableData([FromBody] VisualizeTableRequestDto model) { var chain = _context.Recordings.Where(x => x.SensorId == model.SensorId) .Where(x => x.Timestamp >= model.StartDate && x.Timestamp <= model.EndDate); if (model.Ordering.Count > 0) { var ordering = model.Ordering.First(); if (ordering.Column == 0) { chain = ordering.Direction == DataTablesOrdering.Ascending ? chain.OrderBy(x => x.Timestamp) : chain.OrderByDescending(x => x.Timestamp); } else { chain = ordering.Direction == DataTablesOrdering.Ascending ? chain.OrderBy(x => x.Value) : chain.OrderByDescending(x => x.Value); } } var filterCount = await chain.CountAsync(); var recordset = await chain.Skip(model.Start).Take(model.Length).ToListAsync(); return(Json(new DataTablesResponseModel { Draw = model.Draw + 1, Data = recordset, RecordsFiltered = filterCount, RecordsTotal = await _context.Recordings.CountAsync(x => x.SensorId == model.SensorId) })); }
public async Task <IActionResult> TableExport([FromBody] VisualizeTableRequestDto model) { var records = await _context.Recordings.Where(x => x.SensorId == model.SensorId) .Where(x => x.Timestamp >= model.StartDate && x.Timestamp <= model.EndDate) .Select(x => new CsvRecordDto { Timestamp = x.Timestamp, Value = x.Value }) .ToListAsync(); return(File(await CommonHelpers.SerializeCsvRecords(records), "text/csv", "export.csv")); }