public ActionResult Employees(FlexGridFetchOptions fetchOptions)
        {
            IQueryable<EmployeeViewModel> queryable = this.employees.AsQueryable<EmployeeViewModel>();

            IEnumerable<EmployeeViewModel> queriedEmployees = null;
            string query = string.Empty;

            if (fetchOptions.query.Length > 0)
            {
                query = string.Format("{0}.Contains(@0)", fetchOptions.qtype);
            }

            string orderString = string.Format("{0}{1}", fetchOptions.sortname, (fetchOptions.sortorder == "desc") ? " descending" : string.Empty);

            queryable = queryable
                .Skip((fetchOptions.page - 1) * fetchOptions.rp)
                .Take(fetchOptions.rp);

            if (query.Length > 0)
            {

                queryable = queryable.Where(query, fetchOptions.query);

            }

            if (fetchOptions.sortname.Length > 0)
            {
                queryable = queryable.OrderBy(orderString);
            }

            queriedEmployees = queryable;

            var data = new FlexGridData<EmployeeViewModel>(
                queriedEmployees,
                fetchOptions.page,
                this.employees.Count, x => x.Name, y =>
                {
                    y.Add(z => z.Name);
                    y.Add(z => z.Age);
                });

            return Json(data);
        }
        public ActionResult Employees(FlexGridFetchOptions fetchOptions)
        {
            IQueryable <EmployeeViewModel> queryable = this.employees.AsQueryable <EmployeeViewModel>();

            IEnumerable <EmployeeViewModel> queriedEmployees = null;
            string query = string.Empty;

            if (fetchOptions.query.Length > 0)
            {
                query = string.Format("{0}.Contains(@0)", fetchOptions.qtype);
            }

            string orderString = string.Format("{0}{1}", fetchOptions.sortname, (fetchOptions.sortorder == "desc") ? " descending" : string.Empty);

            queryable = queryable
                        .Skip((fetchOptions.page - 1) * fetchOptions.rp)
                        .Take(fetchOptions.rp);

            if (query.Length > 0)
            {
                queryable = queryable.Where(query, fetchOptions.query);
            }

            if (fetchOptions.sortname.Length > 0)
            {
                queryable = queryable.OrderBy(orderString);
            }

            queriedEmployees = queryable;

            var data = new FlexGridData <EmployeeViewModel>(
                queriedEmployees,
                fetchOptions.page,
                this.employees.Count, x => x.Name, y =>
            {
                y.Add(z => z.Name);
                y.Add(z => z.Age);
            });

            return(Json(data));
        }