Example #1
0
        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);
        }
Example #3
0
 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\\");
     }
 }