using EVCB_OCPP.TaskScheduler.Services; using Quartz; using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace EVCB_OCPP.TaskScheduler.Jobs { [DisallowConcurrentExecution] public class StartTransacionReportJob : IJob { private NLog.ILogger logger = NLog.LogManager.GetCurrentClassLogger(); public StartTransacionReportJob() { } public async Task Execute(IJobExecutionContext context) { await Console.Out.WriteLineAsync(this.ToString() + " :Starting........"); List tList = new List(); ICustomerService cs = new CommonCustomerService(); var cList = cs.GetCallPartnerCustomers(); foreach (var customerId in cList) { ICustomerService s = CustomerBackendFactory.Create(customerId); tList.Add(Task.Run(() => DoMainTask(customerId))); } Task.WaitAll(tList.ToArray()); await Console.Out.WriteLineAsync(this.ToString() + " :Finished........"); } private void DoMainTask(Guid customerId) { if (customerId == new Guid("009E603C-79CD-4620-A2B8-D9349C0E8AD8")) return; ICustomerService _service = CustomerBackendFactory.Create(customerId); _service.ReportStartTransaction().Wait(); } } }