I have a class ProductService.cs
which looks like:
public class ProductService : IProductService
{
private readonly IMediator _mediator;
public ProductService(IMediator mediator)
{
_mediator = mediator;
}
public async Task<IQueryable<Models.Product>> GetActiveProducts()
{
var products = await _mediator.Send(new FindProducts);
return products.Where(product => product.Status.Id == (int)ProductStatusEnum.Active);
}
}
And then my FindProducts
looks like so:
public class FindProducts
{
public class Handler : IRequest<IQueryable<Models.Product>>
{
private readonly ApplicationDbContext _dbContext;
public Handler(ApplicationDbContext dbContext)
{
_dbContext = dbContext;
}
public IQueryable<Models.Product> Handle()
{
return _dbContext.Products
.Select(p => new Models.Product
{
Name = p.Name,
Status = new ProductStatus
{
Id = p.Status.Id,
Status = p.Status.Status
}
})
.AsQueryable();
}
}
}
However this won't compile as I get build errors A new expression requires (), [], or {} after type
I've search all over the web and cannot find any examples or documentation on how to send a MediatR request without sending over a Query
as ideally this will get all products regardless the product data.
Am I missing something?
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…