[ApiController] [Route("[controller]")] public class ProductsController : ControllerBase { public async IAsyncEnumerable<Product> GetOnSaleProductsAsync(CancellationToken cancellationToken) { var products = _repository.GetProductsAsync(); await foreach (var product in products.WithCancellation(cancellationToken)) { if (product.IsOnSale) { yield return product; } } } }