using EVCB_OCPP.TaskScheduler.Jobs; using EVCB_OCPP.TaskScheduler.Services; using Quartz; using Quartz.Impl; using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace EVCB_OCPP.TaskScheduler { class Program { static private NLog.ILogger logger = NLog.LogManager.GetCurrentClassLogger(); private static void Main(string[] args) { try { logger.Info("running...."); DatabaseService service = new DatabaseService(); service.GetCallParterAPICustomers(); DoHardWork().GetAwaiter().GetResult(); } catch (Exception ex) { logger.Error(ex); } Console.Read(); } private static async Task DoHardWork() { try { // Grab the Scheduler instance from the Factory IScheduler scheduler = await StdSchedulerFactory.GetDefaultScheduler(); // and start it off await scheduler.Start(); // define the job and tie it to our HelloJob class IJobDetail _CheckEVSEOnlineJob = JobBuilder.Create() .WithIdentity("job1", "group1") .Build(); IJobDetail _StartTransacionReportJob = JobBuilder.Create() .WithIdentity("job2", "group1") .Build(); IJobDetail _StopTransacionReportJob = JobBuilder.Create() .WithIdentity("job3", "group1") .Build(); IJobDetail _CheckExecutionCmdJob = JobBuilder.Create() .WithIdentity("job4", "group1") .Build(); IJobDetail _ExecutionCmdReportJob = JobBuilder.Create() .WithIdentity("job5", "group1") .Build(); IJobDetail _TriggerBillJob = JobBuilder.Create() .WithIdentity("job6", "group1") .Build(); // Trigger the job to run now, and then repeat every 10 seconds ITrigger _CheckEVSEOnlineTrigger = TriggerBuilder.Create() .WithIdentity("trigger1", "group1") .StartNow() .WithSimpleSchedule(x => x .WithIntervalInSeconds(10) .RepeatForever()) .Build(); ITrigger _StartTransacionReportTrigger = TriggerBuilder.Create() .WithIdentity("trigger2", "group1") .StartNow() .WithSimpleSchedule(x => x .WithIntervalInSeconds(10) .RepeatForever()) .Build(); ITrigger _StopTransacionReportTrigger = TriggerBuilder.Create() .WithIdentity("trigger3", "group1") .StartNow() .WithSimpleSchedule(x => x .WithIntervalInSeconds(10) .RepeatForever()) .Build(); ITrigger _CheckExecutionCmdTrigger = TriggerBuilder.Create() .WithIdentity("trigger4", "group1") .StartNow() .WithSimpleSchedule(x => x .WithIntervalInSeconds(10) .RepeatForever()) .Build(); ITrigger _ExecutionCmdReportTrigger = TriggerBuilder.Create() .WithIdentity("trigger5", "group1") .StartNow() .WithSimpleSchedule(x => x .WithIntervalInSeconds(10) .RepeatForever()) .Build(); ITrigger _TriggerBillTrigger = TriggerBuilder.Create() .WithIdentity("trigger6", "group1") .StartNow() .WithSimpleSchedule(x => x .WithIntervalInMinutes(10) .RepeatForever()) .Build(); // Tell quartz to schedule the job using our trigger await scheduler.ScheduleJob(_CheckEVSEOnlineJob, _CheckEVSEOnlineTrigger); // await scheduler.ScheduleJob(_StartTransacionReportJob, _StartTransacionReportTrigger); // await scheduler.ScheduleJob(_StopTransacionReportJob, _StopTransacionReportTrigger); await scheduler.ScheduleJob(_CheckExecutionCmdJob, _CheckExecutionCmdTrigger); await scheduler.ScheduleJob(_ExecutionCmdReportJob, _ExecutionCmdReportTrigger); await scheduler.ScheduleJob(_TriggerBillJob, _TriggerBillTrigger); } catch (SchedulerException se) { Console.WriteLine(se); } } } }