Exemple #1
0
        private void Test(object sender, System.EventArgs e)
        {
            MessageBox.Show("Test will now create all types of schedules and opens Schedules View");

            // create and add different types of schedules
            Schedule s = new IntervalSchedule("Test_Interval", DateTime.Now.AddMinutes(1), 45, TimeSpan.Zero, new TimeSpan(TimeSpan.TicksPerDay));

            s.OnTrigger += new EventScheduler.Invoke(ScheduleCallBack);
            Scheduler.AddSchedule(s);
            s            = new OneTimeSchedule("Test_Onetime", DateTime.Now.AddMinutes(1.5));
            s.OnTrigger += new EventScheduler.Invoke(ScheduleCallBack);
            Scheduler.AddSchedule(s);
            s            = new DailySchedule("Test_daily", DateTime.Now.AddMinutes(2));
            s.OnTrigger += new EventScheduler.Invoke(ScheduleCallBack);
            Scheduler.AddSchedule(s);
            s            = new WeeklySchedule("Test_weekly", DateTime.Now.AddMinutes(2.5));
            s.OnTrigger += new EventScheduler.Invoke(ScheduleCallBack);
            Scheduler.AddSchedule(s);
            s            = new MonthlySchedule("Test_monthly", DateTime.Now.AddMinutes(3));
            s.OnTrigger += new EventScheduler.Invoke(ScheduleCallBack);
            Scheduler.AddSchedule(s);

            // kick off the Schedules View
            SchedulerUI.ShowSchedules();
        }
Exemple #2
0
        public bool Start()
        {
            try
            {
                if (!Running)
                {
                    bool scheduled = false;

                    if (PQReportsSettings.Enabled)
                    {
                        Scheduler.AddSchedule("PQReports", PQReportsSettings.Schedule);
                        scheduled = true;
                    }
                    if (BreakerReportsSettings.Enabled)
                    {
                        Scheduler.AddSchedule("BreakerReports", PQReportsSettings.Schedule);
                        scheduled = true;
                    }

                    if (scheduled)
                    {
                        Scheduler.Start();
                        Running = true;
                    }
                }

                return(true);
            }
            catch (Exception ex)
            {
                Log.Error(ex.ToString(), ex);
                return(false);
            }
        }
Exemple #3
0
        private void buttonDelayButton_Click(object sender, EventArgs e)
        {
            MarconiRaceControllerLogic rcl = oblist.SelectedObject as MarconiRaceControllerLogic;

            if (rcl == null)
            {
                return;
            }


            foreach (var item in _raceQueue.Where(p => p.RaceScheduledStartTime >= DateTime.Now && p.RaceScheduledStartTime >= rcl.RaceScheduledStartTime).ToList())
            {
                item.RaceScheduledStartTime = item.RaceScheduledStartTime.AddMinutes(5);

                var sched = Scheduler.GetSchedule(item.RaceName);

                Scheduler.RemoveSchedule(item.RaceName);

                OneTimeSchedule sc = new OneTimeSchedule(item.RaceName, item.RaceScheduledStartTime);
                sc.OnTrigger += Sc_OnTrigger;

                Scheduler.AddSchedule(sc);
            }

            oblist.SetObjects(_raceQueue, true);
            buttonDelayButton.Enabled = false;
        }
Exemple #4
0
 private void tsbAdd_Click(object sender, EventArgs e)
 {
     using (WizardAddSchedule form = new WizardAddSchedule())
     {
         if (form.ShowDialog() == DialogResult.OK)
         {
             Scheduler.AddSchedule(form.Schedule);
             LoadSchedules();
         }
     }
 }
 public void Start()
 {
     if (!Running)
     {
         Scheduler.Initialize();
         Scheduler.Starting    += Scheduler_Starting;
         Scheduler.Started     += Scheduler_Started;
         Scheduler.ScheduleDue += Scheduler_ScheduleDue;
         Scheduler.Disposed    += Scheduler_Disposed;
         Scheduler.AddSchedule("PQMarkAggregation", PQMarkAggregationSettings.Frequency);
         Scheduler.Start();
         Running = true;
     }
 }
Exemple #6
0
 public void Start()
 {
     if (!Running)
     {
         Scheduler.Initialize();
         Scheduler.Starting    += Scheduler_Starting;
         Scheduler.Started     += Scheduler_Started;
         Scheduler.ScheduleDue += Scheduler_ScheduleDue;
         Scheduler.Disposed    += Scheduler_Disposed;
         Scheduler.AddSchedule("StepChangeWebReport", StepChangeWebReportSettings.Frequency);
         Scheduler.Start();
         m_running = true;
     }
 }
Exemple #7
0
    /// <summary>
    /// allowNumで指定した回数に達するまでロックを掛けます。
    /// delay秒の遅延後に非同期でアクションを実行します。実行後、ロックを解除します。
    /// </summary>
    /// <param name="key">Key.</param>
    /// <param name="delay">Delay.</param>
    /// <param name="action">Action.</param>
    /// <param name="allowNum">Allow number.</param>
    public static int Lock(string key, float delay, System.Action action, int allowNum = 1)
    {
        int restNum = SetLock(key, allowNum);

        if (restNum >= 0)
        {
            Scheduler.AddSchedule(key + "_" + restNum.ToString(), delay, (System.Action)(() =>
            {
                action.Invoke();
                ReleaseLock(key);
            }));
        }

        return(restNum);
    }
Exemple #8
0
    /// <summary>
    /// 現在のパネルのデモを再生します。
    /// </summary>
    public void PlayCurrentStageDemo()
    {
        StageInfo stage = GetCurrentStage();
        int       i     = 0;

        foreach (StepInfo stepInfo in stage.stepInfos)
        {
            StepInfo cloneFlushInfo = stepInfo.Clone();
            Scheduler.AddSchedule(GameConstants.TIMER_KEY_PREFIX_PANEL_DEMO + i++.ToString(), stepInfo.startTime, (System.Action)(() =>
            {
                AudioManager.PlayOneShot(this.GetComponent <AudioSource>(), "button01b");
                this.panels[cloneFlushInfo.panelIndex].Flush(cloneFlushInfo);
            }));
        }
    }
Exemple #9
0
        public void ReloadSystemSettings(string connectionString)
        {
            ConnectionStringParser.ParseConnectionString(connectionString, this);

            Scheduler.AddSchedule("PQReports", PQReportsSettings.Schedule, true);
            Scheduler.AddSchedule("BreakerReports", BreakerReportsSettings.Schedule, true);

            if (PQReportsSettings.Enabled || BreakerReportsSettings.Enabled)
            {
                Start();
            }
            else if (!PQReportsSettings.Enabled || !BreakerReportsSettings.Enabled)
            {
                Stop();
            }
        }
Exemple #10
0
        private void tsbEdit_Click(object sender, EventArgs e)
        {
            Schedule schedule = GetSelectedSchedule();

            if (schedule != null)
            {
                using (WizardAddSchedule form = new WizardAddSchedule(schedule))
                {
                    if (form.ShowDialog() == DialogResult.OK)
                    {
                        Scheduler.AddSchedule(form.Schedule);
                        LoadSchedules();
                    }
                }
            }
        }
Exemple #11
0
        //Start the application, creates each race.
        private void btStartRace_Click(object sender, EventArgs e)
        {
            if (dateTimePicker1.Value <= DateTime.Now.AddSeconds(10))
            {
                DialogResult dialogResult = MessageBox.Show("The time of the first date is too soon or in the past. Select a valid time for the first race", "WARNING", MessageBoxButtons.OK);
                return;
            }
            panelStart.Visible = false;
            panel1.Visible     = true;
            AllLightsOff();

            int      _races         = int.Parse(this.textBox1.Text);
            DateTime _lastStartTime = dateTimePicker1.Value;


            panelButtons.Visible = true;
            panelRaces.Visible   = true;

            for (int x = 1; x <= _races; x++)
            {
                MarconiRaceControllerLogic _newRace = new MarconiRaceControllerLogic();

                _newRace.RaceName = "Race " + x.ToString();
                _newRace.RaceScheduledStartTime = _lastStartTime;

                _newRace.BoardDriver    = relayBoard;
                _newRace.InternalPlayer = _soundPlayer;



                OneTimeSchedule sc = new OneTimeSchedule("Race " + x.ToString(), _lastStartTime);
                sc.OnTrigger += Sc_OnTrigger;

                _raceQueue.Add(_newRace);
                Scheduler.AddSchedule(sc);

                _lastStartTime = _lastStartTime.AddMinutes(6);
            }
            oblist.SetObjects(_raceQueue, true);
        }
Exemple #12
0
 private void OnCreateSchedule(object sender, System.EventArgs e)
 {
     try
     {
         Schedule sc = null;
         if (RunOnce.Checked)
         {
             sc = new Schedule(NameTxt.Text, m_startTimePicker.Value, ScheduleType.ONETIME);
         }
         if (RunDaily.Checked)
         {
             sc = new Schedule(NameTxt.Text, m_startTimePicker.Value, ScheduleType.DAILY);
         }
         if (RunWeekly.Checked)
         {
             sc = new Schedule(NameTxt.Text, m_startTimePicker.Value, ScheduleType.WEEKLY);
         }
         //if (RunIntervals.Checked) sc = new Schedule(NameTxt.Text, m_startTimePicker.Value,
         //							  Int32.Parse(IntervalTxt.Text),
         //							  m_fromTime.Value.TimeOfDay,
         //							  m_toTime.Value.TimeOfDay);
         if (RunMonthly.Checked)
         {
             sc = new Schedule(NameTxt.Text, m_startTimePicker.Value, ScheduleType.MONTHLY);
         }
         sc.StartTime = m_startTimePicker.Value;
         sc.Path      = FilenameTxt.Text;
         SetScheduleWeekDays(sc);
         Scheduler.AddSchedule(sc);
         System.Xml.Serialization.XmlSerializer x1 = new System.Xml.Serialization.XmlSerializer(typeof(Schedule));
         XmlTextWriter xw1 = new XmlTextWriter(Properties.Settings.Default.GlobalDirectoryRoot + Properties.Settings.Default.GlobalDirectorySchedules + sc.Path, null);
         x1.Serialize(xw1, sc);
         xw1.Close();
     }
     catch (Exception ex)
     {
         MessageBox.Show(ex.Message);
     }
 }
        private static async Task ScheduleAnnouncement(IDialogContext context, Activity activity, TeamsChannelData channelData, Campaign campaign)
        {
            // Get all the details for announcement.
            var details = JsonConvert.DeserializeObject <ScheduleAnnouncementActionDetails>(activity.Value.ToString());

            if (details == null || details.Id == null)
            {
                details = JsonConvert.DeserializeObject <TaskModule.BotFrameworkCardValue <ScheduleAnnouncementActionDetails> >
                              (activity.Value.ToString()).Data;
            }
            var            dateTime       = DateTime.Parse(details.Date + " " + details.Time);
            var            offset         = activity.LocalTimestamp.Value.Offset;
            DateTimeOffset dateTimeOffset = new DateTimeOffset(dateTime, offset);

            if (campaign.Schedule == null)
            {
                campaign.Schedule = new Models.Schedule()
                {
                    ScheduleId = string.Empty
                }
            }
            ;
            campaign.Schedule.ScheduledTime = dateTimeOffset;
            var scheduleDate = campaign.Schedule.GetScheduleTimeUTC(); // Handle timezone differences.

            if (!Scheduler.UpdateSchedule(campaign.Schedule.ScheduleId, scheduleDate))
            {
                campaign.Schedule.ScheduleId = Scheduler.AddSchedule(
                    scheduleDate,
                    new AnnouncementSender()
                {
                    AnnouncementId = campaign.Id
                }.Execute);
            }
            campaign.Status = Status.Scheduled;
            await Cache.Announcements.AddOrUpdateItemAsync(campaign.Id, campaign);
        }
Exemple #14
0
// Zeitplan erstellen
        private void button1_Click(object sender, EventArgs e)
        {
            foreach (BackupSetInfo bs in backup.ListOfBackupSetInfo)
            {
                if (bs.BackupSchedule == "true")
                {
                    int      _H = Convert.ToInt16(bs.BackupStunde);
                    int      _M = Convert.ToInt16(bs.BackupMin);
                    int      _S = 0;
                    DateTime dt = DateTime.Now;
                    TimeSpan ts = new TimeSpan(_H, _M, _S);
                    dt = dt.Date + ts;
                    if (dt.CompareTo(DateTime.Now) <= 0)
                    {
                        dt = dt.AddDays(+1);
                    }
                    String.Format("{0:dd.MM.yyyy HH:mm}", dt);
                    Schedule s = new DailySchedule("Sicherung", dt);
                    s.OnTrigger += new EventScheduler.Invoke(ScheduleCallBack);
                    if (bs.BackupSo == "true")
                    {
                        s.SetWeekDay(DayOfWeek.Sunday, true);
                    }
                    else
                    {
                        s.SetWeekDay(DayOfWeek.Sunday, false);
                    }
                    if (bs.BackupMo == "true")
                    {
                        s.SetWeekDay(DayOfWeek.Monday, true);
                    }
                    else
                    {
                        s.SetWeekDay(DayOfWeek.Monday, false);
                    }
                    if (bs.BackupDi == "true")
                    {
                        s.SetWeekDay(DayOfWeek.Tuesday, true);
                    }
                    else
                    {
                        s.SetWeekDay(DayOfWeek.Tuesday, false);
                    }
                    if (bs.BackupMi == "true")
                    {
                        s.SetWeekDay(DayOfWeek.Wednesday, true);
                    }
                    else
                    {
                        s.SetWeekDay(DayOfWeek.Wednesday, false);
                    }
                    if (bs.BackupDo == "true")
                    {
                        s.SetWeekDay(DayOfWeek.Thursday, true);
                    }
                    else
                    {
                        s.SetWeekDay(DayOfWeek.Thursday, false);
                    }
                    if (bs.BackupFr == "true")
                    {
                        s.SetWeekDay(DayOfWeek.Friday, true);
                    }
                    else
                    {
                        s.SetWeekDay(DayOfWeek.Friday, false);
                    }
                    if (bs.BackupSa == "true")
                    {
                        s.SetWeekDay(DayOfWeek.Saturday, true);
                    }
                    else
                    {
                        s.SetWeekDay(DayOfWeek.Saturday, false);
                    }
                    Scheduler.AddSchedule(s);
                    NotiText("Meldung", "Zeitplan angelegt               ");
                }
            }
        }
Exemple #15
0
    void Update()
    {
        // flick description text
        float level = Mathf.Abs(Mathf.Sin(Time.time * 3));

        description.SetColor(Color.yellow * level);

        if (flushDemoPhase)
        {
            // Panel Flush Demo Phase
            demoPlayTime -= Time.deltaTime;

            if (demoPlayTime <= 0.0f)
            {
                // まず指し棒を非表示に
                fingerObj.SetActive(false);

                // Panel Flush Demo Schedule
                float demoEndTime = 0f;
                int   i           = 0;
                for (; i < stageInfo.stepInfos.Count; i++)
                {
                    StepInfo step = stageInfo.stepInfos[i];
                    Scheduler.AddSchedule(string.Format(GameConstants.TIMER_KEY_HELP_PANEL_FLUSH, this.GetType().Name, i.ToString()), step.startTime, (System.Action)(() => {
                        if (fingerObj != null)
                        {
                            panels[step.panelIndex].Flush(new FlushInfo(step.flushColor, step.flushTime));
                        }
                    }));
                    // flush demo 終了時刻を更新 (0.5secは flush demo 終了後のバッファ)
                    demoEndTime = step.startTime + step.flushTime + 0.5f;
                }
                Scheduler.AddSchedule(string.Format(GameConstants.TIMER_KEY_HELP_PANEL_FLUSH, this.GetType().Name, i.ToString()), demoEndTime, (System.Action)(() => {
                    if (fingerObj != null)
                    {
                        // trigger finger move phase
                        // flush demo 終了後、指し棒を初期位置に戻して、再表示
                        // どうしても下の指し棒移動ロジックは毎回ズレが生じるので、この段階で元に戻しておく
                        // ちゃんとHelpBoard自体の移動分(this.transform.position - basePos)も加味しておく
                        fingerObj.transform.position = new Vector3(
                            pathInfos[0].Origin.x + screenManager.SCREEN_WIDTH * 0.05f,  // パネル中央よりちょい右に
                            pathInfos[0].Origin.y - screenManager.SCREEN_HEIGHT * 0.05f, // パネル中央よりちょい下に
                            GameConstants.Z_DEPTH_BASE - 0.2f                            // パネル自体よりちょい前に
                            ) + (this.transform.position - basePos);
                        fingerObj.SetActive(true);
                        flushDemoPhase = false;
                    }
                }));

                // タイマーセット (0.5secは finger move phase 終了後のバッファ)
                demoPlayTime = demoEndTime + 0.5f;
            }
            return;
        }

        // Finger Move Lecture
        if (fingerMoveStep >= pathInfos.Count)
        {
            // when finger move phase finished
            fingerMoveStep = 0;
            flushDemoPhase = true;
        }
        // move
        fingerObj.transform.Translate(pathInfos[fingerMoveStep].Direction * FINGER_MOVE_RATE, Space.Self);
        GameObject trailEffect = Instantiate(trailEffectPrefab, fingerObj.transform.position, Quaternion.identity) as GameObject;

        trailEffect.transform.parent = this.transform;
        Destroy(trailEffect, 1.0f);
//        fingerObj.transform.position = new Vector3(
//            fingerObj.transform.position.x + (pathInfos[fingerMoveStep].Direction.x * FINGER_MOVE_RATE),
//            fingerObj.transform.position.y + (pathInfos[fingerMoveStep].Direction.y * FINGER_MOVE_RATE),
//            fingerObj.transform.position.z
//        );
        stepMoveDistance += FINGER_MOVE_RATE;
        if (pathInfos[fingerMoveStep].Distance < stepMoveDistance)
        {
            // when reached destination
            fingerMoveStep++;
            stepMoveDistance = 0f;
        }
    }