I have an ASP.NET MVC application where I'm displaying a list of Products.
// Product Controller
public ActionResult List(string sort, int page)
{
var products = _productService.GetProducts(page, sort);
return View(products);
}
// ProductService.cs
public IEnumerable<Products> GetProducts(int pageIndex, string sort)
{
return _productRepository.GetProducts(pageIndex, 50, sort);
}
// ProductsRepository.cs
public IEnumerable<Products> GetProducts(int pageIndex, int pageSize, string sort)
{
using(var db = new ShopDataContext())
{
return db.Products.OrderBy(??).Skip(pageIndex * pageSize).Take(pageSize).ToList();
}
}
I have a very simple service layer and repository.
How can I sort my Linq to SQL query by some arbitrary sort string/expression that I pull from the query string of my action?
/products?sort=hot&page=2