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);
        }