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);
            }
        }
Пример #2
0
 public Calcular(CompensationDbContext context)
 {
     _context = context;
 }