Ejemplo n.º 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();
        }
Ejemplo n.º 2
0
 private static void OnTimedEvent(object source, ElapsedEventArgs e, IObserver<PeriodicEvent> observer, PeriodicEvent value)
 {
     observer.OnNext(value);
 }
Ejemplo n.º 3
0
 private static void OnTimedEvent(IEventHandler<PeriodicEvent> handler, PeriodicEvent value)
 {
     handler.OnNext(value);
 }
Ejemplo n.º 4
0
 private static void OnTimedEvent(object source, ElapsedEventArgs e, IEventHandler<PeriodicEvent> handler, PeriodicEvent value)
 {
     handler.OnNext(value);
 }
Ejemplo n.º 5
0
 public void AddPeriodEveent(PeriodicEvent periodEvent)
 {
 }
Ejemplo n.º 6
0
        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;
        }
Ejemplo n.º 7
0
 private static void OnTimedEvent(IEventHandler <PeriodicEvent> handler, PeriodicEvent value)
 {
     handler.OnNext(value);
 }
Ejemplo n.º 8
0
 private static void OnTimedEvent(object source, ElapsedEventArgs e, IEventHandler <PeriodicEvent> handler, PeriodicEvent value)
 {
     handler.OnNext(value);
 }
Ejemplo n.º 9
0
 private static void OnTimedEvent(object source, ElapsedEventArgs e, IObserver <PeriodicEvent> observer, PeriodicEvent value)
 {
     observer.OnNext(value);
 }