/// <summary>
        /// AJAX POST
        /// </summary>
        public JsonResult Sample4(DataTablesAjaxPostModel model)
        {
            var request = new DataTablesRequest <Person>(model);

            using (var ctx = new DatabaseContext())
            {
                var persons = ctx.Persons.Include("Office.Address").ToPagedList(request);
                return(JsonDataTable(persons, request.Draw));
            }
        }
예제 #2
0
        public IHttpActionResult GetEmployees([FromBody] DataTablesAjaxPostModel model, [FromUri] int id = 0)
        {
            var restInfo = new RestEndPointModel(ConfigurationManager.AppSettings["MasApiBaseUrl"], ConfigurationManager.AppSettings["MasApiEmployeesResource"]);

            var employees = EmployeeBl.GetEmployees(restInfo, id);

            return(Ok(new
            {
                draw = model.Draw,
                recordsTotal = employees.Count(),
                recordsFiltered = employees.Count(),
                data = employees
            }));
        }
예제 #3
0
        public static IQueryable <T> OrderBy <T>(this IQueryable <T> source, DataTablesAjaxPostModel model)
        {
            var expression     = source.Expression;
            var firstSortField = true;

            foreach (var order in model.order)
            {
                var sortField     = model.columns[order.column].data;
                var sortAscending = order.dir.ToLower().Equals("asc");

                var parameter = Expression.Parameter(typeof(T), "x");
                var selector  = GetSelector(parameter, sortField);
                var method    = GetSortMethodName(sortAscending, firstSortField);
                expression = Expression.Call(
                    typeof(Queryable),
                    method,
                    new[] { source.ElementType, selector.Type },
                    expression,
                    Expression.Quote(Expression.Lambda(selector, parameter))
                    );
                firstSortField = false;
            }
            return(firstSortField ? source : source.Provider.CreateQuery <T>(expression));
        }
예제 #4
0
 protected BaseSpecification(Expression <Func <T, bool> > criteria = null, DataTablesAjaxPostModel model = null)
 {
     Criteria = criteria;
     Model    = model;
 }