Ejemplo n.º 1
0
        /// <summary>
        /// Attempts to bind a model.
        /// </summary>
        /// <param name="bindingContext"></param>
        private void BindModel(ModelBindingContext bindingContext)
        {
            var valueProvider = bindingContext.ValueProvider;

            int draw, start, length;

            var valueResultProvider = valueProvider.GetValue("draw");

            if (valueProvider == null)
            {
                bindingContext.Result = ModelBindingResult.Failed();
                return;
            }
            TryParse <int>(valueResultProvider, out draw);
            TryParse <int>(valueProvider.GetValue("start"), out start);
            TryParse <int>(valueProvider.GetValue("length"), out length);

            DataTablesRequest result = new DataTablesRequest(draw, start, length, TryGetSearch(valueProvider),
                                                             TryGetOrders(valueProvider), TryGetColumns(valueProvider));

            bindingContext.Result = ModelBindingResult.Success(result);
        }
Ejemplo n.º 2
0
        /// <summary>
        /// Gets a <see cref="DataTablesResponse{T}"/> from collection/request
        /// </summary>
        /// <typeparam name="T"></typeparam>
        /// <param name="collection"></param>
        /// <param name="request"></param>
        /// <param name="recordsTotal">Number of records before filtered</param>
        /// <param name="recordsFiltered">Number of records after filtered</param>
        /// <returns></returns>
        public static DataTablesResponse <T> ToDataTablesResponse <T>(this IEnumerable <T> collection, DataTablesRequest request, int recordsTotal, int recordsFiltered)
        {
            DataTablesResponse <T> response = new DataTablesResponse <T>();

            response.Draw            = request.Draw;
            response.RecordsTotal    = recordsTotal;
            response.RecordsFiltered = recordsFiltered;
            response.Data            = collection;
            return(response);
        }