Example #1
0
        public CrawlHost()
        {
            InitializeComponent();

            SchedulerSetting Setting = new SchedulerSetting();

            CrawlerFactory = new Scheduler(CrawlerName, Setting);
            StartJobs();
        }
Example #2
0
        public void Save(SchedulerSetting data)
        {
            //var xmlRoots = GetElement("schedule");
            var xmlItems = GetElements("trigger");

            foreach (var xElement in xmlItems)
            {
                var cron = xElement.Descendants().First(x => x.Name.LocalName == "cron");
                if (cron != null)
                {
                    var cronName = GetElementValue(cron.Descendants().First(x => x.Name.LocalName == "job-name"));
                    if (cronName.ToLower().Contains("dailyonce"))
                    {
                        continue;
                    }
                    var minuteExpression = "";
                    var element          = cron.Descendants().First(x => x.Name.LocalName == "cron-expression");//cron.Element("cron-expression");
                    if (cronName.ToLower().Contains("daily"))
                    {
                        minuteExpression = string.Format("0 0/{0} * 1/1 * ? *", data.DailyMinutes);
                    }
                    else
                    {
                        minuteExpression = string.Format("0 0/{0} * 1/1 * ? *", data.MonthlyMinutes);
                    }

                    if (element != null)
                    {
                        element.Value = minuteExpression; //SetValue(minuteExpression);
                        _xmlData.Save(_xmlName);
                    }
                    else
                    {
                        throw new BLLException(ExceptionCodes.BLLExceptions.SchedulerSetingCronNotFound);
                    }
                }
                else
                {
                    throw new BLLException(ExceptionCodes.BLLExceptions.SchedulerSetingCronNotFound);
                }
            }



            try
            {
                var jsonString = JsonConvert.SerializeObject(data.ConfigJson);
                File.WriteAllText(_configjsonFile, jsonString);
            }
            catch (Exception ex)
            {
                throw new BLLException(ExceptionCodes.BLLExceptions.SchedulerSetingJsonError, ex.Message);
            }
        }
        public void TimeSegment_MouseDown(ScheduleHour hour, MouseButtonEventArgs e)
        {
            switch (hour.Setting)
            {
            case SchedulerSetting.Enabled: hour.Setting = SchedulerSetting.PopupOnly; break;

            case SchedulerSetting.PopupOnly: hour.Setting = SchedulerSetting.Disabled; break;

            case SchedulerSetting.Disabled: hour.Setting = SchedulerSetting.Enabled; break;
            }

            this._settingOnMouseDown = hour.Setting;
        }
Example #4
0
        public SchedulerSetting GetMinutesCron()
        {
            //var xmlRoots = GetElement("schedule");
            //var xmlItems = xmlRoots.Elements("trigger");
            var xmlItems = GetElements("trigger");

            var data = new SchedulerSetting();

            foreach (var xElement in xmlItems)
            {
                //var cron = xElement.Element("cron");
                var cron = xElement.Descendants().First(x => x.Name.LocalName == "cron");
                if (cron != null)
                {
                    var cronExpression = cron.Descendants().First(x => x.Name.LocalName == "cron-expression");           //.Element("cron-expression");
                    var cronName       = GetElementValue(cron.Descendants().First(x => x.Name.LocalName == "job-name")); //Element("job-name"));

                    if (cronName.ToLower().Contains("dailyonce"))
                    {
                        continue;
                    }

                    var minutes = GetMinutesFromCronExpression(GetElementValue(cronExpression));
                    if (cronName.ToLower().Contains("daily"))
                    {
                        data.DailyMinutes = minutes;
                    }
                    else
                    {
                        data.MonthlyMinutes = minutes;
                    }
                }
                else
                {
                    throw new BLLException(ExceptionCodes.BLLExceptions.SchedulerSetingCronNotFound);
                }
            }



            //data.DailyMinutes =

            return(data);
        }
Example #5
0
        /// <summary>This raises an alert to the PopupViewModel so it can display the Alert.</summary>
        public void OnAlertRaised(AlertBase item)
        {
            SchedulerSetting setting = this.Context.Schedule.GetApplicableSetting(DateTime.Now);

            // TODO: Threading wrap around this...
            bool displayPopup = (setting == SchedulerSetting.Enabled || setting == SchedulerSetting.PopupOnly);
            bool playSound    = (setting == SchedulerSetting.Enabled);

            App.Current.Dispatcher.Invoke((Action) delegate
            {
                if (AlertRaised != null)
                {
                    if (!(item is TickAlert))
                    {
                        this.Context.Alerts.Insert(0, item);
                    }

                    AlertRaised(this, new AlertEventArgs(item, displayPopup, playSound));
                }
            });
        }