Exemplo n.º 1
0
        /// <summary>
        /// For internal use only.
        /// Parse column collection.
        /// </summary>
        /// <param name="values">Request parameters.</param>
        /// <param name="names">Name convention for request parameters.</param>
        /// <returns></returns>
        private static IEnumerable <IColumn> ParseColumns(IValueProvider values, IRequestNameConvention names)
        {
            var columns = new List <IColumn>();

            int counter = 0;

            while (true)
            {
                // Parses Field value.
                var    columnField  = values.GetValue(String.Format(names.ColumnField, counter));
                string _columnField = null;
                if (!Parse <string>(columnField, out _columnField))
                {
                    break;
                }

                // Parses Name value.
                var    columnName  = values.GetValue(String.Format(names.ColumnName, counter));
                string _columnName = null;
                if (!Parse <string>(columnName, out _columnName))
                {
                    break;
                }

                // Parses Orderable value.
                var  columnSortable  = values.GetValue(String.Format(names.IsColumnSortable, counter));
                bool _columnSortable = true;
                Parse <bool>(columnSortable, out _columnSortable);

                // Parses Searchable value.
                var  columnSearchable  = values.GetValue(String.Format(names.IsColumnSearchable, counter));
                bool _columnSearchable = true;
                Parse <bool>(columnSearchable, out _columnSearchable);

                // Parsed Search value.
                var    columnSearchValue  = values.GetValue(String.Format(names.ColumnSearchValue, counter));
                string _columnSearchValue = null;
                Parse <string>(columnSearchValue, out _columnSearchValue);

                // Parses IsRegex value.
                var  columnSearchRegex  = values.GetValue(String.Format(names.IsColumnSearchRegex, counter));
                bool _columnSearchRegex = false;
                Parse <bool>(columnSearchRegex, out _columnSearchRegex);

                var search = new Search(_columnSearchValue, _columnSearchRegex, _columnField);

                // Instantiates a new column with parsed elements.
                var column = new Column(_columnName, _columnField, _columnSearchable, _columnSortable, search);

                // Adds the column to the return collection.
                columns.Add(column);

                // Increments counter to keep processing columns.
                counter++;
            }

            return(columns);
        }
        /// <summary>
        /// Creates a new 'Option' instance.
        /// </summary>
        /// <param name="defaultPageLength">Default page length to be used.</param>
        /// <param name="enableDrawValidation">Indicates if draw validation will be enabled by default or not.</param>
        /// <param name="enableRequestAdditionalParameters">Indicates if additional parameters resolution will be enabled for for request by default.</param>
        /// <param name="enableResponseAdditionalParameters">Indicates if additional parameters will be sent to the response by default.</param>
        /// <param name="requestNameConvention">Request naming convention to be used.</param>
        /// <param name="responseNameConvention">Response naming convention to be used.</param>
        public DataTablesOptions(int defaultPageLength, bool enableDrawValidation, bool enableRequestAdditionalParameters, bool enableResponseAdditionalParameters, IRequestNameConvention requestNameConvention, IResponseNameConvention responseNameConvention)
        {
            DefaultPageLength       = defaultPageLength;
            IsDrawValidationEnabled = enableDrawValidation;
            IsRequestAdditionalParametersEnabled  = enableRequestAdditionalParameters;
            IsResponseAdditionalParametersEnabled = enableResponseAdditionalParameters;

            RequestNameConvention  = requestNameConvention;
            ResponseNameConvention = responseNameConvention;
        }
Exemplo n.º 3
0
        /// <summary>
        /// For internal use only.
        /// Parse sort collection.
        /// </summary>
        /// <param name="columns">Column collection to use when parsing sort.</param>
        /// <param name="values">Request parameters.</param>
        /// <param name="names">Name convention for request parameters.</param>
        /// <returns></returns>
        private static IEnumerable <ISort> ParseSorting(IEnumerable <IColumn> columns, IValueProvider values, IRequestNameConvention names)
        {
            var sorting = new List <ISort>();

            for (int i = 0; i < columns.Count(); i++)
            {
                var sortField  = values.GetValue(String.Format(names.SortField, i));
                int _sortField = 0;
                if (!Parse <int>(sortField, out _sortField))
                {
                    break;
                }

                var column = columns.ElementAt(_sortField);

                var    sortDirection  = values.GetValue(String.Format(names.SortDirection, i));
                string _sortDirection = null;
                Parse <string>(sortDirection, out _sortDirection);

                if (column.SetSort(i, _sortDirection))
                {
                    sorting.Add(column.Sort);
                }
            }

            return(sorting);
        }