コード例 #1
0
        private Service GetDriveSpaceService()
        {
            //Low drive space service.
            var driveSpaceServiceId       = Guid.NewGuid();
            var driveSpaceReminderService = new VA.Service("Drive-Space-Reminder-Service", () =>
            {
                //Recheck drive space every 1 Minute
                if (SynUtility.Timing.Delay(driveSpaceServiceId, 60))
                {
                    Bot.MainUser.Vars["Drive-Name"].Clear();
                    foreach (var drive in DriveInfo.GetDrives())
                    {
                        var percentFree = 100 * (double)drive.TotalFreeSpace / drive.TotalSize;
                        var driveName   = drive.Name.Substring(0, 1);
                        if (percentFree < 10 && !_knownLowDrives.Contains(driveName))
                        {
                            Bot.MainUser.Vars["Drive-Name"].Add(driveName);
                            _knownLowDrives.Add(driveName);
                        }
                        else if (percentFree > 10 && _knownLowDrives.Contains(driveName))
                        {
                            _knownLowDrives.Remove(driveName);
                        }
                    }
                    if (Bot.MainUser.Vars["Drive-Name"].Count > 0)
                    {
                        Bot.Trigger("Drive-Space-Reminder-Event");
                    }
                }
            });

            driveSpaceReminderService.Interval    = TimeSpan.FromSeconds(1);
            driveSpaceReminderService.Description = StringResource.ServicePlugin_DriveSpaceReminderServiceDescription;
            return(driveSpaceReminderService);
        }
コード例 #2
0
        private Service GetTimeReminderService()
        {
            //Time Reminder Service
            var timeReminderService = new VA.Service("Time-Reminder-Service", () =>
            {
                if (DateTime.Now.Minute == 0 && DateTime.Now.Second == 0)
                {
                    Bot.Trigger("Time-Reminder-Service-Event");
                }
            });

            timeReminderService.Interval    = TimeSpan.FromSeconds(1);
            timeReminderService.Description = StringResource.ServicePlugin_TimeReminderServiceDescription;
            return(timeReminderService);
        }
コード例 #3
0
        private Service GetSystemUptimeService()
        {
            //System Uptime Service
            var systemUptimeService = new VA.Service("System-Uptime-Service", () =>
            {
                var systemUptimeVariable = new PerformanceCounter("System", "System Up Time");
                systemUptimeVariable.NextValue();
                var nextValue = TimeSpan.FromSeconds(systemUptimeVariable.NextValue());
                if (nextValue.Minutes == 0 && nextValue.Seconds == 0)
                {
                    //Only raise when the uptime is 1 or more
                    if (nextValue.Hours > 0)
                    {
                        Bot.MainUser.Vars["system-uptime"].Value = nextValue.Hours.ToString(CultureInfo.InvariantCulture);
                        Bot.Trigger("System-Uptime-Service-Event");
                    }
                }
            });

            systemUptimeService.Interval    = TimeSpan.FromSeconds(1);
            systemUptimeService.Description = StringResource.ServicePlugin_SystemUptimeReminderServiceDescription;
            return(systemUptimeService);
        }