private void GetSelectedRowUidumpData(TriageData tiageData, String folderPath) { try { if (!string.IsNullOrEmpty(folderPath)) { StringBuilder shooFile = new StringBuilder(Path.Combine(folderPath)); shooFile.Append("\\UiDump"); shooFile.Append(tiageData.SessionId); shooFile.Append(tiageData.ActivityExecutionId.ToString()); shooFile.Append(".txt"); StreamWriter writer = new StreamWriter(shooFile.ToString()); writer.Write(tiageData.UIDumpData); writer.Flush(); writer.Close(); MessageBox.Show("Saved:\r\n" + shooFile); } } catch (Exception ex) { log.Warn(ex); MessageBox.Show(ex.Message); } }
private void btnSessionTriage_Click(object sender, EventArgs e) { string errMsg = string.Empty; try { string sessionId = cboSessionIds.Text; if (sessionId.Length == 8) { rgvTriageData.Rows.Clear(); rgvPerformanceMarkers.Rows.Clear(); rtbErrorMessage.Text = string.Empty; pbControlPanel.Image = null; pbThumbnail.Image = null; DbAccess db = new DbAccess(GlobalSettings.Database); using (DataLogContext dlContext = new DataLogContext(db.getConStrSQL())) { var myTriageData = TriageData.GetTriageDataBySessionId(dlContext, sessionId).ToList(); if (myTriageData.Any()) { dtpStart.Value = myTriageData.First().TriageDateTime; dtpEnd.Value = myTriageData.Last().TriageDateTime; triageDataListBindingSource.DataSource = myTriageData; triageDataListBindingSource.ResetBindings(false); } else { errMsg = "TriageData does not contain data for the given session ID " + sessionId; } } pbControlPanel.Image = null; pbThumbnail.Image = null; } else { errMsg = "SessionId is not correctly formatted."; } } catch (Exception ex) { if (!string.IsNullOrEmpty(errMsg)) { log.Warn(errMsg); } else { log.Warn(ex); ShowErrorMessage(ex); } } if (!string.IsNullOrEmpty(errMsg)) { MessageBox.Show(errMsg, @"Session ID", MessageBoxButtons.OK, MessageBoxIcon.Warning); } }
private void LoadSessionIds() { DbAccess db = new DbAccess(GlobalSettings.Database); using (DataLogContext td = new DataLogContext(db.getConStrSQL())) { _sessionIds = TriageData.SessionIds(td, dtpStart.Value.ToUniversalTime(), dtpEnd.Value.ToUniversalTime()); cboSessionIds.DataSource = _sessionIds; } }
private void RetrieveTriageData(string sessionId) { DbAccess db = new DbAccess(GlobalSettings.Database); using (DataLogContext dlContext = new DataLogContext(db.getConStrSQL())) { var myTriageData = TriageData.GetTriageDataBySessionId(dlContext, sessionId).ToList(); _triageDataList = new TriageDataList(); _triageDataList.AddRange(myTriageData); BindTriageDataGrid(_triageDataList); lblCountErrors.Text = $@"Error Count={myTriageData.Count}"; } pbControlPanel.Image = null; pbThumbnail.Image = null; }
private void btnUIDump_Click(object sender, EventArgs e) { try { TriageData tiageData = (TriageData)rgvTriageData.CurrentRow.DataBoundItem; FolderBrowserDialog folderBrowserDialog = new FolderBrowserDialog(); if (tiageData.UIDumpData != null) { folderBrowserDialog.ShowDialog(); GetSelectedRowUidumpData(tiageData, folderBrowserDialog.SelectedPath); } else { MessageBox.Show("Selected Activity has no Android data for the JetAdvantageLink"); } } catch (Exception ex) { log.Warn(ex); MessageBox.Show(ex.Message + "\r\n(If a row is not seleted, this exception can be occurred.)"); } }
private void pbThumbnail_DoubleClick(object sender, EventArgs e) { try { string triageDataId = rgvTriageData.SelectedRows[0].Cells["TriageDataId"].Value.ToString(); Guid tdId = Guid.Parse(triageDataId); DbAccess db = new DbAccess(GlobalSettings.Database); using (DataLogContext dlc = new DataLogContext(db.getConStrSQL())) { byte[] picture = TriageData.GetTriageDataById(dlc, tdId).ControlPanelImage; SetImage(pbControlPanel, picture); tabControlInfo.SelectedIndex = 1; } } catch (Exception ex) { log.Error(ex); ShowErrorMessage(ex); } }
private static void Main(string[] args) { TriageDb.Init("TriageDbContext"); List <Dump> dumps = new List <Dump>(); foreach (var triagePath in Directory.EnumerateFiles(@"h:\temp\triagedata")) { Dump d = new Dump() { DisplayName = Path.GetFileNameWithoutExtension(triagePath), DumpPath = triagePath, Origin = "TestData", DumpTime = DateTime.Now }; dumps.Add(d); d.DumpId = TriageDb.AddDumpAsync(d).GetAwaiter().GetResult(); } foreach (var d in dumps) { try { Dictionary <string, string> dict = DeserializeTriageJson(d.DumpPath); var triageData = TriageData.FromDictionary(dict); TriageDb.UpdateDumpTriageInfo(d.DumpId, triageData).GetAwaiter().GetResult(); } catch (Exception e) { Console.WriteLine($"Dump {d.DisplayName} failed to update triage info."); Console.WriteLine(e); } } }
private void SetSelectedRow(GridViewRowInfo row) { TriageData td = (TriageData)rgvTriageData.CurrentRow.DataBoundItem; pbControlPanel.Image = null; if (td != null) { TriageDataInfo tdi = new TriageDataInfo(); DbAccess db = new DbAccess(GlobalSettings.Database); using (DataLogContext dlc = new DataLogContext(db.getConStrSQL())) { tdi.DeviceId = ActivityExecutionAssetUsage.GetByActivityExecutionId(dlc, td.ActivityExecutionId).AssetId; ActivityExecution ae = ActivityExecution.GetById(dlc, td.ActivityExecutionId); SessionDevice sd = SessionDevice.GetBySessionDeviceId(dlc, cboSessionIds.Text, tdi.DeviceId); tdi.ActivityType = ae.ActivityType; tdi.ActivityName = ae.ActivityName; tdi.UserName = ae.UserName; if (sd != null) { tdi.Firmware = sd.FirmwareRevision; tdi.FirmwareDatecode = sd.FirmwareDatecode; tdi.Model = sd.DeviceName; tdi.IPAddress = sd.IpAddress; tdi.Product = sd.ProductName; } var aepList = ActivityExecutionPerformance.GetByActivityExecutionId(dlc, td.ActivityExecutionId); tdi.AddPerformanceMarkers(aepList); SetPerformanceMarkers(tdi.PerformanceMarkers); lblDeviceId.Text = tdi.DeviceId; lblIPAddress.Text = tdi.IPAddress; lblModelInfo.Text = tdi.Model; lblProduct.Text = tdi.Product; lblFirmwareDatecode.Text = tdi.FirmwareDatecode; lblFirmwareRevision.Text = tdi.Firmware; lblUserId.Text = tdi.UserName; lbActivityType.Text = tdi.ActivityType; lblActivityName.Text = tdi.ActivityName; } byte[] thumbnail = (byte[])row.Cells["Thumbnail"].Value; if (row.Cells["ControlIds"].Value != null) { string regExp = @"[\n\r]+"; string[] temp = Regex.Split(row.Cells["ControlIds"].Value.ToString(), regExp); for (int ctr = 0; ctr < temp.Length; ctr++) { errMessageAndroid.Text += temp[ctr]; } } if (row.Cells["Reason"].Value != null) { rtbErrorMessage.Text = row.Cells["Reason"].Value.ToString(); } if (!string.IsNullOrEmpty(td.DeviceWarnings)) { rtbErrorMessage.Text += "\r\n\r\nDevice Warnings: " + td.DeviceWarnings; } tabControlInfo.SelectedIndex = 0; SetImage(pbThumbnail, thumbnail); pbControlPanel.Image = null; } }