public async Task <ActionResult> Data(LoggedDataQueryViewModel vm) { if (ModelState.IsValid) { List <LoggedData> loggedData = await devicesService.GetLoggedData(vm.DeviceName, vm.StartDate, vm.EndDate, MaxLoggedDataEntries + 1); vm.MaxEntriesExceeded = (loggedData.Count > MaxLoggedDataEntries); vm.LoggedData = Mapper.Map <IEnumerable <LoggedData>, List <LoggedDataViewModel> >(loggedData.Take(MaxLoggedDataEntries)); return(View(vm)); } return(View(vm)); }
public async Task <FileContentResult> DownloadCsv(LoggedDataQueryViewModel vm) { if (ModelState.IsValid) { List <LoggedData> loggedData = await devicesService.GetLoggedData(vm.DeviceName, vm.StartDate, vm.EndDate, MaxLoggedDataEntries + 1); string csvResult = string.Empty; foreach (LoggedData data in loggedData) { string date = data.LoggedTime.ToString(); string json = data.Data; json = string.Format("\"{0}\"", json.Replace("\"", "\"\"")); csvResult = csvResult + string.Format("{0},{1}{2}", date, json, Environment.NewLine); } return(File(new System.Text.UTF8Encoding().GetBytes(csvResult), "text/csv", string.Format("{0}_loggedData.csv", vm.DeviceName))); } return(null); }