/// <summary> /// Get objects of type UserInput /// </summary> /// <param name="paging">Object that holds data for filters and paging UserInput objects</param> /// <returns>Object of type ResultModel</returns> public ResultModel GetUserInputs(PagingModel paging) { var userInputs = unitOfWork.UserInputRepository.GetAll(); //Filter var filteredUserInputs = userInputs.Where(u => u.Id.ToString().Contains(paging.SearchString) || u.Expression.Contains(paging.SearchString) || u.Result.Contains(paging.SearchString)); //Order var userInputsWithOrder = filteredUserInputs.OrderBy(paging.SortOn, paging.SortReversed == "true"); //Paging var userInputsWithPaging = userInputsWithOrder.Skip(paging.PageIndex * paging.PageSize) .Take(paging.PageSize); //Retun result to display var result = new List<System.Object>(); foreach (var uInput in userInputsWithPaging) { result.Add(new UserInput { Id = uInput.Id, Expression = uInput.Expression, Result = uInput.Result }); } return new ResultModel(result, userInputsWithOrder.Count()); }
public ActionResult GetUserInputs() { //Get param from REQUEST var nextPage = Request["currentPage"] == "" ? 0 : Int32.Parse(Request["currentPage"]); var pageSize = Request["pageItems"] == "" ? 5 : Int32.Parse(Request["pageItems"]); var orderBy = Request["orderBy"] == "" ? "Id" : Request["orderBy"]; var orderByReverse = Request["orderByReverse"] == "" ? "true" : Request["orderByReverse"]; var searchText = Request["searchText"]; PagingModel paging = new PagingModel(); paging.PageSize = pageSize; paging.PageIndex = nextPage; paging.SortOn = orderBy; paging.SortReversed = orderByReverse; paging.SearchString = searchText; //Call class from business layer to handle the business. Controller only servers as an coordinator var data = new UserInputBL().GetUserInputs(paging); return Json(new { userInputs = data.Result, total = data.TotalSize }, JsonRequestBehavior.AllowGet); }