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(); }
private static void OnTimedEvent(object source, ElapsedEventArgs e, IObserver<PeriodicEvent> observer, PeriodicEvent value) { observer.OnNext(value); }
private static void OnTimedEvent(IEventHandler<PeriodicEvent> handler, PeriodicEvent value) { handler.OnNext(value); }
private static void OnTimedEvent(object source, ElapsedEventArgs e, IEventHandler<PeriodicEvent> handler, PeriodicEvent value) { handler.OnNext(value); }
public void AddPeriodEveent(PeriodicEvent periodEvent) { }
public static void Init(DiscordBot data) { data.MessageReceivedHandler.On("MessageReceived", SuggestionHandler, 4); ignore_id = data.client.CurrentUser.Id; PeriodicEvent status_changer = new PeriodicEvent { interval = TimeSpan.FromMinutes(30) }; status_changer.last_exec = DateTime.Now - status_changer.interval; status_changer.action = () => { DateTime now = DateTime.Now; if (now.Day == 13 && now.DayOfWeek == DayOfWeek.Friday) { if (!ZnJpZGF5X2RvbmU) { data.client.SetActivityAsync(new Game(Encoding.UTF8.GetString(Convert.FromBase64String("U3Bvb2t5IHNjYXJ5IHNrZWxldG9ucw==")), ActivityType.Listening)); ZnJpZGF5X2RvbmU = true; } } else if (now.Day == 25 && now.Month == 12) { if (!Y2hyaXN0bWFzX2RvbmU) { var guild = data.client.GetGuild(Clubby.Program.config.DiscordGuildId); if (guild != null) { var channels = guild.TextChannels; foreach (var channel in channels) { if (channel.Name == "slack") { channel.SendMessageAsync(Encoding.UTF8.GetString(Convert.FromBase64String("TWVycnkgY2hyaXN0bWFzIQ=="))); } } } data.client.SetActivityAsync(new Game(Encoding.UTF8.GetString(Convert.FromBase64String("Q2hyaXN0bWFzIGNhcm9scw==")), ActivityType.Listening)); Y2hyaXN0bWFzX2RvbmU = true; } } else { if (Y2hyaXN0bWFzX2RvbmU) { Y2hyaXN0bWFzX2RvbmU = false; } if (ZnJpZGF5X2RvbmU) { ZnJpZGF5X2RvbmU = false; } current_status %= statuses.Length; data.client.SetActivityAsync(statuses[current_status]); current_status++; } }; Clubby.Program.config.scheduler.PeriodicActivities.Add(status_changer); PeriodicEvent DashboardUpdate = new PeriodicEvent { interval = TimeSpan.FromMinutes(5) }; DashboardUpdate.last_exec = DateTime.Now - DashboardUpdate.interval; DashboardUpdate.action = async() => { await Clubby.Program.config.DiscordBot.UpdateDashboard(); }; Clubby.Program.config.scheduler.PeriodicActivities.Add(DashboardUpdate); data.client.ReactionAdded += Client_ReactionAdded; data.client.ReactionRemoved += Client_ReactionRemoved; }
private static void OnTimedEvent(IEventHandler <PeriodicEvent> handler, PeriodicEvent value) { handler.OnNext(value); }
private static void OnTimedEvent(object source, ElapsedEventArgs e, IEventHandler <PeriodicEvent> handler, PeriodicEvent value) { handler.OnNext(value); }
private static void OnTimedEvent(object source, ElapsedEventArgs e, IObserver <PeriodicEvent> observer, PeriodicEvent value) { observer.OnNext(value); }