private void UpdateApplicationsList(ApplicationLog applicationLog, DataRowAction action) { if (applicationLog == null) { return; } string activeTime = null; string caption = null; if (action == DataRowAction.Add || action == DataRowAction.Change) { TimeSpan active = new TimeSpan(0, 0, applicationLog.ActiveTime); activeTime = ViewHelper.TimeSpanToTimeString(active); caption = applicationLog.Caption; } foreach (TreeListViewItem logItem in this.taskList.Items) { if (((Log)logItem.Tag).Id == applicationLog.TaskLogId) { if (action == DataRowAction.Add) { TreeListViewItem lvi = new TreeListViewItem(caption, new string[] { activeTime, "", applicationLog.Id.ToString(CultureInfo.InvariantCulture) }); lvi.Tag = applicationLog; lvi.ImageIndex = IconsManager.GetIconFromFile(applicationLog.ApplicationFullPath); logItem.Items.Add(lvi); } else { for (int i = 0; i < logItem.Items.Count; i++) { TreeListViewItem appItem = logItem.Items[i]; if (((ApplicationLog)appItem.Tag).Id == applicationLog.Id) { if (action == DataRowAction.Change) { appItem.Tag = applicationLog; appItem.SubItems[TaskDescriptionHeader.Index].Text = caption; appItem.SubItems[DurationTaskHeader.Index].Text = activeTime; return; } if (action == DataRowAction.Delete) { logItem.Items.RemoveAt(i); return; } } } } } } }
private void GetTaskDetails(TaskStatisticsResult result) { try { this.applicationsList.BeginUpdate(); this.applicationsList.Items.Clear(); int appActiveTime = 0; foreach (ApplicationSummary applicationsSummaryRow in result.AppsSummaryList) { appActiveTime += (int)applicationsSummaryRow.TotalActiveTime; } foreach (ApplicationSummary applicationsSummaryRow in result.AppsSummaryList) { TimeSpan active = new TimeSpan(0, 0, (int)applicationsSummaryRow.TotalActiveTime); string activeTime = ViewHelper.TimeSpanToTimeString(active); double percent = 0; if (appActiveTime > 0) { percent = applicationsSummaryRow.TotalActiveTime / appActiveTime; } TreeListViewItem lvi = new TreeListViewItem(applicationsSummaryRow.Name, new string[] { activeTime, percent.ToString("0.0%", CultureInfo.InvariantCulture), applicationsSummaryRow.TaskId.ToString(CultureInfo.InvariantCulture) }); lvi.ImageIndex = IconsManager.GetIconFromFile(applicationsSummaryRow.ApplicationFullPath); this.applicationsList.Items.Add(lvi); } AppsActiveTimeValue.Text = ViewHelper.TimeSpanToTimeString(new TimeSpan(0, 0, appActiveTime)); } finally { this.applicationsList.EndUpdate(); SetReadyState(); } }