예제 #1
0
        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;
                                }
                            }
                        }
                    }
                }
            }
        }
예제 #2
0
 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();
     }
 }