Ejemplo n.º 1
0
        private void RefreshActivityChart()
        {
            var seriesColection = new SeriesCollection();

            var instances = ApplicationLogList.SelectMany(x => x.Members).GroupBy(x => x.Type).Select(g => new {
                Type  = g.Key,
                Total = g.Sum(x => x.FocusTime.Ticks)
            });

            foreach (var instance in instances)
            {
                var series = new PieSeries
                {
                    Title  = instance.Type.ToString(),
                    Values = new ChartValues <ObservableValue> {
                        new ObservableValue(instance.Total)
                    },
                    DataLabels = true,
                    LabelPoint = a => TimeSpan.FromTicks((long)a.Y).ToString()
                };

                seriesColection.Add(series);
            }
            ActivityChart.Series = seriesColection;
        }
Ejemplo n.º 2
0
        private void SetFocusedElementInfo(ApplicationInstance focused)
        {
            var app = ApplicationLogList.First(x => x.Members.Any(y => y.Title == focused.Title));

            var item = app.Members.First(y => y.Title == focused.Title);

            item.FocusTime = item.FocusTime + TimeSpan.FromSeconds(1);

            app.FocusTime = new TimeSpan(app.Members.Sum(x => x.FocusTime.Ticks));
        }
Ejemplo n.º 3
0
        private void DeleteApplicationLog_Click(object sender, RoutedEventArgs e)
        {
            if (sender is MenuItem mnu)
            {
                var sp = ((ContextMenu)mnu.Parent).PlacementTarget as StackPanel;

                var log = (ApplicationLog)sp.DataContext;

                ApplicationLogList.Remove(log);
            }
        }
Ejemplo n.º 4
0
        void timer_Tick(object sender, EventArgs e)
        {
            var instances = GetApplicationInstances();

            listBox1.ItemsSource = instances.Select(x => x.Title);

            try
            {
                SetFocusedElementInfo(instances[0]);
            }
            catch (InvalidOperationException exception)
            {
                Console.WriteLine(exception);
            }
            catch (ArgumentOutOfRangeException exception)
            {
                Console.WriteLine(exception);
            }

            var filteredInstances = instances.Where(x => !FilterUnwantedApp(x));

            foreach (var instance in filteredInstances)
            {
                if (ApplicationLogList.Any(x => x.ProcessName == instance.ProcessName))
                {
                    var log = ApplicationLogList.First(x => x.ProcessName == instance.ProcessName);

                    if (log.Members.Any(x => x.Title == instance.Title))
                    {
                        var item = log.Members.First(x => x.Title == instance.Title);
                        item.RunningTime = item.RunningTime + TimeSpan.FromSeconds(1);
                        log.RunningTime  = new TimeSpan(log.Members.Sum(x => x.RunningTime.Ticks));
                    }
                    else
                    {
                        instance.Type = log.Type;
                        log.Members.Add(instance);
                    }
                }
                else
                {
                    var log = new ApplicationLog(instance.ProcessName);
                    log.Members.Add(instance);
                    ApplicationLogList.Add(log);
                }
            }

            ApplicationLogList = new ObservableCollection <ApplicationLog>(ApplicationLogList.OrderByDescending(x => x.FocusTime).ToList());

            lblRunningCount.Text = String.Format("Running apps: {0}", instances.Count);

            lblLogsCount.Text = String.Format("Logged apps: {0}", ApplicationLogList.Count);
        }
Ejemplo n.º 5
0
        private void DeleteApplicationInstance_Click(object sender, RoutedEventArgs e)
        {
            if (sender is MenuItem mnu)
            {
                var sp = ((ContextMenu)mnu.Parent).PlacementTarget as StackPanel;

                var instance = (ApplicationInstance)sp.DataContext;

                var app = ApplicationLogList.First(x => x.Members.Contains(instance));

                app.Members.Remove(instance);

                app.RunningTime = new TimeSpan(app.Members.Sum(x => x.RunningTime.Ticks));
            }
        }