Exemple #1
0
 private void AddApplication(string appName)
 {
     if (!ApplicationUsage.ContainsKey(appName))
     {
         ApplicationUsage.Add(appName, new Statistics(Statistics.Stats.Activity));
     }
 }
        public ActionResult DeleteConfirmed(int id)
        {
            ApplicationUsage applicationUsage = db.ApplicationUsages.Find(id);

            db.ApplicationUsages.Remove(applicationUsage);
            db.SaveChanges();
            return(RedirectToAction("Index"));
        }
 public ActionResult Edit([Bind(Include = "ApplicationUsageID,InvocationTime,TrackedApplicationID")] ApplicationUsage applicationUsage)
 {
     if (ModelState.IsValid)
     {
         db.Entry(applicationUsage).State = EntityState.Modified;
         db.SaveChanges();
         return(RedirectToAction("Index"));
     }
     ViewBag.TrackedApplicationID = new SelectList(db.TrackedApplications, "TrackedApplicationID", "TrackedApplicationName", applicationUsage.TrackedApplicationID);
     return(View(applicationUsage));
 }
        public IHttpActionResult CreateApplicationUsage([FromBody] ApplicationUsage applicationUsage)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }
            applicationUsage.ApplicationUsageID = 0;
            db.ApplicationUsages.Add(applicationUsage);
            db.SaveChanges();

            return(CreatedAtRoute("DefaultApi", new { id = applicationUsage.ApplicationUsageID }, applicationUsage));
        }
        // GET: ApplicationUsages/Details/5
        public ActionResult Details(int?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            ApplicationUsage applicationUsage = db.ApplicationUsages.Find(id);

            if (applicationUsage == null)
            {
                return(HttpNotFound());
            }
            return(View(applicationUsage));
        }
        // GET: ApplicationUsages/Edit/5
        public ActionResult Edit(int?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            ApplicationUsage applicationUsage = db.ApplicationUsages.Find(id);

            if (applicationUsage == null)
            {
                return(HttpNotFound());
            }
            ViewBag.TrackedApplicationID = new SelectList(db.TrackedApplications, "TrackedApplicationID", "TrackedApplicationName", applicationUsage.TrackedApplicationID);
            return(View(applicationUsage));
        }
Exemple #7
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]);
        }
Exemple #8
0
 public ApplicationUsageController([FromServices] IAppLogCreator ac, [FromServices] IAppLogRetriever ar)
 {
     ac.PushLogs();
     applicationUsage = new ApplicationUsage(ar);
 }