public async Task StartAsync(CancellationToken cancellationToken) { while (!cancellationToken.IsCancellationRequested) { using (var scope = serviceScopeFactory.CreateScope()) { compensationDbContext = scope.ServiceProvider.GetService <CompensationDbContext>(); var proceso = compensationDbContext.PCProceso.Where(p => p.Iniciado == false).FirstOrDefault(); if (proceso != null) { proceso.Iniciado = true; await compensationDbContext.SaveChangesAsync(cancellationToken); Calculo calculo = new Calculo(compensationDbContext); List <PCComisionesTemporal> pCTemporal = new List <PCComisionesTemporal>(); pCTemporal = compensationDbContext.PCComisionesTemporal.ToList(); if (pCTemporal != null) { foreach (var item in pCTemporal) { calculo.CalcularRecibo(item.Id); proceso.RegistrosProcesados++; await compensationDbContext.SaveChangesAsync(cancellationToken); } } Console.WriteLine("Task started"); proceso.Culminado = true; await compensationDbContext.SaveChangesAsync(cancellationToken); } } await Task.Delay(50000); } }
public Calcular(CompensationDbContext context) { _context = context; }