private async void NumberMultiplied(object sender, NumberProcessedEventArgs e) { _logger.LogInformation($"Number {e.BatchNumber.Number} multiplied for batch {e.BatchNumber.BatchId}"); using (IServiceScope scope = _scopeFactory.CreateScope()) { IRepository <Batch> batchRepository = scope.ServiceProvider.GetRequiredService <IRepository <Batch> >(); Batch batch = await batchRepository.GetByIdAsyncIncluding(e.BatchNumber.BatchId, b => b.Numbers); batch.Total += e.BatchNumber.Product; if (batch.Numbers.Count == batch.Count) { batch.Status = StatusEnum.Done; } await batchRepository.UpdateAsync(batch); } }
private async void NumberGenerated(object sender, NumberProcessedEventArgs e) { _logger.LogInformation($"Number {e.BatchNumber.Number} generated for batch {e.BatchNumber.BatchId}"); await _multiplierManager.DoWork(e.BatchNumber, e.CancellationToken); }