示例#1
0
        public void ContainsShouldRetrunFalseIfCollectionEmpty()
        {
            var collection = new Applications();

            Assert.DoesNotThrow(() => collection.Contains("cokolwiek"));
            Assert.IsFalse(collection.Contains("cokolwiek"));
        }
示例#2
0
 public void AddApplication(string appPath)
 {
     if (!Applications.Contains(appPath))
     {
         Applications.Add(appPath);
         RegistrySaver.AddRegistryValue(RegistrySaver.RegCategoryAppList, appPath);
         AppLogger.Log("Application [" + appPath + "] added to list");
     }
     else
     {
         AppLogger.Log("WARNING! Application [" + appPath + "] is already in the list");
     }
 }
        public SearchDockViewModel(ObservableCollection <TabViewModel> tabs) : base(tabs)
        {
            _filter = Configuration.ApplicationFilter;

            Messenger.Default.Register <ApplicationMessage>(this, (message) =>
            {
                switch (message.Action)
                {
                case ApplicationMessage.ActionType.Remove:
                    if (Applications.Contains(message.Application))
                    {
                        Applications.Remove(message.Application);
                    }
                    break;
                }
            });
        }
        /// <summary>
        /// Exports configured data for this session, if it is an application we care about
        /// </summary>
        public void Process(ISession session)
        {
            // Validate that we have work to do for the application that generated this session
            if (!Applications.Contains(session.Summary.FullApplicationName()))
            {
                return;
            }

            var metrics         = session.MetricDefinitions.Where(md => Metrics.Contains(md.FullMetricName())).ToList();
            var metricFileCount = 0;

            foreach (var metric in metrics)
            {
                if (metric.SampleType == SampleType.Sampled)
                {
                    ExportSampledMetric(session, metric, ref metricFileCount);
                }
                else
                {
                    ExportEventMetric(session, (IEventMetricDefinition)metric, ref metricFileCount);
                }
            }
        }
示例#5
0
        public IApplication Update(Process process)
        {
            //Reliably detect the process file name:
            string strFileName        = DetectFilePath(process);
            string strFileDescription = DetectFileDescription(process);

            try
            {
                if (_previousApplicationName != strFileDescription)
                {
                    if (_applications[_previousApplicationName] != null &&
                        _applications[_previousApplicationName].Usage.FindLast(u => !u.IsClosed) != null)
                    {
                        _applications[_previousApplicationName].Usage.FindLast(u => !u.IsClosed).End();
                    }

                    _previousApplicationName = strFileDescription;

                    if (
                        !_applications.Contains(strFileDescription,
                                                strFileName))
                    {
                        try
                        {
                            using (new MemoryStream())
                            {
                                var AppIcon = Icon.ExtractAssociatedIcon(strFileName);
                                _applications.Add(
                                    new ActivityMonitor.Application.Application(strFileDescription, strFileName)
                                {
                                    Icon = AppIcon
                                });
                            }
                        }
                        catch (Exception ex)
                        {
                            //Console.WriteLine(ex.Message);
                            //todo logging
                        }
                    }

                    var usage = new ApplicationUsage {
                        DetailedName = process.MainWindowTitle
                    };
                    usage.Start();
                    _applications[strFileDescription].Usage.Add(usage);
                }

                // if resume - no usages are present
                var currentProcess = strFileDescription;
                if (_applications[_previousApplicationName] != null &&
                    _applications[_previousApplicationName].Usage.FindLast(u => !u.IsClosed) == null &&
                    _applications[currentProcess] != null &&
                    _applications[currentProcess].Usage.FindLast(u => !u.IsClosed) == null)
                {
                    var usage = new ApplicationUsage {
                        DetailedName = process.MainWindowTitle
                    };
                    usage.Start();
                    _applications[strFileDescription].Usage.Add(usage);
                }
            }
            catch (Exception ex)
            {
                //todo logging
                Console.WriteLine(ex.Message);
            }
            return(_applications[_previousApplicationName]);
        }
示例#6
0
 public void ContainsShoudReturnTrueIfApplicationAlreadyInCollection()
 {
     Assert.IsTrue(_applications.Contains(TestApplication1().Name));
 }