|
[CS]
public ActionResult DataSource(DataManager dm)
{
IEnumerable data = order;
DataOperations DataOperations operation = new DataOperations();
if (dm.Sorted != null && dm.Sorted.Count > 0) //Sorting
{
data = operation.PerformSorting(data, dm.Sorted);
}
if (dm.Where != null && dm.Where.Count > 0) //Filtering
{
data = operation.PerformWhereFilter(data, dm.Where, dm.Where[0].Operator);
if(dm.RequiresCounts == false)
return Json(data); // return the search data
}
if (dm.Search != null && dm.Search.Count > 0) //Searching
{
data = operation.PerformSearching(data, dm.Search);
}
var count = data.AsQueryable().Count();
if (dm.Skip != 0)
{
data = operation.PerformSkip(data, dm.Skip);
}
if (dm.Take != 0)
{
data = operation.PerformTake(data, dm.Take);
}
return Json(new { result = data, count = count });
}
|