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(); }
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()); }
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()); }
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)); }
public ActionResult Index() { ViewBag.Message = "EnumDropDownList demo"; var newEvent = new WeeklyEvent() { Day = WeekDay.Wednesday, AnotherDay = WeekDay.Friday, Title = "Demo event" }; return(View(newEvent)); }
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; }
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))); }
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))); }
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))); }