public Game CheckIn(bool emergency) { lockerSettings settings = SettingsSystem.GetSettings(true); //alert the user of its death if (!emergency) { proc.WaitForExit((int)settings.checkInWait.TotalMilliseconds); } while (!proc.HasExited) { proc.Kill(); proc.WaitForExit(10000); } if (!timeLog.detectedLogError() || usingDetailedTime) { timeLog.endSession(proc.ExitTime); } else if (timeLog.detectedLogError()) { timeLog.addNewSession(proc.StartTime, proc.ExitTime); } else { //forget this session } locker.removeFile(unlock); TimeLogFactory.saveLog(timeLog); settings = SettingsSystem.GetSettings(); settings.lastTry = DateTime.Now; checkedout = false; SettingsSystem.Sync(); return(this); }