private void UploadData(object sender, RoutedEventArgs e) { List <UploadData> rdList = new List <UploadData>(); UploadData raw = new UploadData(); if (string.IsNullOrEmpty(timestamp.Text)) { timestamp.Text = DateTime.UtcNow.ToString(); } raw.Timestamp = DateTime.Parse(timestamp.Text); raw.HID = hwID.Text; if (string.IsNullOrEmpty(uploadData.Text)) { raw.Data = string.Empty; var devConfig = (from z in gatewayConfig.devices where z.HID == hwID.Text select z).FirstOrDefault(); if (devConfig == null) { AddMessage(string.Format("DeviceConfig not found for {0}", hwID.Text)); return; } for (int i = 0; i < devConfig.Registers.Count(); i++) { RegInfo ri = devConfig.Registers[i]; string val; switch (ri.DataType) { case RawDataType.Int: val = string.Format("{0}", ri.RegNum); break; default: val = string.Format("{0:0.00}", ri.RegNum / 100.0); break; } raw.Data += (i == 0) ? val : ("," + val); } uploadData.Text = raw.Data; } else { raw.Data = uploadData.Text; } rdList.Add(raw); UploadResult result = api.UploadRawData(login.SessionID, rdList); if ((AEResultCodes)result.Code == AEResultCodes.OK) { AddMessage(string.Format("*** Uploaded {0} rows", result.UploadCount)); } else { AddMessage(string.Format("*** UploadData returned {0}", result.ResultCodeString())); } Registry.CurrentUser.SetValue(RegGateway, gatewayID.Text); Registry.CurrentUser.SetValue(RegUploadData, uploadData.Text); }