/// <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);
        }