Example #1
0
        private void SaveCreateProcess(ManagementBaseObject mbo)
        {
            var appMon = new EntityAppMonitor();

            try
            {
                int sessionId;
                if (!int.TryParse(mbo["SessionId"].ToString(), out sessionId))
                {
                    return;
                }

                int processId;
                if (!int.TryParse(mbo["ProcessId"].ToString(), out processId))
                {
                    return;
                }


                appMon.Name = mbo["Name"].ToString();
                appMon.Path = mbo["ExecutablePath"].ToString();

                var path = appMon.Path.Substring(2).ToLower();
                if (path.StartsWith(@"\users\"))
                {
                    appMon.Path = @"%userprofile%\" + String.Join("\\", path.Split('\\').Skip(3));
                }
                appMon.StartDateTime = DateTime.UtcNow.ToString(CultureInfo.InvariantCulture);
                appMon.Pid           = processId;
                appMon.UserName      = ServiceUserLogins.GetUserNameFromSessionId(sessionId, true);
                if (appMon.UserName == "SYSTEM")
                {
                    return;
                }
            }
            catch
            {
                //ignored
                return;
            }


            new ServiceAppMonitor().AddAppEvent(appMon);
        }
Example #2
0
        public DtoActionResult AddAppEvent(EntityAppMonitor appMonitor)
        {
            if (string.IsNullOrEmpty(appMonitor.UserName) || string.IsNullOrEmpty(appMonitor.Name) || string.IsNullOrEmpty(appMonitor.Path) || string.IsNullOrEmpty(appMonitor.StartDateTime))
            {
                return new DtoActionResult()
                       {
                           Success = true
                       }
            }
            ;                                              //ignored

            var actionResult = new DtoActionResult();

            _uow.AppMonitorRepository.Insert(appMonitor);
            _uow.Save();
            actionResult.Success = true;
            actionResult.Id      = appMonitor.Id;
            return(actionResult);
        }
Example #3
0
        public DtoActionResult CloseAppEvent(EntityAppMonitor appMonitor)
        {
            var closingApp = _uow.AppMonitorRepository.GetFirstOrDefault(x => x.Pid.Equals(appMonitor.Pid) && x.Name.Equals(appMonitor.Name) && x.UserName.Equals(appMonitor.UserName));

            if (closingApp == null)
            {
                return new DtoActionResult()
                       {
                           Success = true
                       }
            }
            ;
            closingApp.EndDateTime = appMonitor.EndDateTime;

            var actionResult = new DtoActionResult();

            _uow.AppMonitorRepository.Update(closingApp, closingApp.Id);
            _uow.Save();
            actionResult.Success = true;
            actionResult.Id      = appMonitor.Id;
            return(actionResult);
        }
Example #4
0
        private void SaveDeleteProcess(ManagementBaseObject mbo)
        {
            var appMon = new EntityAppMonitor();

            try
            {
                int sessionId;
                if (!int.TryParse(mbo["SessionId"].ToString(), out sessionId))
                {
                    return;
                }

                int processId;
                if (!int.TryParse(mbo["ProcessId"].ToString(), out processId))
                {
                    return;
                }

                appMon.Name        = mbo["Name"].ToString();
                appMon.Path        = mbo["ExecutablePath"].ToString();
                appMon.EndDateTime = DateTime.UtcNow.ToString(CultureInfo.InvariantCulture);
                appMon.Pid         = processId;
                appMon.UserName    = ServiceUserLogins.GetUserNameFromSessionId(sessionId, true);
                if (appMon.UserName == "SYSTEM")
                {
                    return;
                }
            }
            catch
            {
                //ignored
                return;
            }

            new ServiceAppMonitor().CloseAppEvent(appMon);
        }