public JsonResult GetAdGroupData(PagingOptions options, Int32 range) { //paging parameter var start = options.Start; var length = options.Length; //sorting parameter var sortColumn = options.ColumnName; var sortColumnDir = options.Direction ? "descending" : "ascending"; //filter parameter var searchValue = options.SearchName; int pageSize = length; int skip = start; int recordsTotal = 0; var allAdGroups = new List <AdGroup>(); DateTime enddate = DateTime.Today.AddDays(-2); DateTime startdate = enddate; GetStartDate(range, ref startdate); switch (range) { case 0: allAdGroups = dashboardData.GetAdGroupData(SessionData.UserID); break; default: allAdGroups = dashboardData.GetCustAdGroupData(SessionData.UserID, startdate, enddate); break; } //Database query var v = from a in allAdGroups select a; if (!string.IsNullOrEmpty(searchValue)) { v = v.Where(a => a.AdGroupName.ToLower().Contains(searchValue.ToLower()) ); } //sort if (!(string.IsNullOrEmpty(sortColumn) && string.IsNullOrEmpty(sortColumnDir))) { if (options.IsIgnoreZero) { v = SkipZeroAdGroups(sortColumn, v); } //for make sort simpler we will add Syste.Linq.Dynamic reference v = v.OrderBy(sortColumn + " " + sortColumnDir); } recordsTotal = v.Count(); allAdGroups = v.Skip(skip).Take(pageSize).ToList(); return(Json(new { recordsTotal = recordsTotal, data = allAdGroups })); }