public static Dictionary<string, string> PatternDictionary(ConfigModel config) { var dict = new Dictionary<string, string>(); dict.Add("{MM-dd-yyyy}", DateTime.Now.ToString("MM-dd-yyyy")); dict.Add("{MM-dd-yy}", DateTime.Now.ToString("MM-dd-yy")); dict.Add("{hh-mm tt}", DateTime.Now.ToString("hh-mm tt")); dict.Add("{DirectoryID}", config.TableName.Replace("wrkstn_dir_","")); dict.Add("{TableName}", config.TableName); return dict; }
private void BuildJob(ConfigModel config) { if (ExporterDetailList.Where(x => x.Key.Name == string.Format("{0}Exporter", config.ID.ToString())).FirstOrDefault() != null) { //Job Exists. Remove and remake with updated settings var jobtmp = ExporterDetailList.Where(x => x.Key.Name == string.Format("{0}Exporter", config.ID.ToString())).FirstOrDefault(); Scheduler.DeleteJob(jobtmp.Key); ExporterTriggerList.Remove(ExporterTriggerList.Where(x => x.JobKey == jobtmp.Key).FirstOrDefault()); ExporterDetailList.Remove(jobtmp); } ITrigger trigger; IJobDetail job = JobBuilder.Create<SFTPExporterJob>() .WithIdentity(string.Format("{0}Exporter", config.ID.ToString())) .UsingJobData("config", JsonConvert.SerializeObject(config)) .Build(); switch (config.ExecutionSchedule) { case ConfigModel.ExecutionType.Daily: trigger = TriggerBuilder.Create() .WithIdentity(string.Format("{0}Trigger", config.ID.ToString())) .WithSchedule(CronScheduleBuilder .DailyAtHourAndMinute(config.ExecuteHour, config.ExecuteMinute)) .ForJob(job.Key) .Build(); break; case ConfigModel.ExecutionType.Monthly: trigger = TriggerBuilder.Create() .WithIdentity(string.Format("{0}Trigger", config.ID.ToString())) .WithSchedule(CronScheduleBuilder .MonthlyOnDayAndHourAndMinute(config.ExecuteDayOfMonth, config.ExecuteHour, config.ExecuteMinute)) .ForJob(job.Key) .Build(); break; case ConfigModel.ExecutionType.Weekly: trigger = TriggerBuilder.Create() .WithIdentity(string.Format("{0}Trigger", config.ID.ToString())) .WithSchedule(CronScheduleBuilder .WeeklyOnDayAndHourAndMinute(config.ExecuteDayOfWeek, config.ExecuteHour, config.ExecuteMinute)) .ForJob(job.Key) .Build(); break; default: throw new Exception("Invalid execution schedule"); } ExporterDetailList.Add(job); ExporterTriggerList.Add(trigger); Scheduler.ScheduleJob(job, trigger); }
private void frmName_Load(object sender, EventArgs e) { LoadedConfigPath = ""; Configuration = new ConfigModel(); if (!System.IO.Directory.Exists("C:\\SFTPExporter\\Configs\\")) { System.IO.Directory.CreateDirectory("C:\\SFTPExporter\\Configs\\"); } }