public CrawlHost() { InitializeComponent(); SchedulerSetting Setting = new SchedulerSetting(); CrawlerFactory = new Scheduler(CrawlerName, Setting); StartJobs(); }
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; }
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); }
/// <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)); } }); }