Пример #1
0
        static void Main(string[] args)
        {
            Console.WriteLine("Started");

            var schedulerService = new EventSchedulerService();

            IScheduledEvent @event = new DateEvent(DateTime.Now.AddSeconds(5));

            @event.EventTriggered += (sender, eventArgs) => Console.WriteLine("Triggered 1");
            schedulerService.Schedule(@event);

            @event = new DateEvent(DateTime.Now.AddSeconds(10), () => Console.WriteLine("Triggered in action"));
            schedulerService.Schedule(@event);

            @event = new DateEvent(DateTime.Now.AddSeconds(10));
            @event.EventTriggered += (sender, eventArgs) => Console.WriteLine("Triggered 2");
            schedulerService.Schedule(@event);
            // schedulerService.CancelEvent(@event);

            @event = new PeriodicEvent(new TimeSpan(0, 0, 20), DateTime.Now.AddSeconds(10));
            @event.EventTriggered += (sender, eventArgs) => Console.WriteLine("Triggered Periodic");
            schedulerService.Schedule(@event);

            @event = new WeeklyEvent(DayOfWeek.Sunday, new TimeSpan(23, 0, 0), new DateTime(2020, 11, 19));
            @event.EventTriggered += (sender, eventArgs) =>
            {
                Console.WriteLine("Triggered RecurringEvent");
            };
            schedulerService.Schedule(@event);

            schedulerService.Schedule(new DailyEvent(new TimeSpan(23, 02, 0), () =>
            {
                Console.WriteLine("Triggered DailyEvent");
            }));

            schedulerService.Schedule(new YearlyEvent(new DateTime(2020, 11, 16, 10, 51, 0), () =>
            {
                Console.WriteLine("YearlyEvent triggered");
            }));

            schedulerService.Schedule(new MonthlyEvent(new DateTime(2020, 11, 16, 10, 12, 0), () =>
            {
                Console.WriteLine("MonthlyEvent triggered");
            }));

            // WeeklySchedule[] schedules = new[]
            // {
            //     new WeeklySchedule(DayOfWeek.Saturday, new TimeSpan(19, 00, 0)),
            //     new WeeklySchedule(DayOfWeek.Saturday, new TimeSpan(2, 00, 0)),
            //     new WeeklySchedule(DayOfWeek.Monday, new TimeSpan(15, 30, 0)),
            //     new WeeklySchedule(DayOfWeek.Monday, new TimeSpan(0, 53, 10)),
            //     new WeeklySchedule(DayOfWeek.Friday, new TimeSpan(8, 00, 0)),
            //     new WeeklySchedule(DayOfWeek.Wednesday, new TimeSpan(16, 30, 0)),
            // };
            //
            // @event = new WeeklyEvent(schedules, (() => Console.Write("tr")));
            // schedulerService.Schedule(@event);

            Console.ReadLine();
        }
Пример #2
0
        public void Should_BeEmpty()
        {
            WeeklyEvent e = new WeeklyEvent(DayOfWeek.Tuesday);

            var list = e.ListDatesBetween(new DateTime(2019, 6, 5), new DateTime(2019, 6, 8));

            Assert.AreEqual(0, list.Count());
        }
Пример #3
0
        public void Should_ReturnCoincidentDates()
        {
            WeeklyEvent e = new WeeklyEvent(DayOfWeek.Tuesday);

            var list = e.ListDatesBetween(new DateTime(2019, 6, 4), new DateTime(2019, 6, 4));

            Assert.AreEqual(1, list.Count());
            Assert.AreEqual(new DateTime(2019, 6, 4), list.First());
        }
Пример #4
0
        public void Should_ReturnConsecutiveDates()
        {
            WeeklyEvent e = new WeeklyEvent(DayOfWeek.Tuesday);

            var list = e.ListDatesBetween(new DateTime(2019, 6, 1), new DateTime(2019, 6, 15));

            Assert.AreEqual(2, list.Count());
            Assert.AreEqual(new DateTime(2019, 6, 4), list.ElementAt(0));
            Assert.AreEqual(new DateTime(2019, 6, 11), list.ElementAt(1));
        }
Пример #5
0
        public ActionResult Index()
        {
            ViewBag.Message = "EnumDropDownList demo";

            var newEvent = new WeeklyEvent()
            {
                Day        = WeekDay.Wednesday,
                AnotherDay = WeekDay.Friday,
                Title      = "Demo event"
            };

            return(View(newEvent));
        }
Пример #6
0
    public void WeekPass()
    {
        PrC.UserChange();
        DailyEvent.Invoke();
        Hour  = 1;
        Week += 1;
        WeeklyEvent.Invoke();
        //Day += 1;
        Stamina   += 30;
        Mentality += 30;
        if (Stamina > 100)
        {
            Stamina = 100;
        }
        if (Mentality > 100)
        {
            Mentality = 100;
        }

        if (Week > 4)
        {
            Month += 1;
            Week   = 1;
            Money  = Money + Income - Salary - (int)((CurrentDeps.Count + CurrentOffices.Count) * 100 * BuildingMaintenanceCostRate);
            MonthlyEvent.Invoke();
            for (int i = 0; i < CurrentDeps.Count; i++)
            {
                CurrentDeps[i].FailCheck();
            }
        }
        if (Month > 12)
        {
            Year              += 1;
            Month              = 1;
            SpecialEventCount -= 1;
            if (SpecialEventCount == 0)
            {
                SpecialEventCount = Random.Range(1, 6);
                PrC.StartSpecialEvent();
            }
        }
        Text_Time.text = "年" + Year + " 月" + Month + " 周" + Week + " 时" + Hour;
    }
Пример #7
0
        public void Should_ElapseTwice_When_DayOfWeek_Is_BetweenTwoWeeks()
        {
            WeeklyEvent e = new WeeklyEvent(DayOfWeek.Tuesday);

            Assert.AreEqual(2, e.ElapsedEvents(new DateTime(2019, 6, 1), new DateTime(2019, 6, 15)));
        }
Пример #8
0
        public void Should_ElapseOnce_When_DayOfWeek_Is_ExactlyDays()
        {
            WeeklyEvent e = new WeeklyEvent(DayOfWeek.Tuesday);

            Assert.AreEqual(1, e.ElapsedEvents(new DateTime(2019, 6, 4), new DateTime(2019, 6, 4)));
        }
Пример #9
0
        public void Should_ElapseZero_When_DayOfWeek_IsNot_BetweenDays()
        {
            WeeklyEvent e = new WeeklyEvent(DayOfWeek.Tuesday);

            Assert.AreEqual(0, e.ElapsedEvents(new DateTime(2019, 6, 5), new DateTime(2019, 6, 8)));
        }