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); }
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); }
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); }
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); }