private async Task DismissSomeProductsAsync(CancellationToken stoppingToken) { var products = await Warehouse.GetActiveProductsAsync(); var tasks = products.Shuffle().Take(HowMany(products)) .TapList(l => logger.LogInformation($"Dismiss {l.Count()} products")) .Select(product => Warehouse.DismissAsync(product)); await Task.WhenAll(tasks); }
private async Task <Product> ChoseProduct() { var products = await Warehouse.GetActiveProductsAsync(); return(products.OrderBy(c => System.Guid.NewGuid()).FirstOrDefault()); }