Esempio n. 1
0
        void WorkerThreadFunc()
        {
            try
            {
                /*AlarmsFile file = new AlarmsFile();
                 * file.FileName = (string)ParentalControlsRegistry.GetValue("AlarmFile");
                 * file.Add(new Alarm("Std", new Time(16, 15), DayOfWeek.Sunday, true));
                 * file.Save();*/
                while (!_shutdownEvent.WaitOne(0))
                {
                    decimal uptime = GetUptime();

                    //alle 5 Minuten (1/60*5*100 = 83)
                    if (uptime > 0 && Convert.ToInt32(uptime * 100) % 83 == 0)
                    {
                        Utils.log.Debug("Restzeit Heute:           " + Utils.RestZeit(Utils.Span.Day, uptime));
                        Utils.log.Debug("Restzeit Woche:           " + Utils.RestZeit(Utils.Span.Week, uptime));
                        if (!Utils.IsWeekDay())
                        {
                            Utils.log.Debug("Restzeit Wochenende:      " + Utils.RestZeit(Utils.Span.WeekEnd, uptime));
                        }
                    }
                    string data = "";
                    callback.ExchangeData(data);

                    Utils.log.Debug("Aktives Fenster: " + m_ActiveWndTitle);

                    if (!Utils.BeforeSchoolDay() &&
                        DateTime.Now >= DateTime.Parse(DateTime.Now.ToString("dd.MM.yyyy ") + Properties.Settings.Default.FeierabendWochenEnde))
                    {
                        shutdown("After " + Properties.Settings.Default.FeierabendWochenEnde);
                        return;
                    }
                    else if (Utils.BeforeSchoolDay() &&
                             DateTime.Now >= DateTime.Parse(DateTime.Now.ToString("dd.MM.yyyy ") + Properties.Settings.Default.FeierabendWochenTag))
                    {
                        shutdown("After " + Properties.Settings.Default.FeierabendWochenTag);
                        return;
                    }

                    if (Utils.IsWeekDay() &&
                        Convert.ToDecimal(ParentalControlsRegistry.GetValue("DaySum")) + uptime >
                        Convert.ToDecimal(ParentalControlsRegistry.GetValue("DayQuota")))
                    {
                        shutdown("DaySum > " + ParentalControlsRegistry.GetValue("DayQuota"));
                        return;
                    }
                    else if (!Utils.IsWeekDay() &&
                             Convert.ToDecimal(ParentalControlsRegistry.GetValue("WeekEndQuota", "-1")) > 0 &&
                             Convert.ToDecimal(ParentalControlsRegistry.GetValue("WeekEndSum")) + uptime >
                             Convert.ToDecimal(ParentalControlsRegistry.GetValue("WeekEndQuota")))
                    {
                        shutdown("WeekEndSum > " + ParentalControlsRegistry.GetValue("WeekEndQuota"));
                        return;
                    }
                    else if (Convert.ToDecimal(ParentalControlsRegistry.GetValue("WeekSum")) + uptime >
                             Convert.ToDecimal(ParentalControlsRegistry.GetValue("WeekQuota")))
                    {
                        shutdown("WeekSum > " + ParentalControlsRegistry.GetValue("WeekQuota"));
                        return;
                    }

                    /*if (file.IsValidForSaving())
                     * {
                     *  foreach (Alarm alarm in file.Alarms)
                     *  {
                     *      if (alarm.RepeatDays.HasFlag(Utils.GetCurrentDay()) && IsTimeToAlarm(alarm))
                     *      {
                     *          if (ShowBlocker())
                     *          {
                     *              Time a = GetCurrentTime();
                     *              Console.WriteLine("The Alarm Blocker showed at {0}:{1} {2}.", a.Hour, a.Minutes, (a.Hour > 12 ? "PM" : "AM"));
                     *          }
                     *      }
                     *  }
                     * }*/
                    Thread.Sleep(waitTime);
                }
            }
            catch (Exception e)
            {
                Utils.log.Debug(e.Message);
            }
        }