private void HandleTimerTick(object sender, EventArgs e) { dataFile.load(); string username = System.Environment.UserName.ToLower(); DateTime today = DateTime.Now.Date; var tickRecord = dataFile.findUserRecord(username, today); var configUser = configuration.Users[username] as TickUserElement; if (configUser != null && tickRecord != null) { int dayOfWeek = (int)today.DayOfWeek; if (dayOfWeek == 0) { dayOfWeek = 7; } allowedMinutes = configUser[dayOfWeek]; if (configUser.Exceptions != null && configUser.Exceptions[today] != null) { allowedMinutes = configUser.Exceptions[today].Minutes; } passedMinutes = tickRecord.Minutes; // Warnings int remainingMinutes = allowedMinutes.Value - passedMinutes.Value; if (WARNING_MINUTES.Contains(remainingMinutes)) { MessageBox.Show(String.Format("Es sind nur {0} Minuten geblieben!", remainingMinutes), "Zeitbegrenzung", MessageBoxButtons.OK, MessageBoxIcon.Warning); } else if (remainingMinutes == 1) { MessageBox.Show(String.Format("Dir bleibt nur eine Minute!", remainingMinutes), "Zeitbegrenzung", MessageBoxButtons.OK, MessageBoxIcon.Error); } } else { passedMinutes = null; allowedMinutes = null; } }
public void tick(object stateObject) { dataFile.load(); List <string> loggedInUsers = GetLoggedInUsers(); DateTime today = DateTime.Now.Date; TickConfiguration configuration = TickConfiguration.Instance; foreach (var user in loggedInUsers) { var configUser = configuration.Users[user] as TickUserElement; if (configUser != null) { int dayOfWeek = (int)today.DayOfWeek; if (dayOfWeek == 0) { dayOfWeek = 7; } int maxMinutes = configUser[dayOfWeek]; if (configUser.Exceptions != null) { if (configUser.Exceptions[today] != null) { maxMinutes = configUser.Exceptions[today].Minutes; } } var userRecord = dataFile.findUserRecord(user, today); if (userRecord == null) { userRecord = dataFile.createTickRecord(user, today); } userRecord.Minutes += interval; Console.WriteLine(String.Format("Benutzer {0}: {1} Minuten von {2} sind vorbei", user, userRecord.Minutes, maxMinutes)); if (userRecord.Minutes > maxMinutes) { runShutdownCommand(); } } } dataFile.save(); }