Exemplo n.º 1
0
 /// <summary>
 ///     Converts a DatatableReply into a datatable accepted format (it's mostly renaming the variables)
 /// </summary>
 /// <param name="reply">
 ///     This datatable reply
 /// </param>
 /// <returns>
 ///     This datatable reply as a valid Json object
 /// </returns>
 public static JsonResult ToJson(this DatatableReply reply)
 {
     return(new JsonResult
     {
         Data =
             new
         {
             iTotalRecords = reply.TotalRecords,
             iTotalDisplayRecords = reply.TotalDisplayRecords,
             sEcho = reply.Echo,
             sColumns = reply.Columns,
             aaData = reply.Data
         },
         JsonRequestBehavior = JsonRequestBehavior.AllowGet,
     });
 }
Exemplo n.º 2
0
        /// <summary>
        ///     Applies the desired sorting, filtering and pagination logic to the
        ///     data source entities according to the param object and returns a reply
        /// </summary>
        /// <param name="param">
        ///     The parameter containing the sorting, filtering and pagination logic
        /// </param>
        /// <returns>
        ///     A parsed collection of entities wrapped in a reply object
        /// </returns>
        public DatatableReply Parse(DatatableParam param)
        {
            int totalRecords = _entities.Count();

            _entities = Sort(param);
            _entities = FilterGlobal(param);
            _entities = FilterSpecific(param);
            int displayRecords = _entities.Count();

            _entities = _entities.Skip(param.DisplayStart);
            _entities = _entities.Take(param.DisplayLength);

            var projector = new DatatableEntityProjector <TEntity>(_entities);
            var reply     = new DatatableReply
            {
                Echo                = Convert.ToInt32(param.Echo),
                Columns             = string.Join(",", _properties.Select(p => p.ColumnHeader)),
                TotalRecords        = totalRecords,
                TotalDisplayRecords = displayRecords,
                Data                = projector.Project(_sessionObject).ToArray()
            };

            return(reply);
        }